1.0.1 • Published 8 months ago
@se-oss/sha256 v1.0.1
@se-oss/sha256
A lightweight JavaScript library that provides utilities for SHA-256 and HMAC-SHA-256 hashing. This library is designed to work seamlessly in any JavaScript runtime, offering efficient and straightforward functions for cryptographic hashing.
This library is noticeably slower than native modules such as
node:cryptoand WebCrypto. Use this library only when you cannot use WebCrypto because its operations are asynchronous andnode:cryptois not available.
📦 Installation
npm i @se-oss/sha256📖 Usage
import { hmacSha256, sha256, timeSafeCompare } from '@se-oss/sha256';
// Hashing a string
const hash = sha256('Hello, world!');
console.log(hash);
// Hashing a Uint8Array
const data = new Uint8Array([1, 2, 3, 4, 5]);
const hash2 = sha256(data);
console.log(hash2);
// HMAC with a string key and message
const key = 'my-secret-key';
const message = 'Hello, HMAC!';
const hmac = hmacSha256(key, message);
console.log(hmac);
// HMAC with a Uint8Array key and message
const keyArray = new Uint8Array([1, 2, 3, 4, 5]);
const hmac2 = hmacSha256(keyArray, 'Hello, HMAC!');
console.log(hmac2);
const result = timeSafeCompare('hello', 'hello');
console.log(result); // true
const result2 = timeSafeCompare('hello', 'world');
console.log(result2); // false📚 Documentation
For all configuration options, please see the API docs.
API
type BinaryLike = string | Uint8Array | Buffer;
function sha256(data: BinaryLike): Uint8Array;
function hmacSha256(key: BinaryLike, message: BinaryLike): Uint8Array;
function timeSafeCompare(a: string, b: string): boolean;🤝 Contributing
Want to contribute? Awesome! To show your support is to star the project, or to raise issues on GitHub.
Thanks again for your support, it is much appreciated! 🙏
🙌 Credits
License
MIT © Shahrad Elahi and contributors.