consts.rs |
|
5641 |
core_api.rs |
|
4353 |
lib.rs |
An implementation of the [SHA-2][1] cryptographic hash algorithms.
There are 6 standard algorithms specified in the SHA-2 standard: [`Sha224`],
[`Sha256`], [`Sha512_224`], [`Sha512_256`], [`Sha384`], and [`Sha512`].
Algorithmically, there are only 2 core algorithms: SHA-256 and SHA-512.
All other algorithms are just applications of these with different initial
hash values, and truncated to different digest bit lengths. The first two
algorithms in the list are based on SHA-256, while the last four are based
on SHA-512.
# Usage
```rust
use hex_literal::hex;
use sha2::{Sha256, Sha512, Digest};
// create a Sha256 object
let mut hasher = Sha256::new();
// write input message
hasher.update(b"hello world");
// read hash digest and consume hasher
let result = hasher.finalize();
assert_eq!(result[..], hex!("
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
")[..]);
// same for Sha512
let mut hasher = Sha512::new();
hasher.update(b"hello world");
let result = hasher.finalize();
assert_eq!(result[..], hex!("
309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f
989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
")[..]);
```
Also see [RustCrypto/hashes][2] readme.
[1]: https://en.wikipedia.org/wiki/SHA-2
[2]: https://github.com/RustCrypto/hashes |
3253 |
sha256 |
|
|
sha256.rs |
|
1343 |
sha512 |
|
|
sha512.rs |
|
1433 |