High-performance synchronous SHA-256 implementation for JavaScript. Optimized for browsers.
- Blazing fast
- Ultra lightweight
- ECMAScript 3-6
- Typed
- Tested`
Package is available through npm
and yarn
npm install @cryptography/sha256
yarn add @cryptography/sha256
- Hashing small inputs (< 5kb)
- Key derivation functions
- 100% browser support required
- Hashing files (> 5kb)
- Concurrent hashing large amount of messages
This package is optimized for small byte inputs (<10kb).
Also, it is highly recommended to run CPU-intensive tasks in a Web Worker.
import sha256 from '@cryptography/sha256'
// as Uint32Array([0xa8d627d9, 0x3f518e90, 0x96b6f40e, 0x36d27b76, 0x60fa26d3, 0x18ef1adc, 0x43da750e, 0x49ebe4be])
const array = sha256('Hello World!')
// as hex-string: "a8d627d93f518e9096b6f40e36d27b7660fa26d318ef1adc43da750e49ebe4be"
const hex = sha256('Hello World!', 'hex')
// as binary string: "Äï�ü�kYo�UH�½L�Û,Zß\nN�ÆêE©¡��`M¢"
const raw = sha256('Hello World!', 'binary')
// UInt32Array as input
const buf = new Uint32Array([0xa8d627d9, 0x3f518e90, 0x96b6f40e, 0x36d27b76, 0x60fa26d3, 0x18ef1adc, 0x43da750e, 0x49ebe4be]);
sha256(buf)
For hashing large files or other data chuncks use stream()
to create a hashing stream.
sha256.stream().update('Hello World!').digest();
Faster than forge, sjcl and WebCrypto API in sequence mode.
Contributions are welcome! Contribution guidelines will be published soon.