@exact-realty/sha2
v1.0.1
Published
SHA-2 implementation with exportable state
Downloads
3
Readme
🔒 SHA-2 implementation in C
🚀 Features
- C implementation
- JavaScript compiled from C
- No dependencies
- No
async
required - Supports SHA-256 (and SHA-512, but that's currently not part of the NPM package)
- Can export the digest state
- Can easily work with streams
💻 Installation
The C library can be compiled from source using cmake
.
To install the JavaScript package, you can use npm
or yarn
:
npm install @exact-realty/sha2
or
yarn add @exact-realty/sha2
📚 Usage
Decrypting Data
import sha2 from '@exact-realty/sha2';
// Create a SHA-256 instance
const hasher = sha2();
// Update the hash with data
hasher.update(Buffer.from('Hello, world!'));
// Finalize the hash and get the result
const hashResult = hasher.finish();
// ArrayBuffer {
// [Uint8Contents]: <31 5f 5b db 76 d0 78 c4 3b 8a c0 06 4e 4a 01 64 61 2b 1f
// ce 77 c8 69 34 5b fc 94 c7 58 94 ed d3>,
// byteLength: 32
// }
// Export the current state
const exportedState = hasher.exportState();
// ArrayBuffer {
// [Uint8Contents]: <6a 09 e6 67 bb 67 ae 85 3c 6e f3 72 a5 4f f5 3a 51 0e 52
// 7f 9b 05 68 8c 1f 83 d9 ab 5b e0 cd 19 00 00 00 00 00 00 00 00 00 00 00 00
// 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
// 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
// 00 00 00 00 00 00 ... 4 more bytes>,
// byteLength: 104
// }
// Import a previously exported state
hasher.importState(exportedState);
// Scrub the hash state
hasher.scrub();
🤝 Contributing
We welcome any contributions and feedback! Please feel free to submit pull requests, bug reports or feature requests to our GitHub repository.
📜 License
This project is released under the Apache 2.0 license. Check out the LICENSE
file for more information.