An implementation of various hash functions with a straightforward interface for computing digests of bytes, files, directories, and more.
To use this crate, add the following entry to your Cargo.toml file in the dependencies section:
[dependencies]
chksum = "0.4.0"Alternatively, you can use the cargo add subcommand:
cargo add chksumUse the chksum function with the desired algorithm to calculate digest of file, directory and so on.
use chksum::{chksum, SHA2_256};
let file = File::open(path)?;
let digest = chksum::<SHA2_256>(file)?;
assert_eq!(
digest.to_hex_lowercase(),
"44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);Alternatively, use the chksum function directly from the chosen hash module.
use chksum::sha2_256;
let file = File::open(path)?;
let digest = sha2_256::chksum(file)?;
assert_eq!(
digest.to_hex_lowercase(),
"44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);For more usage examples, refer to the documentation available at docs.rs.
Use async-runtime-tokio feature to enable Tokio asynchronous runtime.
cargo add chksum --features async-runtime-tokioUse the async_chksum function with the desired algorithm to calculate digest of file, directory and so on.
use chksum::{async_chksum, SHA2_256};
use tokio::fs::File;
let file = File::open(path)?.await;
let digest = chksum::<SHA2_256>(file)?.await;
assert_eq!(
digest.to_hex_lowercase(),
"44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);Alternatively, use the async_chksum function directly from the chosen hash module.
use chksum::sha2_256;
let file = File::open(path)?;
let digest = sha2_256::async_chksum(file)?;
assert_eq!(
digest.to_hex_lowercase(),
"44752f37272e944fd2c913a35342eaccdd1aaf189bae50676b301ab213fc5061"
);For more usage examples, refer to the documentation available at docs.rs.
This crate provides implementations for the following hash algorithms:
- MD5 - RFC 1321: The MD5 Message-Digest Algorithm
- SHA-1 - RFC 3174: US Secure Hash Algorithm 1 (SHA1)
- SHA-2 family (SHA-224, SHA-256, SHA-386, SHA-512) - FIPS PUB 180-4: Secure Hash Standard
Cargo features are utilized to enable or disable specific hash algorithms.
md5: Enables MD5 hash algorithm.sha1: Enables SHA-1 hash algorithm.sha2: Enables SHA-2 hash family algorithms.sha2-224: Enables only SHA-2 224 hash algorithm.sha2-256: Enables only SHA-2 256 hash algorithm.sha2-384: Enables only SHA-2 384 hash algorithm.sha2-512: Enables only SHA-2 512 hash algorithm.
By default, all of them are enabled.
Cargo features are also utilized to enable extra options.
readerenables thereadermodule with theReaderstruct within each variant module.writerenables thewritermodule with theWriterstruct within each variant module.
By default, neither of these features is enabled.
async-runtime-tokio: Enables async interface for Tokio runtime.
By default, neither of these features is enabled.
This crate is licensed under the MIT License.