py2 to 3 base64 issues
Larry Martell
larry.martell at gmail.com
Fri Aug 9 12:06:56 EDT 2019
I have some python 2 code:
def decode(key, string):
decoded_chars = []
string = base64.urlsafe_b64decode(string)
for i in range(len(string)):
key_c = key[i % len(key)]
encoded_c = chr(abs(ord(string[i]) - ord(key_c) % 256))
decoded_chars.append(encoded_c)
decoded_string = "".join(decoded_chars)
return decoded_string
and if I call it like this in py2 it works as expected:
s = 'V3NYVY95iImnnJWCmqphWFFzU1qvqsV6x83Mxa7HipZitZeMxbe709jJtbfW6Y6blQ=='
key = '!@#$VERYsecRet)('
decode(key, s)
In py3 it fails with
TypeError: ord() expected string of length 1, but int found
I know that in py3 base64.urlsafe_b64decode is returning bytes not
chars and that is what that is happening, and I thought the solution
would be to decode it, but what codec would I use for this?
More information about the Python-list
mailing list