我试图构建一个可以翻译由该函数生成的加密字符串的函数:
def encrypt2(message,key):
return base64.encodestring("".join([chr(ord(message[i]) ^ ord(key[i % len(key)]))
for i in xrange(len(message))]))
因此该函数采用一个字符串和一个有 4 位数字的键(键是一个字符串),并使用 encodestring 函数对他进行编码。我为解码它而构建的函数看起来相同,但有一个区别,encodestring 更改为 decodestring。我认为它应该可以工作,但它会打印一条错误消息,“不正确的填充”。我应该在解密功能中改变什么来解决这个问题?
def decrypt2(message,key):
return (base64.decodestring("".join([chr(ord(message[i]) ^ ord(key[i % len(key)]))
for i in xrange(len(message))])))
这是我试图执行的:
message = "n"
key = "8080"
encrypt = encrypt2(message,key)
decrypt = decrypt2(encrypt,key)
print "Message: %s \nEncrypt: %s \nDecrypt: %s" %(message,encrypt,decrypt)
正如我所说,解密行返回了一个“不正确的填充”错误。