Skip to main content
createHmac - node__crypto.d.ts - Node documentation
function createHmac

Usage in Deno

```typescript import { createHmac } from "node:node__crypto.d.ts"; ```
createHmac(
algorithm: string,
options?: stream.TransformOptions,
): Hmac
Creates and returns an `Hmac` object that uses the given `algorithm` and `key`. Optional `options` argument controls stream behavior. The `algorithm` is dependent on the available algorithms supported by the version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc. On recent releases of OpenSSL, `openssl list -digest-algorithms` will display the available digest algorithms. The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is a `KeyObject`, its type must be `secret`. If it is a string, please consider `caveats when using strings as inputs to cryptographic APIs`. If it was obtained from a cryptographically secure source of entropy, such as [randomBytes](../.././node__crypto.d.ts/~/randomBytes) or [generateKey](../.././node__crypto.d.ts/~/generateKey), its length should not exceed the block size of `algorithm` (e.g., 512 bits for SHA-256). Example: generating the sha256 HMAC of a file ```js import { createReadStream, } from 'node:fs'; import { argv } from 'node:process'; const { createHmac, } = await import('node:crypto'); const filename = argv[2]; const hmac = createHmac('sha256', 'a secret'); const input = createReadStream(filename); input.on('readable', () => { // Only one element is going to be produced by the // hash stream. const data = input.read(); if (data) hmac.update(data); else { console.log(`${hmac.digest('hex')} ${filename}`); } }); ```

Parameters

algorithm: string
optional
options: stream.TransformOptions
`stream.transform` options

Return Type