If you’re looking for the equivalent of hash_hmac('sha1', 'string', 'secret');
in JavaScript, then here you go:
async function hmac_sha1 (str, secret) { // see https://stackoverflow.com/a/47332317/1134119 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(""); }