웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > python

Python base64 인코딩, 디코딩 변환 방법

Last Modified : 2023-11-08 / Created : 2020-11-07
55,194
View Count

Python에서 base64인코딩(encoding) 또는 디코딩(decoding) 하는 방법에 대하여 알아봅니다.




# Python base64 변환, 인코딩 디코딩 방법


Python을 사용하는 경우 base64로 인코딩하거나 반대로 디코딩이 필요할 수 있습니다. 예를들어 인증 및 로그인에 jwt나 토큰을 사용한다면 값을 그냥 전달하지 않고 base64로 인코딩하여 전달하는 방법이 사용됩니다.



! Python base64 값을 디코딩(decoding)하기


아래는 전달 받은 값이 base64인 경우 이 값을 다시 문자열로 디코딩하여 사용하는 방법입니다. 먼저 base64를 사용하기 위해서는 모듈을 추가합니다.
import base64

이제 base64가 추가되어 사용이 가능합니다. 이제 변수 sitename에 'webisfree'를 선언하고 이 값을 base64로 변환해도록 하겠습니다.
sitename = 'webisfree'
sitename_bytes = sitename .encode('ascii')
sitename_base64 = base64.b64encode(sitename_bytes)
sitename_base64_str = sitename_base64.decode('ascii')

위의 변환 과정을 보면 아래와 같이 진행되었습니다.

1. 문자열을 bytes 타입으로 인코딩 변환
// base64로 변환하기 위해서는 bytes 타입 변환이 필요함
2. bytes 타입을 base64로 다시 변환
3. base64 타입의 bytest 타입을 디코딩

이제 base64로 변환 후 문자열로 변환한 과정이 끝났습니다. 출력해보면 아래와 같이 나타납니다.
> print(sitename_base64_str)
d2ViaXNmcmVl



! base64를 디코딩(decoding)하는 방법


이제 위와 같이 base64의 값을 다시 디코딩하여 사용하는 방법을 알아봅니다. decoding 방법은 아래와 같습니다.
sitename_base64_str  = 'd2ViaXNmcmVl'
sitename_bytes = base64.b64decode(sitename_base64_str )
sitename = sitename_bytes .decode('ascii')

base64 타입의 디코딩이 모두 완료되었습니다. 변환 순서는 위의 인코딩의 역순입니다. 값이 잘 변경되었는지 출력해보면 아래와 같습니다.
print(sitename)

// 출력결과
webisfree

여기까지 Python에서 base64를 사용하는 방법을 알아보았습니다. 중요한 부분은 bas64로 인코딩, 디코딩 하려면 문자열을 그래도 변환할 수 없고 bytes 타입으로 인코딩, 디코딩하는 과정이 선행되어야 한다는 점입니다.

Previous

Python 기본 파이썬 버전을 Python3로 설정하는 방법

Previous

python 딕셔너리 타입의 모든 키 출력하기