Under the Hood: The Architecture of SHA-256 Checksum Generator
Remote checksum sites take the file “to hash it,” which is indistinguishable from collecting the file. This page uses Web Crypto subtle.digest SHA-256 on an ArrayBuffer from the File API or a TextEncoder of pasted text. The digest is hex-encoded in-process. No upload of binaries or secrets.
Memory Allocation & Browser Threading Mechanics
File hashing reads the whole ArrayBuffer. Very large files will allocate that buffer on the main thread; there is no streaming digest in this UI. Crypto work is async and does not block paint for typical sizes. Hex conversion walks the 32-byte digest only.
Algorithmic Deep-Dive: Code Snippet & Logical Analysis
const digest = await crypto.subtle.digest("SHA-256", data);
const hex = [...new Uint8Array(digest)]
.map((b) => b.toString(16).padStart(2, "0"))
.join("");Text mode hashes UTF-8 bytes, not UTF-16 code units, matching sha256sum on a UTF-8 file. Empty input still produces the empty-message digest. The hex alphabet is lowercase.
The Local Storage Sandbox & Volatile Data Pipelines
The digest string is React state. The ArrayBuffer is eligible for GC after digest. No localStorage of checksums that would retain filenames next to hashes.
Verifying True Privacy: How to Audit Your Browser's Network Tab
F12, Network, clear, drop a file, hash. The file size must not appear as a request body. Web Crypto is not HTTP.