Nullorm

인코딩 & 디코딩 | Base64에 대하여... 본문

study_SECURITY/Crypto

인코딩 & 디코딩 | Base64에 대하여...

Null0rm 2023. 7. 17. 17:53
반응형

인코딩(encoding)과 디코딩(decoding)

파일에 저장된 정보의 형태나 형식을 변환하는 처리 / 처리방식을 말함.

이메일, 문자메시지 등의 전송, 동영상이나 이미지 영역에서 많이 사용됨.

인코딩의 반대는 디코딩

Base64

바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII문자로 표현하기 위해 만들어진 인코딩.

ASCII문자 하나가 64진법의 숫자 하나를 의미하기 때문에 base64라는 이름을 가졌다.

 

8비트짜리 바이트 3개를 6비트씩 4개로 쪼개어 base64 코드 4개로 바꾸어 표현한다. base64 코드를 바이너리로 디코딩하기 편하게 하기 위해 base64 코드를 무조건 네 글자 단위로 만들고, 빈 부분을 '=' 문자로 채워둔다.

encoding 예시

원문
E
1
L
바이트 값
0x45
0x31
0x4C
2진수
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
변환 값
17
19
5
12
결과
R
T
F
M

디코딩은 이 표와 거꾸로 하면된다.

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
/

출처 : https://namu.wiki/w/BASE64

 

BASE64 - 나무위키

'E1L'을 Base64로 인코딩하는 과정은 아래와 같다. 원문E1L바이트 값0x450x310x4C2진수010001010011000101001100변환 값1719512결과RTFM 결과는 'RTFM'. 디코딩은 이 표에 나온 과정을 거꾸로 하면 된다. 리눅스에서

namu.wiki

 

반응형