Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 2-解密Java';s PBewithmd5和des_Python_Python 2.7_Encryption_Md5_Des - Fatal编程技术网

Python 2-解密Java';s PBewithmd5和des

Python 2-解密Java';s PBewithmd5和des,python,python-2.7,encryption,md5,des,Python,Python 2.7,Encryption,Md5,Des,这个问题与这个问题有关: 这就是问题的答案(Python代码): 当然,我现在正试图通过知道_密码、_salt和_迭代变量来执行反向操作(解密) 打印编码器。解密(加密)与初始密码不匹配 我不知道下一步该怎么办。我阅读了第6.1.2条,但对我没有帮助。谁能告诉我正确答案吗 编辑: 似乎需要以下内容: encoder2 = DES.new(result[:8], DES.MODE_CBC, result[8:16]) print encoder2.decrypt(encrypted) 为什么我

这个问题与这个问题有关:
这就是问题的答案(Python代码):

当然,我现在正试图通过知道_密码、_salt和_迭代变量来执行反向操作(解密

打印编码器。解密(加密)
与初始密码不匹配

我不知道下一步该怎么办。我阅读了第6.1.2条,但对我没有帮助。谁能告诉我正确答案吗

编辑:
似乎需要以下内容:

encoder2 = DES.new(result[:8], DES.MODE_CBC, result[8:16])
print encoder2.decrypt(encrypted)
为什么我必须再次使用
DES.new()
?我怎样才能去掉填充物?

“123456”的实际解密输出是
123456☻☻

只需取最后一个字节,并删除它编码的尽可能多的字符(包括最后一个字节)

请注意,如果您容易受到错误预言(如填充预言)的攻击,则应添加身份验证标记。

请这样做

    decrypted = encoder2.decrypt(encrypted)
    print decrypted.rstrip('\2,\1,\3,\4,\5,\6,\7')
“123456”的长度为6,解密程序输出8个字节。剩余的位置用默认字节填充,因此
rstrip
会去除字节并给出字符串

编辑:我已经创建了一个参考要点

长度“123456”为6,解密程序输出8个字节,剩余位置填充默认字节,因此rstrip将剥离字节并给出字符串
    decrypted = encoder2.decrypt(encrypted)
    print decrypted.rstrip('\2,\1,\3,\4,\5,\6,\7')