Sha256 Hashes in Rust
Our first program demonstrates how to compute SHA256 hashes in Rust. SHA256 hashes are frequently used to compute short identities for binary or text blobs. For example, TLS/SSL certificates use SHA256 to compute a certificate’s signature.
use sha2::{Sha256, Digest};
fn main() {
let s = "sha256 this string";
// Create a new SHA256 hasher
let mut hasher = Sha256::new();
// Update the hasher with the input data
hasher.update(s);
// Finalize the hash and get the result
let result = hasher.finalize();
println!("{}", s);
println!("{:x}", result);
}Rust implements several hash functions in the sha2 crate. To use it, you need to add it to your Cargo.toml file:
[dependencies]
sha2 = "0.10.6"In this example, we start by creating a new SHA256 hasher. Then, we update the hasher with our input string. Finally, we finalize the hash and get the result.
The update method expects a reference to a slice of bytes. If you have a string s, you can pass it directly as s.as_bytes().
The finalize method consumes the hasher and returns the final hash result.
Running the program computes the hash and prints it in a human-readable hex format.
$ cargo run
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...You can compute other hashes using a similar pattern to the one shown above. For example, to compute SHA512 hashes, you can use Sha512::new() from the same sha2 crate.
Note that if you need cryptographically secure hashes, you should carefully research hash strength!
Comments powered by Disqus