12 releases
0.4.0 | Jan 2, 2025 |
---|---|
0.3.0 | Dec 21, 2023 |
0.2.2 | Aug 21, 2023 |
0.1.0-rc5 | Sep 4, 2022 |
0.0.0 | May 23, 2020 |
#301 in Cryptography
1,795 downloads per month
Used in 6 crates
19KB
74 lines
chksum
An implementation of various hash functions with a straightforward interface for computing digests of bytes, files, directories, and more.
Setup
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 chksum
Usage
Use 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.
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
Features
Algorithms
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.
Extra Options
Cargo features are also utilized to enable extra options.
reader
enables thereader
module with theReader
struct within each variant module.writer
enables thewriter
module with theWriter
struct within each variant module.
By default, neither of these features is enabled.
License
This crate is licensed under the MIT License.
Dependencies
~0.2–7MB
~37K SLoC