来自 nodejs 加密的 SHA256 不正确

Posted

技术标签:

【中文标题】来自 nodejs 加密的 SHA256 不正确【英文标题】:Incorrect SHA256 from nodejs crypto 【发布时间】:2020-07-10 18:04:01 【问题描述】:
const crypto = require('crypto');

hm = crypto.createHmac("sha256","Some String");
console.log(hm.digest("base64"));

运行它给了我:

Nd6Q8epsIBG+c/jN6TdnfRNbFWCcB7bI0DYkfyDqf+8=

(repl)

但是在https://approsto.com/sha-generator/ 计算 sha256 给了我:

fw/WRlO6C7Glec7Str83XpFsxgZiEJ7gwLJPCnUMOmw

为什么会有差异?

【问题讨论】:

【参考方案1】:

使用Hash 代替Hmac

const crypto = require('crypto');

hash = crypto.createHash("sha256");
hash.update("Some String");
console.log(hash.digest("base64"));

结果:

fw/WRlO6C7Glec7Str83XpFsxgZiEJ7gwLJPCnUMOmw=

另见:

What is the difference between a HMAC and a hash of data?

【讨论】:

以上是关于来自 nodejs 加密的 SHA256 不正确的主要内容,如果未能解决你的问题,请参考以下文章

关于腾讯云短信接口的sig字段,sha256加密问题,nodejs

sha256可以解密吗

加密相关知识总结

SHA256 加密后能不能解密

NodeJS Crypto RS-SHA256 和 JWT 承载

sha256双向加密吗