A fast implementation of sha-256 in rust.
malloc
).std
).In your project, run:
cargo add sha_256
Import the library
use sha_256::Sha256;
Create an instance of the sha256 struct.
let mut sha256: Sha256 = Sha256::new();
Create your message in bytes.
let bytes = &[0u8, 1u8, 2u8];
Run sha256 to create a digest/hash.
let hash: [u8; 32] = sha256.digest(bytes);
The general idea is "bytes in, bytes out". This is the most efficient input and output type to minimise conversions.
You will need to convert your input into bytes, e.g. string to bytes. See example project.
If you want the hash as a hex string you will need to convert it from bytes to hex afterwards. See example project.
How fast is this library? Up to 25% faster than the sha256
and sha
. They contain use of Intel's SHA-NI
cpu instructions (via a feature flag), whereas this library uses pure rust.
However, the above figures were obtained through some rough benchmarks on only my hardware. More thorough benchmarks are required, YMMV!
// TODO further benchmarks