输入的base64编码字符串必须符合base64的padding规则。 我理解这是因为字符串的长度不是 4 的倍数,这是 base64 编码文本的要求。 原因一: 有可能是python base64库编码规则不太统一导致的;解决办法就是对base64解码的string补齐等号就可以了; python中base64串的长度需为4的整数倍,故对长度不为4整数倍的base64串需要用"='补足 解决办法: python binascii.Error: Incorrect padding 原因二: 由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数, 所以又有一种"url safe"的base64编码,其实就是把字符+和/分别变成-和_: 解决办法: 在补全位数的基础上: base64.encodebytes(encrypt_aes) 换成 base64.urlsafe_b64encode(encrypt_aes) base64.decodebytes(encrypt_aes) 换成 base64.urlsafe_b64decode(encrypt_aes) ————————————————
binascii.Error: Incorrect padding 报错解决(解密失败)
于 2023-10-11 09:59:49 首次发布