$ cd ../
SHA-256 Hasher — bash

user@devops:~$ cat README.md

SHA-256 Hasher

# Description

SHA-256 Hasher is a file integrity hasher and verifier in C++23 that implements the SHA-256 algorithm (FIPS 180-4) entirely from scratch: padding, the compression round and all 64 K constants. It reads files via streaming with a 1 MiB buffer, so files of any size are handled with constant memory usage. Includes verification against an expected hash (-c), sha256sum-style manifest verification (-C), an in-memory throughput benchmark (-b), a self-test against the FIPS 180-4 known-answer vectors (--selftest), stdin input and uppercase hex output. Standard exit codes (0=OK, 1=mismatch, 2=error) make it script/CI-friendly. Built with GCC 14 using only the C++23 standard library (std::print, std::span, std::from_chars, std::filesystem).

# Key features

$ SHA-256 (FIPS 180-4) algorithm implemented from scratch in pure C++23

$ Streaming hashing with a 1 MiB buffer - files of any size

$ Verification against an expected hash (-c) with exit codes 0/1/2

$ sha256sum-style manifest verification (-C)

$ In-memory throughput benchmark (-b N MiB)

$ Self-test against FIPS 180-4 known-answer vectors (--selftest)

$ stdin input (-) and uppercase hex output (-u)

$ Zero dependencies: direct g++ compilation, no CMake

# Gallery

Desktop view
SHA-256 Hasher - Desktop view
Mobile view
SHA-256 Hasher - Mobile view

# Technologies used

C++23