Skip to content

Crypto Utility

The Crypto utility provides simple, stateless functions for cryptographic hashing using Node.js's built-in node:crypto module.

hash

The hash function allows you to create a hash of a string using either SHA256 (with a secret for HMAC) or MD5.

hash(text, options)

  • text (string): The input string to hash.
  • options (object):
    • algorithm ('SHA256' | 'MD5'): The hashing algorithm to use.
    • secret (string, optional): The secret key for HMAC-SHA256. If algorithm is 'SHA256' and no secret is provided, the original text is returned unchanged.
    • outputType (BinaryToTextEncoding): The output encoding (e.g., 'hex', 'base64').

Behavior

  • SHA256: Creates an HMAC using the provided secret. Returns the original text if no secret is given.
  • MD5: Creates a standard hash digest (no secret needed).
  • Other algorithms: Returns the original text unchanged.

Examples

MD5 Hash

typescript
import { hash } from '@venizia/ignis-helpers';

const md5Hash = hash('some text', { algorithm: 'MD5', outputType: 'hex' });
// => '552e21cd4cd99186789c2370c7482837'

SHA256 HMAC

typescript
import { hash } from '@venizia/ignis-helpers';

const sha256Hash = hash('some text', {
  algorithm: 'SHA256',
  secret: 'a-secret-key',
  outputType: 'hex',
});
// => 'b8a1c3f2... (64-character hex string)'

Base64 output

typescript
import { hash } from '@venizia/ignis-helpers';

const base64Hash = hash('some text', {
  algorithm: 'MD5',
  outputType: 'base64',
});