Expand description
An implementation of the SHA-2 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 three on SHA-512.
§Usage
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 readme.
Re-exports§
pub use digest;
Structs§
- Core block-level SHA-256 hasher with variable output size.
- Core block-level SHA-512 hasher with variable output size.
Traits§
- Convenience wrapper trait covering functionality of cryptographic hash functions with fixed output size.
Type Aliases§
- SHA-224 hasher.
- SHA-256 hasher.
- SHA-384 hasher.
- SHA-512 hasher.
- SHA-512/224 hasher.
- SHA-512/256 hasher.