MD5 Hashing
MD5 hashing, for the puzzles where security doesn't matter
- key
- hash_bytes
The MD5 node computes a 128-bit MD5 digest of whatever bytes you feed it. Before you use it for anything security-adjacent, hear the part everyone has to hear once: MD5 has been cryptographically broken since 2004. Collision attacks are trivial, so do not use this node for password storage, signatures, or anything where an attacker gets to choose input. Fine. Now that that's out of the way - for ARG work, MD5 is genuinely handy. Puzzle designers love leaving "md5('somestring')" hints, checksums in game files are often MD5, and identifying a file by its digest doesn't care that the algorithm is old.
It's one of seven hash nodes in the pack (SHA1, SHA2, SHA3, BLAKE2, SM3, and SHAKE are its siblings), and they all share one design, so learn this one and the rest come free.
The input is key1, typed BYTESLIKE and marked mandatory. Note the type: it wants bytes, not a text string. The pack ships string-to-bytes converters for exactly this reason, so run your text through one first. Here's the neat part: the node's optional inputs are dynamic. You can add extra key2, key3, … inputs, and the node hashes them all in sequence - a way to combine several byte strings into a single digest in one shot, which is a nice trick when a puzzle says "hash the first name, last name, and the number together."
The single output, hash_bytes, is also BYTESLIKE - the raw 128-bit digest, not a printable hex string. That trips people up on the first try. Wire it into the pack's bytes-to-hex converter (or any hex-encoding node) if you want to actually read the d41d8cd98f00b204e9800998ecf8427e-style value that puzzle solutions usually ask for.
Installation is the standard pack story: ComfyUI Manager → search "ComfyUI ARG Toolkit" → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/AzelusLightvale/ComfyUI-ARG-Toolkit
Restart ComfyUI and MD5 lives under ARG Toolkit/Cryptography/Modern/Hashing. No model downloads; the pack's dependencies (cryptography, secretpy, reedsolo, steganography libs) get pulled in automatically by Manager.
Where people get burned: feeding it a string instead of bytes (you'll see a type error), and forgetting that the output is raw bytes rather than a hex string. Also, don't be surprised that the empty-input digest hashes to the well-known MD5 of empty input - that's just what MD5 does, and it's a good sanity check if you ever wonder whether the node is wired up right.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| key | BYTESLIKE | First key (mandatory) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| hash_bytes | BYTESLIKE | — |