0

我正在尝试将此 C# 函数复制到 NodeJS 函数中。

这里首先是 C# 函数。

private byte[] Decrypt(byte[] plainText)
        {
            using (var aes = new AesManaged())
            {
                aes.Mode = CipherMode.ECB;
                aes.Padding = PaddingMode.Zeros;

                var decryptor = aes.CreateDecryptor(Key, Key);
                var decrypted = decryptor.TransformFinalBlock(plainText, 0, plainText.Length);

                return decrypted;
            }
        } 

这是我试图将其转换为的 NodeJS 函数。

var crypto = require("crypto")
require('./config');

function decrypt(key, data) {
        var decipher = crypto.createDecipher('aes-256-ecb', key);
        var decrypted = decipher.update(data, "utf8", "utf8");
        decipher.setAutoPadding(true);
        decrypted += decipher.final('utf8');

        return decrypted;
}

decryptedText = decrypt(process.env.password, process.env.encryptedMessage);
console.log("Decrypted Text: ",  decryptedText);

NodeJS 函数是错误的,有人可以将 C# 函数转换为 NodeJS 函数吗,因为我是前端开发人员,对此我的经验有限。

目前我得到的输出是:

Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length
    at Error (native)
    at Decipher.Cipher.final (crypto.js:158:26)
    at decrypt (/Users/dave/Tests/sqs-consumer/app3.js:8:31)
4

0 回答 0