Discuss / Python / 交作业

交作业

Topic source
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')


  • 1

Reply