What is @stablelib/sha256?
@stablelib/sha256 is a JavaScript library that provides a secure and efficient implementation of the SHA-256 cryptographic hash function. It is part of the StableLib collection of cryptographic libraries, which are designed to be fast, secure, and easy to use.
What are @stablelib/sha256's main functionalities?
Hashing a string
This feature allows you to hash a string using the SHA-256 algorithm. The code sample demonstrates how to create a new hash instance, update it with a string, and then obtain the digest in hexadecimal format.
const { Hash } = require('@stablelib/sha256');
const hash = new Hash();
hash.update(Buffer.from('Hello, world!'));
const digest = hash.digest();
console.log(Buffer.from(digest).toString('hex'));
Hashing a file
This feature allows you to hash the contents of a file using the SHA-256 algorithm. The code sample demonstrates how to create a read stream for a file, update the hash with each chunk of data, and then obtain the digest in hexadecimal format once the stream ends.
const { Hash } = require('@stablelib/sha256');
const fs = require('fs');
const hash = new Hash();
const stream = fs.createReadStream('path/to/file');
stream.on('data', (chunk) => hash.update(chunk));
stream.on('end', () => {
const digest = hash.digest();
console.log(Buffer.from(digest).toString('hex'));
});
Hashing with incremental updates
This feature allows you to hash data incrementally using the SHA-256 algorithm. The code sample demonstrates how to create a new hash instance, update it with multiple chunks of data, and then obtain the digest in hexadecimal format.
const { Hash } = require('@stablelib/sha256');
const hash = new Hash();
hash.update(Buffer.from('Hello, '));
hash.update(Buffer.from('world!'));
const digest = hash.digest();
console.log(Buffer.from(digest).toString('hex'));
Other packages similar to @stablelib/sha256
crypto
The 'crypto' module is a built-in Node.js module that provides cryptographic functionality, including the SHA-256 hash function. It is widely used and well-maintained, but it is not as lightweight or specialized as @stablelib/sha256.
js-sha256
The 'js-sha256' package is a JavaScript implementation of the SHA-256 hash function. It is lightweight and easy to use, similar to @stablelib/sha256, but it may not be as optimized for performance and security.
sha.js
The 'sha.js' package is a JavaScript implementation of the SHA family of hash functions, including SHA-256. It is well-maintained and widely used, but it is not as specialized as @stablelib/sha256.