개발

Base64 인코딩/디코딩

인공지능 대학생 2020. 7. 29. 11:11

정의:

정보를 64진수로 표시

컴퓨터에서 64진수 표현을 위해 6 bit 를 사용 (2^6 = 64)

 

원리:
대부분 컴퓨터의 정보 단위는 8 bit (1 byte) 이므로
Base 64 에서는 6 bit 를 8 bit 단위로 맞추기 위해

6과 8의 최소공배수인 24를 기준으로 8 bit 3묶음(3byte)을 6 bit 4묶음으로 변형하고

각 묶음을 아스키코드(A-Z a-z 0-9 +-: total 64개문자) 값으로 변경하는 방식
데이터가 3바이트로 나누어떨어지지 않을 경우 '=' 문자를 채움

3 byte (8 bit * 3) -> 6 bit * 4

 


사용 목적:

1. 암호화

2. 64개의 아스키문자열로 변환하여 데이터를 전송. -> 호환성 향상

 

사용예:

1. 한글과 같은 2바이트 문자열 전송시의 데이터 깨짐을 방지

2. 이메일 전송시 사용

 

단점:

1. 데이터 크기가 기존 데이터 대비 약 30% 이상 커짐

 

 

6-bit Value

Encoding

6-bit Value

Encoding

6-bit Value

Encoding

6-bit Value

Encoding

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

/

Base64 아스키 대응표
출처: https://huikyun.tistory.com/70 [Development & Information Security]

 

test: https://www.base64encode.org/

반응형