EncryptMaster — Generate Passphrase
A passphrase generator that tells you its entropy, so you stop using 'password123'
- passphrase
- entropy_bits
- recipe
Every cipher node in EncryptMaster is only as strong as the passphrase you feed it. AES-256-GCM and scrypt are doing real work, but scrypt's whole job is making brute force expensive - it can't save you if your "secret" is a word from the dictionary. That's why this pack ships a passphrase generator. It makes a strong passphrase for you and, unusually, tells you exactly how strong it is in bits of entropy.
If that sounds like overkill for hiding a message in a PNG - sure, sometimes. But the author's whole framing is "generate a passphrase here and paste it into the cipher nodes," and honestly that's the right habit. One generated passphrase, used consistently, and you never have to worry that the weakest link is you.
Two modes
random_chars(default) - a classic random string from a configurable character set. Toggleuse_lowercase,use_uppercase,use_digits,use_symbols, andexclude_ambiguous(default on - it strips lookalikes likeIl1O0oB8S5Z2so the result is usable by humans).lengthdefaults to 20, which is decent; the README suggests aiming at 24+ characters.diceware- memorable but strong, the EFF-style "correct horse battery staple" approach. You must give it adiceware_wordlist_pathpointing at a wordlist file (one word per line - the EFF large list works great). Setnum_words(default 8) and aseparator. If the path is empty or the list has fewer than 1000 words, you get an error string telling you so, which is the node being responsibly strict.
Both modes support an extra_digits_suffix (0–10) to bolt some digits on the end.
The outputs are the interesting part
passphrase(STRING) - what you feed the cipher nodes.entropy_bits(FLOAT) - the computed strength:length × log2(alphabet)for random chars,words × log2(vocab)for diceware. 80+ bits is a comfortable target; 8 diceware words from a 7776-word list lands around 103.recipe(STRING) - a human-readable audit trail of exactly what was generated (mode, length, alphabet size, RNG used). Wire it to a text box if you want to remember how a passphrase was made.
One flag to know about: deterministic_seed defaults to -1, meaning the node uses Python's cryptographically secure secrets module. Set it to 0 or higher and it switches to a seeded random.Random for reproducible dev/testing - and the recipe output warns you about it. Don't use a seeded passphrase for anything real.
Installing it
This is part of the ComfyUI EncryptMaster pack, so install the pack once and you get Generate Passphrase plus the eight cipher/stego nodes. Try ComfyUI Manager (search "ComfyUI EncryptMaster"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Comfyui_EncryptMaster
Then install the real dependencies (the repo has no requirements.txt, so this is the list that installs):
pip install cryptography pillow numpy
Restart ComfyUI. No models, no GPU.
The catch
It's a thin utility node - there's no real failure mode beyond forgetting the wordlist path in diceware mode. But there's one workflow-level trap worth naming: this node generates a fresh passphrase every time the graph runs. If you let it auto-generate and then try to decrypt with the same node later, you'll get a different passphrase and wonder why nothing opens. Generate once, copy the output into the cipher nodes' masked passphrase fields as a literal, and leave it at that.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | random_chars | 2 options: random_chars, diceware |
| lengthopt | INT | 204–256 | — |
| use_lowercaseopt | BOOLEAN | true | — |
| use_uppercaseopt | BOOLEAN | true | — |
| use_digitsopt | BOOLEAN | true | — |
| use_symbolsopt | BOOLEAN | true | — |
| exclude_ambiguousopt | BOOLEAN | true | — |
| diceware_wordlist_pathopt | STRING | — | |
| num_wordsopt | INT | 82–32 | — |
| separatoropt | STRING | - | — |
| extra_digits_suffixopt | INT | 00–10 | — |
| deterministic_seedopt | INT | -1-1–2147483647 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| passphrase | STRING | — |
| entropy_bits | FLOAT | — |
| recipe | STRING | — |