Python 解决b64解码时不正确的填充错误?
功能描述:Python 解决b64解码时不正确的填充错误?,python,encryption,encoding,cryptography,base64,Python,Encryption,Encoding,Cryptography,Base64,功能描述: decodexorbase64(字符串,键)获取上一个 函数(xor'd字符串和base64编码键)并返回 原始字符串,b'格式 我的代码: def decodexorbase64(code, keyb64): keyoriginal = binascii.a2b_base64(key) stroriginal = binascii.a2b_base64(string) return (stroriginal, keyoriginal) 问题: def de
decodexorbase64(字符串,键)
获取上一个
函数(xor'd字符串和base64编码键)并返回
原始字符串,b'格式
我的代码:
def decodexorbase64(code, keyb64):
keyoriginal = binascii.a2b_base64(key)
stroriginal = binascii.a2b_base64(string)
return (stroriginal, keyoriginal)
问题:
def decodexorbase64(code, keyb64):
keyoriginal = binascii.a2b_base64(key)
stroriginal = binascii.a2b_base64(string)
return (stroriginal, keyoriginal)
print(decodexorbase64(b'\x02\x01\x04\x00\x03\x00Y^\x00',b'a2VybWl0\n'))
给出错误:binascii。错误:填充不正确
我可以在代码中编写什么来避免此错误?您应该将二进制与二进制进行异或运算,而不是将base 64与base 64进行异或运算,并期望它返回base 64。如果对基64的两个ASCII编码进行异或运算,则可能会将许多字节设置为接近零(因为第一位可能匹配),这似乎反映了问题中的
code
或string
如果需要,首先解码,然后XOR,如果需要文本作为输出,则再次编码
注:
- 我认为您在函数声明中重写了参数的名称李>
- 第一个数组(代码)看起来是二进制的,而不是基64
- 第二个数组有一个最终行终止符,它不是基64字母表的一部分