function createHmac
Usage in Deno
```typescript import { createHmac } from "node:node__crypto.d.ts"; ```
createHmac(): 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}`);
}
});
```
key: BinaryLike | KeyObject