def safe_base64_decode(s): s_length = len(s) number_of_bytes = s_length*6 #编码成base64的字符串,每个字符对应原有字符串的6个bit的数据 added_bytes = number_of_bytes%8 #原字符串翻译成base64编码前,多加的bit个数 number_of_equalsign = int(added_bytes/2) #因为\x00的bit数是2,所以除以2可以得到补充的\x00个数,也就是'='的个数 s+=b'='*number_of_equalsign #将'='补充回带解码的字符串 return base64.b64decode(s) #根据补充完整的字符串即可解码得到原有字符串 #测试: assert b'abcd' == safe_base64_decode(b'YWJjZA=='), safe_base64_decode('YWJjZA==') assert b'abcd' == safe_base64_decode(b'YWJjZA'), safe_base64_decode('YWJjZA') print('ok')
Sign in to make a reply
易水滨需要换个CPU