因此,我们从“如何解密… OpenSSL”开始。
- 我们需要修改加密脚本,该脚本提供了:
crypto = require "crypto"
[…]
var iv = new Buffer(‘asdfasdfasdfasdf’)
var key = new Buffer(‘asdfasdfasdfasdfasdfasdfasdfasdf’)
var cipher = crypto.createCipheriv(‘aes-256-cbc’, key, iv);
cipher.update(new Buffer(“mystring”));
var enc = cipher.final(‘base64’);
[…]
iv 需要16字节长, 密钥 是32字节。然后我们更改
createCipher为
createCipheriv。
- 返回python解密脚本:
流程只是阅读PyCrypto的文档,然后与我们从开始的代码进行比较。
然后,我们决定坚持使用API并从头开始。它给了:
from base64 import b64deprefrom Crypto.Cipher import AES[...]iv = 'asdfasdfasdfasdf'key = 'asdfasdfasdfasdfasdfasdfasdfasdf'enpred = b64depre('my_encrypted_string')dec = AES.new(key=key, mode=AES.MODE_CBC, IV=iv)value = dec.decrypt(enpred)就这么简单…希望对您有所帮助!
更新:
正如英仙座人在其回答的评论中所写,IV必须是随机的,并且对于每条消息都不同



