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')