javascript - NodeJS 加密和 jsSHA 的 SHA-1 结果不同

标签 javascript node.js cryptography

我必须将一些使用 jsSHA 的浏览器代码移植到 NodeJS,并且我期望使用 crypto 模块,但由于某种原因,这两段代码生成了不同的结果,而我相信它们应该是相同的:

let s1 = crypto.createHmac('sha1', '1234').update('4321').digest('base64');

var hmacObj = new jsSHA("SHA-1", "TEXT");
hmacObj.setHMACKey('1234', "B64")
hmacObj.update('4321')
let s2 = hmacObj.getHMAC("B64");

console.log(`${s1} <===> ${s2}`);
// EL8JVAKqxIzgv0ELy/9zDxzlKIc= <===> RvRFQNm8hvN+vwvp8zNxs/z6P2s=

感谢您的帮助。

最佳答案

这会产生与 jsSHA 代码相同的结果:

crypto.createHmac('sha1', new Buffer('1234', 'base64'))
      .update('4321')
      .digest('base64')

关于javascript - NodeJS 加密和 jsSHA 的 SHA-1 结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37279222/

相关文章:

node.js - 如何将包含的部分插入代码插入父 block 中?

java - 如何通过Web动态查询数据库?

c++ - 如何在cryptoki中重命名容器名称

javascript - 如何将数组中的日期字符串更新为mongoDB中的日期格式?

Javascript - 原始类型与引用类型

javascript - 将元素连续滚动到父元素的底部并返回到父元素的顶部

mysql - Npm Mysql 连接错误

javascript - jQuery 根据数组值隐藏下拉选项

java - AES 与 PBEWithSHA256And256BitAES

java - 如何在 Java 中读取 sha1WithRSAEncryption 公共(public) DER key ?