Skip to content

SHA-512

Module: Std::Hash::Sha512

512-bit SHA-2 cryptographic hash.

Summary

struct Sha512

Sha512.Hash(message: char8[]) -> String

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