Awesome Open Source
Awesome Open Source

crypto-hash Build Status

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 require('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).


$ npm install crypto-hash


const {sha256} = require('crypto-hash');

(async () => {
	console.log(await sha256('🦄'));
	//=> '5df82936cbf0864be4b7ba801bee392457fde9e4'


sha1(input, options?)

sha256(input, options?)

sha384(input, options?)

sha512(input, options?)

Returns a Promise<string> with a hex-encoded hash.

In Node.js 12 or later, 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.


  • hasha - Hashing in Node.js made simple

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (66,554
nodejs (3,505
browser (418
npm-package (246
crypto (219
isomorphic (102
hashing (51
sha256 (27
hash-functions (21

Find Open Source By Browsing 7,000 Topics Across 59 Categories