Replacements for create-hmac
crypto.createHmac (native, Node.js)
js
import { createHmac } from 'node:crypto'
import createHmac from 'create-hmac'
const secret = 'secret-key'
const data = 'message-to-sign'
const hash = createHmac('sha256', secret).update(data).digest('hex')crypto.subtle.sign (native, browser)
js
const encoder = new TextEncoder()
async function generateHMAC(secret, data) {
const key = await crypto.subtle.importKey(
'raw',
encoder.encode(secret),
{ name: 'HMAC', hash: 'SHA-256' },
false,
['sign']
)
const signature = await crypto.subtle.sign('HMAC', key, encoder.encode(data))
return new Uint8Array(signature).toHex()
}
const secret = 'secret-key'
const data = 'message-to-sign'
const hash = await generateHMAC(secret, data)@noble/hashes
js
import { hmac } from '@noble/hashes/hmac.js'
import { sha256 } from '@noble/hashes/sha256.js'
import { bytesToHex } from '@noble/hashes/utils.js'
import createHmac from 'create-hmac'
const secret = 'secret-key'
const data = 'message-to-sign'
const hash = createHmac('sha256', secret).update(data).digest('hex')
const hash = bytesToHex(hmac(sha256, secret, data))