NodeJS加密无法正确解密由其他一些工具加密的加密

时间:2019-03-28 19:24:38

标签: node.js cryptography

我用https://encode-decode.com/aes-256-ctr-encrypt-online/加密了纯文本,然后使用了nodejs crypto aes-2556-ctr算法解密,但是它不返回原始文本。

纯文本:测试 密钥:12345678901234567890123456789012

使用https://encode-decode.com/aes-256-ctr-encrypt-online/加密的文本:D / EU6g ==

以下是我在nodejs中使用的代码:

var crypto = require('crypto'),
    algorithm = 'aes-256-ctr',
    key = '12345678901234567890123456789012';

function encrypt(text){
    var cipher = crypto.createCipher(algorithm,key);
    var crypted = cipher.update(text,'uft8', 'base64');
    crypted += cipher.final('base64');
    return crypted;
}

function decrypt(text){
    var decipher = crypto.createDecipher(algorithm,key);
    var dec = decipher.update(text, 'base64', 'utf8');
    dec += decipher.final('utf8');
    return dec;
}

我还可以看到nodejs加密返回了我用来加密的工具的不同输出。

有人知道这里可能缺少什么吗?

1 个答案:

答案 0 :(得分:0)

使用createCipheriv为我工作。谢谢!