Sha256 Hashes in Rust
Here’s the translation of the SHA256 hashes example from Go to 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!