본문 바로가기
관리자

Programming-[Base]/Basic of Coding

[link] base64 인코딩, Basic Authentication

728x90
반응형

Base64 인코딩

 

base64라는건 2의 6승인 64개의 문자로만 인코딩한다는 것이다.

https://effectivesquid.tistory.com/entry/Base64-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80

바이너리 코드 (0110101101010101010...) 를 6개 bit로 쪼개서 위 ASCII 코드에 맞는 형식으로 변환하여 전송한다.

 

64개의 ASCII 코드를 넘어서기 시작하면 특수문자등이 포함되고 ASCII 전체가 2의 7승 = 124개인데, 제어문자가 포함되어 시스템마다 처리 방식이 달라서 통일하기가 어렵기 때문에 Base64를 사용한다.

 

6자리로 끊다가 맨 마지막 자리가 6bit가 안되면 해당 수의 우측에 0을 추가하여 처리한다.

 

1111000011110000 -> 111100 001111 000000

 

 

Basic Authentication

Authorization: Basic <credentials> 형태로 Authorization header 값을 서버에 보내서 인증받는 방식이다. 여기서 credentials 값은 보통 Base64로 인코딩한 'id:password' 형태로 전송한다.

 

headers = {
            "Authorization": f"Basic {base64.b64encode(f'{id}:{pw}'.encode()).decode()}",
            "Content-Type": "application/x-www-form-urlencoded",
        }

 

Base64로 인코딩하면 디코딩이 가능하므로 id, pw가 노출되는 방식이라 일반적으로는 권장되지 않는다. 내부 VPN이나 내부 시스템끼리 안전한 네트워크에서 간단하게 통신할때만 사용한다.

 

 

 

 

참조 링크

1. Base64 인코딩

https://effectivesquid.tistory.com/entry/Base64-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80

 

2. Basic Authentication

https://www.ssemi.net/basic-authentication/

 

728x90
반응형