본문 바로가기
파이썬

파이썬 How to decode base64 url in python?

by º기록 2020. 11. 15.
반응형

Facebook fbml 앱의 경우 Facebook은 여기에 설명 된 signed_request 매개 변수를 전송합니다.


그들은이 서명 된 요청을 디코딩하는 PHP 버전을 제공했습니다.


파이썬에서 같은 일을하는 방법?

base64 모듈을 시도했지만 잘못된 패딩 오류가 발생합니다.

>>> base64.urlsafe_b64decode("eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImV4cGlyZXMiOjEyNzk3NDYwMDAsIm9hdXRoX3Rva2VuIjoiMjk1NjY2Njk1MDY0fDIuRXpwem5IRVhZWkJVZmhGQ2l4ZzYzUV9fLjM2MDAuMTI3OTc0NjAwMC0xMDAwMDA0ODMyNzI5MjN8LXJ6U1pnRVBJTktaYnJnX1VNUUNhRzlNdEY4LiIsInVzZXJfaWQiOiIxMDAwMDA0ODMyNzI5MjMifQ")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/base64.py", line 112, in urlsafe_b64decode
    return b64decode(s, '-_')
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/base64.py", line 76, in b64decode
    raise TypeError(msg)
TypeError: Incorrect padding

 

해결 방법

 

원래 base64로 인코딩 된 문자열을 복사 할 때 마지막 두 문자를 놓친 것 같습니다. 입력 문자열에 두 개의 같음 (=) 기호를 붙이면 올바르게 디코딩됩니다.

 

참조 페이지 https://stackoverflow.com/questions/3302946

 

 

반응형

댓글