我必须将一些使用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')