본문 바로가기

wargame/기타

[암호]Base64

Base64 정의

MIME에서 정의하는 BASE64는 임의의 바이트 스트림을 화면에 표시할 수 있는 ASCII문자들로 바꾸는 인코딩 방식을 말한다. 인코딩된 문자열은 알파벳 대소문자와 숫자, +, / 기호 64개로 이루어지며,"="은 끝을 알리는 코드로 쓰인다. 인코딩된 문자열은 원본보다 대략 25% 정도 크기가 증가한다.

Base64 인코딩 과정

24비트 버퍼에 위쪽(MSB)부터 한 바이트씩 세바이트를 집어 넣는다. 만약 3바이트 미만의 바이트가 남았다면. 버퍼의 남은 부분은 0으로 채운다. 버퍼의 위쪽부터 6비트씩 잘라 그 값을 읽고, 정렬된 문자(base64에서 사용하는 64개의 문자)에서 읽은 값 번째 문자를 출력한다.
+) 24비트의 버퍼에서 입력된 바이트가 한 바이트라면 출력 중 두 개의 바이트만 사용되고 나머지 둘은 "="으로 패딩된다
+) 입력된 바이트가 둘이라면 출력 중 세 개의 바이트만 사용되고 나머지 하나는 "="으로 패딩된다
(이는 디코딩할 때 원본에는 없는 비트가 생기는 것을 방지하기 위함이다)

예시

Text content M a n
ASCII 77 97 110
Bit pattern 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
Index 19 22 5 46
Base64-Encoded T W F u

Base64 색인표

Base64 색인표
문자 문자 문자 문자
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

'wargame > 기타' 카테고리의 다른 글

Base64, MD5, SHA 비교  (0) 2019.04.08
[HASH]SHA 함수군  (0) 2019.04.05
[HASH]MD5  (0) 2019.04.05