解决b64解码时不正确的填充错误?

2024-05-19 00:00:24 发布

您现在位置:Python中文网/ 问答频道 /正文

功能描述:decodexorbase64(string, key)获取上一个 函数(xor'd字符串和base64编码键)并返回 原始字符串,b'格式

我的代码:

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.Error: Incorrect padding

我可以在代码中编写什么来避免此错误?


Tags: key函数字符串代码功能string错误x00
1条回答
网友
1楼 · 发布于 2024-05-19 00:00:24

您应该将二进制与二进制异或,而不是将基64与基64异或,并期望它返回基64。如果对基64的两个ASCII编码进行异或运算,则很可能会将许多字节设置为接近零(因为第一个位可能匹配),这似乎反映了问题中的codestring。你知道吗

首先解码,如果需要,然后异或,然后再次编码,如果您需要文本作为输出。你知道吗


注意事项:

  • 我认为你重写了函数声明中参数的名称
  • 第一个数组(code)看起来是二进制的,而不是基64
  • 第二个数组有一个最终行终止符,它不是基64字母表的一部分

相关问题 更多 >

    热门问题