Игнорировать исключение заполнения при декодировании base32 с использованием b32decode из base64 lib - PullRequest
0 голосов
/ 23 декабря 2018

Мне нужен способ игнорировать исключение «неправильное заполнение» при попытке декодировать строку base32 с использованием библиотеки base64.

Я видел этот пост Python: игнорировать ошибку «Неправильное заполнение» при base64декодирование , которое решает проблему для декодирования base64 (b64decode).Я пытался сделать то же самое (добавить максимальное количество принятых отступов, которое, если я не msitaken, равно 6 для base32), как это

b32decode(str(decoding) + "======", True, None)

Но исключение все равно возникает.

Ожидаемый результат заключается в том, что строка base32 будет декодирована в любом случае даже без правильного заполнения:

decoding = JBSWY3DPEBZXIYLDNMQG65TFOJTGY33XEE== #this string should have 6 '=' as padding
print(b32decode(str(decoding) + "======", True, None))
>> Hello stack overflow! 

1 Ответ

0 голосов
/ 23 декабря 2018

Вы не должны добавлять целые 6 символов '=', вам нужно добавить суффикс pad, чтобы иметь 6 символов равенства:

> base64.b32decode("JBSWY3DPEBZXIYLDNMQG65TFOJTGY33XEE======")
'Hello stack overflow!'

Чтобы правильно заполнить сообщение, вы должны следовать https://tools.ietf.org/html/rfc4648#section-6

...