Passgen est un generateur de mots de passe en ligne de commande, securise et ultra-configurable. Il compile en un binaire standalone pour Windows, Linux et macOS — aucune dependance, aucun runtime a installer.
Construit avec Deno et TypeScript, il utilise le CSPRNG de l'OS (node:crypto) avec rejection sampling pour eliminer tout biais statistique.
- Mode safe par defaut — exclut automatiquement les caracteres ambigus (
0O,1lI) et ceux qui cassent les environnements ($,#,',`,{}, etc.) - Format en blocs — lisibilite maximale, facile a copier/dicter
- Mode raw — acces a tout le charset pour les cas ou on s'en fiche
- Zero dependance — un seul binaire, tourne partout
- Crypto-secure — CSPRNG + rejection sampling anti-biais modulo
$ passgen
Xt7wkR9mFpN-z4v8eQjYdAH-w2xKcM6gBsT-5nRfWq3jPab- 44 caracteres, blocs de 11 separes par
- - Exclut les caracteres ambigus et ceux qui cassent les shells/env/SQL/URLs
$ passgen --raw
W,CasQcrn@C3Y2vQ&1.Ay+/#mEwyk]~a- 32 caracteres, tout le charset, pas de blocs
Telechargez le binaire pour votre plateforme depuis la page Releases :
| Plateforme | Binaire |
|---|---|
| Windows x64 | passgen-windows-x64.exe |
| Linux x64 | passgen-linux-x64 |
| Linux ARM64 | passgen-linux-arm64 |
| macOS x64 | passgen-macos-x64 |
| macOS ARM64 (M1) | passgen-macos-arm64 |
# Linux / macOS
chmod +x passgen-linux-x64
sudo mv passgen-linux-x64 /usr/local/bin/passgen
# Windows — deplacer dans un dossier du PATH# Avec Deno installe
deno run passgen.ts
# Compiler en binaire
deno compile --output passgen passgen.ts# Defaut : safe mode, 44 chars, blocs de 11
passgen
# 5 mots de passe
passgen -c 5
# Longueur custom
passgen -l 64
# Raw mode (tout le charset, pas de blocs)
passgen --raw
# Raw 64 chars
passgen --raw -l 64
# Sans symboles
passgen -S
# PIN 6 chiffres
passgen -l 6 -U -L -S
# Exclure des caracteres specifiques
passgen --exclude "aeiou"
# Symboles custom
passgen --symbol-set "!@#$"
# Blocs custom (8 chars, separes par ".")
passgen --block-size 8 --block-sep "."Modes:
(defaut) Safe mode — 44 chars, blocs de 11 separes par "-",
exclut les caracteres ambigus et dangereux
--raw Raw mode — 32 chars, tous les caracteres, pas de blocs
Options:
-l, --length <n> Longueur du mot de passe (defaut: 44 safe / 32 raw)
-c, --count <n> Nombre de mots de passe (defaut: 1)
-U, --no-upper Desactiver les majuscules
-L, --no-lower Desactiver les minuscules
-D, --no-digits Desactiver les chiffres
-S, --no-symbols Desactiver les symboles
--symbol-set <s> Jeu de symboles custom
-x, --exclude-ambiguous Exclure les caracteres ambigus (0O, 1lI, |, `)
--exclude <s> Exclure des caracteres specifiques
--no-require-each Ne pas exiger un caractere de chaque categorie
--separator <s> Separateur entre les mots de passe (defaut: newline)
--block-size <n> Decouper en blocs de n caracteres
--block-sep <s> Separateur entre les blocs (defaut: "-")
-h, --help Afficher l'aide
| Propriete | Detail |
|---|---|
| Source d'aleatoire | CSPRNG de l'OS via node:crypto.randomBytes() |
| Biais modulo | Elimine par rejection sampling |
| Charset safe | Exclut `$#!'"{}()[] |
| Garantie de complexite | Au moins 1 caractere de chaque categorie activee (par defaut) |
Passgen is a secure, ultra-configurable command-line password generator. It compiles to a standalone binary for Windows, Linux and macOS — no dependencies, no runtime needed.
Built with Deno and TypeScript, it uses the OS CSPRNG (node:crypto) with rejection sampling to eliminate any statistical bias.
- Safe mode by default — automatically excludes ambiguous characters (
0O,1lI) and those that break environments ($,#,',`,{}, etc.) - Block format — maximum readability, easy to copy/dictate
- Raw mode — full charset access when you don't care
- Zero dependency — single binary, runs everywhere
- Crypto-secure — CSPRNG + rejection sampling against modulo bias
$ passgen
Xt7wkR9mFpN-z4v8eQjYdAH-w2xKcM6gBsT-5nRfWq3jPab- 44 characters, 4 blocks of 11 separated by
- - Excludes ambiguous chars and those that break shells/env/SQL/URLs
$ passgen --raw
W,CasQcrn@C3Y2vQ&1.Ay+/#mEwyk]~a- 32 characters, full charset, no blocks
Download the binary for your platform from the Releases page:
| Platform | Binary |
|---|---|
| Windows x64 | passgen-windows-x64.exe |
| Linux x64 | passgen-linux-x64 |
| Linux ARM64 | passgen-linux-arm64 |
| macOS x64 | passgen-macos-x64 |
| macOS ARM64 (M1) | passgen-macos-arm64 |
# Linux / macOS
chmod +x passgen-linux-x64
sudo mv passgen-linux-x64 /usr/local/bin/passgen
# Windows — move to a directory in your PATH# With Deno installed
deno run passgen.ts
# Compile to binary
deno compile --output passgen passgen.ts# Default: safe mode, 44 chars, 4 blocks of 11
passgen
# 5 passwords
passgen -c 5
# Custom length
passgen -l 64
# Raw mode (full charset, no blocks)
passgen --raw
# Raw 64 chars
passgen --raw -l 64
# No symbols
passgen -S
# 6-digit PIN
passgen -l 6 -U -L -S
# Exclude specific characters
passgen --exclude "aeiou"
# Custom symbols
passgen --symbol-set "!@#$"
# Custom blocks (8 chars, separated by ".")
passgen --block-size 8 --block-sep "."Modes:
(default) Safe mode — 44 chars, 4 blocks of 11 separated by "-",
excludes ambiguous & env-breaking characters
--raw Raw mode — 32 chars, all characters, no blocks
Options:
-l, --length <n> Password length (default: 44 safe / 32 raw)
-c, --count <n> Number of passwords (default: 1)
-U, --no-upper Disable uppercase letters
-L, --no-lower Disable lowercase letters
-D, --no-digits Disable digits
-S, --no-symbols Disable symbols
--symbol-set <s> Custom symbol characters
-x, --exclude-ambiguous Exclude ambiguous chars (0O, 1lI, |, `)
--exclude <s> Exclude specific characters
--no-require-each Don't require one char from each category
--separator <s> Separator between passwords (default: newline)
--block-size <n> Split password into blocks of n characters
--block-sep <s> Separator between blocks (default: "-")
-h, --help Show this help
| Property | Detail |
|---|---|
| Randomness source | OS CSPRNG via node:crypto.randomBytes() |
| Modulo bias | Eliminated via rejection sampling |
| Safe charset | Excludes `$#!'"{}()[] |
| Complexity guarantee | At least 1 character from each enabled category (by default) |
