Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

将一段加/解密C#代码改写为Nodejs,提示

$
0
0

各位同学,手上有一段C#代码,希望转为NodeJS的。参考了

		private static void Decode(string text)
        {
            MemoryStream memoryStream = new MemoryStream();
            RijndaelManaged rijndaelManaged = new RijndaelManaged();
            byte[] array = Convert.FromBase64String(text);
            byte[] rgbKey = Convert.FromBase64String("RTgklqOuVBZ=");
            byte[] rgbIV = Convert.FromBase64String("3FH9eyHK7mfgtwF81RIwgA==");
            CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
            cryptoStream.Write(array, 0, array.Length);
            cryptoStream.Close();
            memoryStream.Close();
            Console.WriteLine("解密后:");
            Console.WriteLine(Encoding.UTF8.GetString(memoryStream.ToArray()));
            Console.WriteLine();
        }

我的代码如下:

var crypto = require('crypto');
var algorithm = 'aes-128-ecb';
var key = 'RTgklqOuVBZ=';
var iv = '3FH9eyHK7mfgtwF81RIwgA==';
var decipher = crypto.createDecipheriv(algorithm, key,iv);

var data = 'hidden the coded string '
decipher.update(data, 'base64', 'utf8');
var decoded = decipher.final('utf8');
console.log(decoded);

但是在crypto.createDecipheriv(algorithm, key,iv);时,报错,Invalid IV length 。 试了:var iv = new Buffer(‘3FH9eyHK7mfgtwF81RIwgA==’,‘base64’); 也还是报同样的错误,请教一下,是哪里没有设置对?


Viewing all articles
Browse latest Browse all 14821

Trending Articles