Expand description
High-level interface for easy calculation of checksum digest for files, directories, stdin and more.
Setup
Update your Cargo.toml by adding entry to dependencies section.
[dependencies]
# ...
chksum = "0.2.2"
Alternatively use cargo add subcommand.
cargo add chksum
Usage
File
Use File or &File as an input.
use chksum::chksum;
use chksum::hash::MD5;
let file = File::open(path)?;
let digest = chksum::<MD5, _>(file)?;
assert_eq!(
digest.to_hex_lowercase(),
"b35e02f32d924c3da7ca8613ea91deb0"
);Directory
Use ReadDir as an input.
use chksum::chksum;
use chksum::hash::MD5;
let dir = read_dir(path)?;
let digest = chksum::<MD5, _>(dir)?;
assert_eq!(
digest.to_hex_lowercase(),
"30672e8a0cb95ef3b0a29601f2874ba5"
);Paths
Use &Path, PathBuf or &PathBuf as an input.
use chksum::chksum;
use chksum::hash::MD5;
let digest = chksum::<MD5, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"0bccc59d6997a74e1813d058aa1ad80d"
);Stdin
Use StdinLock as an input.
use chksum::chksum;
use chksum::hash::MD5;
let handle = stdin().lock();
let digest = chksum::<MD5, _>(handle)?;
assert_eq!(
digest.to_hex_lowercase(),
"e91509789cba933399182e6a8864bdd8"
);Algorithms
MD5
Use MD5 struct to calculate MD5 digest.
use chksum::chksum;
use chksum::hash::MD5;
let digest = chksum::<MD5, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"3081d73d94e101bfa7bf39a3ef7351e9"
);SHA-1
Use SHA1 struct to calculate SHA-1 digest.
use chksum::chksum;
use chksum::hash::SHA1;
let digest = chksum::<SHA1, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"d2b8d92228efb73147151566f059d1cace37046e"
);SHA-2
SHA-2 224
Use SHA2_224 struct to calculate SHA-2 224 digest.
use chksum::chksum;
use chksum::hash::SHA2_224;
let digest = chksum::<SHA2_224, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"cfa726b42c9ef788e99eb81e4dce181763feac230485dde49dba717a"
);SHA-2 256
Use SHA2_256 struct to calculate SHA-2 256 digest.
use chksum::chksum;
use chksum::hash::SHA2_256;
let digest = chksum::<SHA2_256, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"10a0933e11c86746636370a913ba9be34bc2ac2871585cb0e573c354e7116772"
);SHA-2 384
Use SHA2_384 struct to calculate SHA-2 384 digest.
use chksum::chksum;
use chksum::hash::SHA2_384;
let digest = chksum::<SHA2_384, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"7d44140596271726d0e57b3f97615d615d771d48b9b62a0b9da053e68e11992fa9166795671999d036a1e2c17a60414e"
);SHA-2 512
Use SHA2_512 struct to calculate SHA-2 512 digest.
use chksum::chksum;
use chksum::hash::SHA2_512;
let digest = chksum::<SHA2_512, _>(path)?;
assert_eq!(
digest.to_hex_lowercase(),
"6bf5a2ab9e922a5723a937acd2b8afa685d20c1f9f16d435fce8c7fd41c3425bbed990bb0a16124f2b62147cd4342496769b789e7186a0e2d85dafc1e5dc626b"
);Feature flags
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.
Compilation
unstable: Enables unstable options (like build script).
By default none of them are enabled.
License
MIT
Re-exports
pub use chksum_hash as hash;
Enums
- A common error type for the current crate.
Traits
- A trait for objects which are able to calculate checksum of given input.
Functions
- Calculates checksum of given input.