如何在JavaScript / Node中计算SHA256散列和Base64string编码

我正尝试在JavaScript中重新创build以下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库

https://www.npmjs.com/package/js-sha256 https://www.npmjs.com/package/js-base64

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

非常感谢

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

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