Hashing made simple. Get the hash of a buffer/string/stream/file.
Hashing made simple. Get the hash of a buffer/string/stream/file.
Convenience wrapper around the core crypto
Hash class with simpler API and better defaults.
npm install hasha
import {hash} from 'hasha';
await hash('unicorn');
//=> 'e233b19aabc7d5e53826fb734d1222f1f0444c3a3fc67ff4af370a66e7cadd2cb24009f1bc86f0bed12ca5fcb226145ad10fc5f650f6ef0959f8aadc5a594b27'
See the Node.js crypto
docs for more about hashing.
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.
Returns a hash asynchronously.
Returns a hash.
Type: Uint8Array | string | Array<Uint8Array | string> | NodeJS.ReadableStream
(NodeJS.ReadableStream
is not available in hashSync
)
The value to hash.
While strings are supported you should prefer buffers as they’re faster to hash. Although if you already have a string you should not convert it to a buffer.
Pass an array instead of concatenating strings and/or buffers. The output is the same, but arrays do not incur the overhead of concatenation.
Type: object
Type: string
Default: 'hex'
Values: 'hex' | 'base64' | 'buffer' | 'latin1'
The encoding of the returned hash.
Type: string
Default: 'sha512'
Values: 'md5' | 'sha1' | 'sha256' | 'sha512'
(Platform dependent)
The md5
algorithm is good for file revving, but you should never use md5
or sha1
for anything sensitive. They’re insecure.
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.
Returns a Promise
for the calculated file hash.
import {hashFile} from 'hasha';
// Get the MD5 hash of an image
await hashFile('unicorn.png', {algorithm: 'md5'});
//=> '1abcb33beeb811dca15f0ac3e47b88d9'
Returns the calculated file hash.
import {hashFileSync} from 'hasha';
// Get the MD5 hash of an image
hashFileSync('unicorn.png', {algorithm: 'md5'});
//=> '1abcb33beeb811dca15f0ac3e47b88d9'
Returns a hash transform stream.
import {hashingStream} from 'hasha';
// Hash the process input and output the hash sum
process.stdin.pipe(hashingStream()).pipe(process.stdout);