If you’re looking for the equivalent of hash_hmac('sha1', 'string', 'secret');
in JavaScript, then here you go:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | async function hmac_sha1 (str, secret) { let enc = new TextEncoder( "utf-8" ); let key = await window.crypto.subtle.importKey( "raw" , // raw format of the key - should be Uint8Array enc.encode(secret), { // algorithm details name: "HMAC" , hash: {name: "SHA-1" } }, false , // export = false [ "sign" , "verify" ] // what this key can do ); let signature = await window.crypto.subtle.sign( "HMAC" , key, enc.encode(str) ); let b = new Uint8Array(signature); return Array.prototype.map.call(b, x => x.toString(16).padStart(2, '0' )).join( "" ); } |