본문 바로가기
Python

[Python] 파이썬 base64 인코딩, 디코딩 사용법 및 예제

by A6K 2022. 11. 8.

base64는 바이너리 데이터를 ASCII 문자만으로 표현하기 위해 만들어진 인코딩 방법이다. ASCII 문자 하나가 64진법 숫자 하나를 의미하기 때문에 BASE64라는 이름을 가지게 되었다.

파이썬에서는 base64 모듈을 통해서 바이너리 데이터를 base64로 인코딩하거나 base64로 표현된 정보를 디코딩해서 바이너리 데이터로 가져올 수 있다.

base64 인코딩

바이트 데이터를 base64 인코딩을 해보자.

import base64

str = '안녕?'
bytes = str.encode('UTF-8')

result = base64.b64encode(bytes)
result_str = result.decode('ascii')
print(result_str)

# 7JWI64WVPw==

우선 base64 모듈을 사용하기 위해 base64 모듈을 import 했다.

'안녕?'이라는 한글 문자열을 UTF-8 인코딩을 해서 base64 인코딩을 할 바이트를 만들었다.

이 바이트 데이터를 base64 모듈의 b64encode() 함수의 인자로 넘기면 base64 인코딩이 된 바이트 데이터가 리턴된다. 이 바이트 데이터는 ASCII 코드 값이다.

b64encode() 함수가 리턴한 바이트 데이터를 ASCII 코드로 디코딩하면 BASE64 인코딩된 문자열을 얻을 수 있다.

base64 디코딩

이제 반대로 base64 인코딩된 문자열을 디코딩해보자.

import base64

code = '7JWI64WVPw=='
code_bytes = code.encode('ascii')

decoded = base64.b64decode(code_bytes)
str = decoded.decode('UTF-8')
print(str)

# 안녕?

위 인코딩 코드에서 만들어진 base64 인코딩 된 문자열인 '7JWI64WVPw=='을 ascii 코드로 인코딩해서 바이트 데이터를 얻어온다.

이렇게 얻어온 바이트 데이터를 base64 모듈의 b64decode() 함수의 인자로 넘겨주면 이 코드를 해석한 바이트 코드가 리턴된다.

리턴된 바이트를 UTF-8로 디코딩하면 맨처음 사용했던 한글 문자열인 '안녕?'을 다시 얻어올 수 있다.


 

 

파이썬 스크립트 작성에 도움되는 글 모음

파이썬으로 프로그램을 작성할 때 도움되는 글들을 모아본다. 개발환경 [Python] macOS에 파이참 설치 [Python] 파이참 깃허브 연동 [Python] 파이썬 PIP란? [Python] VSCode를 이용한 개발환경 [Python] python3를

hbase.tistory.com

 

댓글