Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 解决b64解码时不正确的填充错误?_Python_Encryption_Encoding_Cryptography_Base64 - Fatal编程技术网

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字母表的一部分

关于你的问题,我一点也不了解。您的参数与块中的变量不匹配,并且您似乎半随机地混合了二进制和各种编码。