34 releases

Uses new Rust 2024

0.11.0 Mar 27, 2026
0.11.0-rc.4 Jan 24, 2026
0.11.0-rc.3 Nov 5, 2025
0.11.0-rc.0 May 29, 2025
0.0.3 Nov 21, 2014

#32 in #digest

Download history 891143/week @ 2026-03-03 5537116/week @ 2026-03-10 5157885/week @ 2026-03-17 4973983/week @ 2026-03-24 5133622/week @ 2026-03-31 5546996/week @ 2026-04-07 5696956/week @ 2026-04-14 5901190/week @ 2026-04-21 6167548/week @ 2026-04-28 6766425/week @ 2026-05-05 7710327/week @ 2026-05-12 7449990/week @ 2026-05-19 7720415/week @ 2026-05-26 7051094/week @ 2026-06-02

31,091,163 downloads per month
Used in 15,078 crates (1,597 directly)

MIT/Apache

38KB
806 lines

RustCrypto: SHA-1

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Pure Rust implementation of the SHA-1 cryptographic hash algorithm.

Warning: Cryptographically Broken!

The SHA-1 hash function should be considered cryptographically broken and unsuitable for further use in any security critical capacity, as it is practically vulnerable to chosen-prefix collisions.

We provide this crate for legacy interoperability purposes only.

If possible use the sha1-checked crate, while slower it provides the ability to detect potential collisions, as well as generate alternative safe hashes.

Examples

One-shot API

use hex_literal::hex;
use sha1::{Sha1, Digest};

let result = Sha1::digest(b"hello world");
assert_eq!(result, hex!("2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"));

Incremental API

use hex_literal::hex;
use sha1::{Sha1, Digest};

let mut hasher = Sha1::new();
hasher.update(b"hello world");
let hash = hasher.finalize();

assert_eq!(hash, hex!("2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"));

See the digest crate docs for additional examples.

License

The crate is licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~540–730KB
~18K SLoC