我一直使用如下的nodejs模块加密消息:
var crypto = require('crypto'),
algorithm = 'aes-256-ctr',
password = 'd6F3Efeq';
function encrypt(text){
var cipher = crypto.createCipher(algorithm,password)
var crypted = cipher.update(text,'utf8','hex')
crypted += cipher.final('hex');
return crypted;
}
(从这里开始:https://lollyrock.com/articles/nodejs-encryption/)
但是,使用相同的秘密,相同的算法和相同的模式,我无法使用Python中的加密技术对此进行解密。
这是我尝试过的事情之一:
crypto = AES.new(password, AES.MODE_CTR)
print(crypto.decrypt(message.decode("hex")))
返回二进制数据。用UTF-8编码失败,最有趣的是: 似乎AWS.new每次都会生成一个随机iv,并且每次运行的解密结果都不同!
..现在,nodeJS库没有返回Nonce,所以我不知道除了密文和密码(秘密)之外,NodeJS函数还带给我什么-有什么想法吗?