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 |
#735 in Cryptography
21,636,057 downloads per month
Used in 12,849 crates
(1,362 directly)
38KB
806 lines
RustCrypto: SHA-1
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
~745KB
~19K SLoC