Skip to content Skip to sidebar Skip to footer

How To Decode Base64 In Python3

I have a base64 encrypt code, and I can't decode in python3.5 import base64 code = 'YWRtaW46MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA' # Unencrypt is 202cb962ac59075b964b07152d23

Solution 1:

Base64 needs a string with length multiple of 4. If the string is short, it is padded with 1 to 3 =.

import base64
code = "YWRtaW46MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA="
base64.b64decode(code)
# b'admin:202cb962ac59075b964b07152d234b70'

Solution 2:

According to this answer, you can just add the required padding.

code = "YWRtaW46MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA"
b64_string = code
b64_string += "=" * ((4 - len(b64_string) % 4) % 4)
base64.b64decode(b64_string) #'admin:202cb962ac59075b964b07152d234b70'

Solution 3:

I tried the other way around. If you know what the unencrypted value is:

>>>import base64>>>unencoded = b'202cb962ac59075b964b07152d234b70'>>>encoded = base64.b64encode(unencoded)>>>print(encoded)
b'MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA='
>>>decoded = base64.b64decode(encoded)>>>print(decoded)
b'202cb962ac59075b964b07152d234b70'

Now you see the correct padding. b'MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA=

Solution 4:

It actually seems to just be that code is incorrectly padded (code is incomplete)

importbase64code="YWRtaW46MjAyY2I5NjJhYzU5MDc1Yjk2NGIwNzE1MmQyMzRiNzA"
base64.b64decode(code+"=")

returns b'admin:202cb962ac59075b964b07152d234b70'

Post a Comment for "How To Decode Base64 In Python3"