我试图在JavaScript中重新创建以下C#代码.
SHA256 myHash = new SHA256Managed();
Byte[] inputBytes = Encoding.ASCII.GetBytes("test");
myHash.ComputeHash(inputBytes);
return Convert.ToBase64String(myHash.Hash);
此代码返回“n4bQgYhMfWWaL qgxVrQFaO / TxsrC4Is0V1sFbDwCgg =”
这是我到目前为止我的JavaScript代码
var sha256 = require('js-sha256').sha256;
var Base64 = require('js-base64').Base64;
var sha256sig = sha256("test");
return Base64.encode(sha256sig);
JS代码返回“OWY4NmQwODE4ODRjN2Q2NTlhMmZlYWEwYzU1YWQwMTVhM2JmNGYxYjJiMGI4MjJjZDE1ZDZjMTViMGYwMGEwOA ==”
这些是我使用的2个JS库
有谁知道如何使它工作?我使用错误的库吗?
解决方法:
您不需要任何库来在NodeJS中使用加密函数.
const crypto = require('crypto');
const hash = crypto.createHash('sha256')
.update('test')
.digest('base64');
console.log(hash); // n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=