簡體   English   中英

將C#AES加密移植到Java for Node.js

[英]Porting C# AES Encryption to Javascript for Node.js

尋找幫助以使用加密或等效模塊將下面的C#代碼移植到Node.js中。

private string password="FlU4c8yQKLkYuFwsgyU4LFeIf7m3Qwy+poMBdULEMqw=";
private byte[] salt = Encoding.ASCII.GetBytes("##oEDA102ExChAnGe99#$#");
Aes encryptor = Aes.Create();
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, salt);
string pdbStr = Convert.ToBase64String(pdb.GetBytes(32));
Console.WriteLine(pdbStr);
encryptor.Key = pdb.GetBytes(32);
encryptor.IV = pdb.GetBytes(16);

嘗試按以下方式移植到javascript中,但結果值不相同。

var password = "FlU4c8yQKLkYuFwsgyU4LFeIf7m3Qwy+poMBdULEMqw=";
var salt = "##oEDA102ExChAnGe99#$#";
var pdbBytes = crypto.pbkdf2Sync(Buffer.from(password, 'base64'), new Buffer(salt, 'base64'), 1000, 32);
var pdbStr = new Buffer(pdbBytes).toString('base64')
console.log("pdbStr", pdbStr);

控制台輸出:C#-GZlqgdLbMQ753dTmx1nlJ6HgdabTjW1CeCSoIYkLM4E = JS-tuDsZJEEwxyXP7RvuYVxGmDy20AvMJAqkLoXX78sEU8 =

任何幫助深表感謝。 謝謝。

這些代碼部分正在生成相同的結果。

但是我沒有從c#中得到'GZlqgdLbMQ753dTmx1nlJ6HgdabTjW1CeCSoIYkLM4E ='結果。

C#

    byte[] password= Convert.FromBase64String("FlU4c8yQKLkYuFwsgyU4LFeIf7m3Qwy+poMBdULEMqw=");
    byte[] salt = Encoding.ASCII.GetBytes("##oEDA102ExChAnGe99#$#");
    Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password,salt,1000);
    string pdbStr =Convert.ToBase64String(pdb.GetBytes(32));
    Console.WriteLine(pdbStr);
    //outpu : RMqDMSV6d8uT2NicGM212r3KMFt7ZsOI2q8+0Rr0WZQ=

JS

var crypto = require("crypto");
var password = "FlU4c8yQKLkYuFwsgyU4LFeIf7m3Qwy+poMBdULEMqw=";
var salt = "##oEDA102ExChAnGe99#$#";
crypto.DEFAULT_ENCODING = 'base64';
var pdbBytes = crypto.pbkdf2Sync(new Buffer(password,'base64'), salt, 1000, 32,'sha1');
var pdbStr = new Buffer(pdbBytes).toString()
console.log("pdbStr", pdbStr);
//outpu : RMqDMSV6d8uT2NicGM212r3KMFt7ZsOI2q8+0Rr0WZQ=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM