SHA-512¶
Module: Std::Hash::Sha512
512-bit SHA-2 cryptographic hash.
Summary¶
Constants¶
| Constant | Value |
|---|---|
BlockSize |
128 |
DigestSize |
64 |
Description¶
SHA-512 is a 512-bit hash function from the SHA-2 family, published by NIST in 2001. It uses a Merkle–Damgård construction with a Davies–Meyer compression function, processing 1024-bit blocks through 80 rounds. The algorithm operates on 64-bit words with bitwise operations, modular addition, and eight working state variables.
SHA-512 remains cryptographically secure and is widely recommended for applications requiring a larger digest size.
The Hash method takes a char8[] and returns a hex-encoded digest string.
Example¶
import Std::Hash::Sha512;
func Main() {
let digest = Sha512::Hash(c8"abc");
PrintLine(digest);
// ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
}
Test Vectors¶
| Input | Expected Digest |
|---|---|
c8"" |
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
c8"abc" |
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f |
c8"message digest" |
107dbf389d9e9f71a3a95f6c055b9251bc5268c2be16d6c13492ea45b0199f3309e16455ab1e96118e8a905d5597b72038ddb372a89826046de66687bb420e7c |
c8"Hello, World!" |
374d794a95cdcfd8b35993185fef9ba368f160d8daf432d08ba9f1ed1e5abe6cc69291e0fa2fe0006a52570ef18c19def4e617c33ce52ef0a6e5fbe318cb0387 |