问题描述
crypto.createHmac('sha256',secret).update(orderedParams).digest('hex')
我希望在浏览器中引入这段代码,但这不起作用,因为浏览器不支持“crypto”库。有人可以帮我在浏览器中重新创建相同的方法吗?
解决方法
大多数加密库都可以确定 HMAC,例如CryptoJS 或 WebCrypto API。
以下示例使用 CryptoJS:
var secret = 'my secret';
var orderedParams = 'the ordered params';
// Short
var hmac3 = CryptoJS.HmacSHA256(orderedParams,secret).toString();
console.log(hmac3.replace(/(.{48})/g,'$1\n'));
// Progressive
var hmac2 = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256,secret).update(orderedParams).finalize().toString();
console.log(hmac2.replace(/(.{48})/g,'$1\n'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>