如何在JavaScript / Node中计算SHA256哈希和Base64字符串编码

时间:2016-05-10 02:22:06

标签: javascript c# node.js base64 sha256

我正在尝试在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库

js-sha256

js-base64

有人知道如何让它发挥作用吗?我使用错误的库吗?

1 个答案:

答案 0 :(得分:5)

您不需要任何库来在NodeJS中使用加密函数。

const crypto = require('crypto');

const hash = crypto.createHash('sha256')
                   .update('test')
                   .digest('base64');
console.log(hash); // n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=