Base64 인코딩
base64라는건 2의 6승인 64개의 문자로만 인코딩한다는 것이다.
바이너리 코드 (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/
'Programming-[Base] > Basic of Coding' 카테고리의 다른 글
[TIL] URL % 인코딩과 python 처리 메시드(urllib-quote, unquote) (2) | 2023.02.20 |
---|---|
정규표현식, 비밀번호 특수문자 포함(자바, 자바스크립트, 파이썬) (1) | 2021.01.19 |
Git 공부_2. 동작원리와 명령어 등 (Linux CLI) (0) | 2020.07.14 |
VS Code 자동완성, 단축키 모음 (0) | 2020.07.06 |
Chrome Extension-ColorZilla, Page Ruler Red (0) | 2020.07.06 |