#hashing #hash #checksum #file-checksum #directory-checksum #stdin-checksum

chksum

An implementation of hash functions with a straightforward interface for computing digests of bytes, files, directories, and more

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

Download history 650/week @ 2024-09-23 467/week @ 2024-09-30 521/week @ 2024-10-07 445/week @ 2024-10-14 343/week @ 2024-10-21 663/week @ 2024-10-28 591/week @ 2024-11-04 748/week @ 2024-11-11 773/week @ 2024-11-18 834/week @ 2024-11-25 396/week @ 2024-12-02 461/week @ 2024-12-09 650/week @ 2024-12-16 147/week @ 2024-12-23 380/week @ 2024-12-30 586/week @ 2025-01-06

1,795 downloads per month
Used in 6 crates

MIT license

19KB
74 lines

chksum

GitHub Build docs.rs MSRV deps.rs unsafe forbidden LICENSE

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

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 the reader module with the Reader struct within each variant module.
  • writer enables the writer module with the Writer 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