Tiny hashing module that uses the native crypto API in Node.js and the browser
JavaScript
645
44 commits
updated Jul 25, 2026
Tiny hashing module that uses the native crypto API in Node.js and the browser
Useful when you want the same hashing API in all environments. My cat calls it isomorphic.
In Node.js it uses node:crypto, while in the browser it uses window.crypto.
The browser version is only ~300 bytes minified & gzipped.
When used in the browser, it must be in a secure context (HTTPS).
This package is for modern browsers. Internet Explorer is not supported.
npm install crypto-hash
import {sha256} from 'crypto-hash';
console.log(await sha256('🦄'));
//=> '36bf255468003165652fe978eaaa8898e191664028475f83f506dabd95298efc'
Returns a Promise<string> with a Hex-encoded hash.
In Node.js, the operation is executed using worker_threads. A thread is lazily spawned on the first operation and lives until the end of the program execution. It's unrefed, so it won't keep the process alive.
SHA-1 is insecure and should not be used for anything sensitive.
Type: string ArrayBuffer ArrayBufferView
Type: object
Type: string
Values: 'hex' | 'buffer'
Default: 'hex'
Setting this to buffer makes it return an ArrayBuffer instead of a string.
Overall
Maintained
Code review
npm
Latest release
Releases this year
1,684 followers · starred Mar 2018
520 followers · starred Apr 2019
3,147 followers · starred Mar 2018
222 followers · starred Nov 2018
Tiny hashing module that uses the native crypto API in Node.js and the browser
JavaScript
645
44 commits
updated Jul 25, 2026
Tiny hashing module that uses the native crypto API in Node.js and the browser
Useful when you want the same hashing API in all environments. My cat calls it isomorphic.
In Node.js it uses node:crypto, while in the browser it uses window.crypto.
The browser version is only ~300 bytes minified & gzipped.
When used in the browser, it must be in a secure context (HTTPS).
This package is for modern browsers. Internet Explorer is not supported.
npm install crypto-hash
import {sha256} from 'crypto-hash';
console.log(await sha256('🦄'));
//=> '36bf255468003165652fe978eaaa8898e191664028475f83f506dabd95298efc'
Returns a Promise<string> with a Hex-encoded hash.
In Node.js, the operation is executed using worker_threads. A thread is lazily spawned on the first operation and lives until the end of the program execution. It's unrefed, so it won't keep the process alive.
SHA-1 is insecure and should not be used for anything sensitive.
Type: string ArrayBuffer ArrayBufferView
Type: object
Type: string
Values: 'hex' | 'buffer'
Default: 'hex'
Setting this to buffer makes it return an ArrayBuffer instead of a string.
Overall
Maintained
Code review
npm
Latest release
Releases this year
1,684 followers · starred Mar 2018
520 followers · starred Apr 2019
3,147 followers · starred Mar 2018
222 followers · starred Nov 2018