đ Passphrase.fr â GĂ©nĂ©rateur de mots de passe sĂ©curisĂ©s en français.
đ Code source sur GitHub
Une application web développée avec Symfony pour générer des mots de passe sécurisés et personnalisables. Cet outil permet aux utilisateurs de définir le nombre de mots, les séparateurs, les caractÚres spéciaux et la longueur du mot de passe. Il offre également une estimation de l'entropie pour évaluer la sécurité des mots de passe générés.
- Génération de mots de passe sécurisés : Génération aléatoire de mots de passe robustes selon des critÚres définis par l'utilisateur.
- Calcul de l'entropie : L'algorithme calcule l'entropie du mot de passe (mesure de la force), avec un retour visuel basé sur des classes Bootstrap pour indiquer la robustesse du mot de passe (faible, moyen, fort).
- API RESTful : Une API est disponible pour permettre Ă d'autres applications de rĂ©cupĂ©rer un ou plusieurs mots de passe via une requĂȘte HTTP. Les utilisateurs peuvent personnaliser la gĂ©nĂ©ration de mots de passe via les paramĂštres de l'API (nombre de mots de passe, longueur, caractĂšres spĂ©ciaux, etc.). Testez l'API avec ce lien.
- Cookie de sauvegarde des prĂ©fĂ©rences : Les prĂ©fĂ©rences utilisateur (comme le nombre de mots, les sĂ©parateurs, etc.) sont sauvegardĂ©es dans un cookie afin de retrouver les mĂȘmes paramĂštres lors de la prochaine utilisation de l'application.
Une extension Chrome est disponible pour accéder rapidement au générateur de mots de passe directement depuis votre navigateur.
# 1. Cloner le dépÎt
git clone https://github.com/AlexandreMonchain/Passphrase.git
cd Passphrase
# 2. Installer les dépendances
composer install
# 3. Créer le fichier .env
cp .env.example .env
# 4. Lancer le serveur
symfony server:start --no-tls
# 5. Ouvrir http://127.0.0.1:8000Prérequis: PHP 8.2+, Composer 2.0+
# Démarrer le conteneur (clone + install + run automatique)
APP_SECRET=votre_secret_ici docker compose up -d --build
# Ouvrir http://localhost:8000Prérequis: Docker 20.10+, Docker Compose v2
Variables d'environnement :
| Variable | Obligatoire | Défaut | Description |
|---|---|---|---|
APP_SECRET |
â | â | ClĂ© secrĂšte Symfony (sessions, CSRF). ChaĂźne alĂ©atoire longue. |
GIT_BRANCH |
main |
Branche GitHub Ă cloner au build | |
GIT_REPO |
repo officiel | URL du dépÎt (utile pour un fork) | |
CACHE_BUST |
1 |
Incrémenter pour forcer un nouveau clone du code au build (invalide le cache Docker de l'étape git clone) |
|
PORT |
8000 |
Port exposé sur la machine hÎte | |
TRUSTED_PROXIES |
(vide) | IP(s) du reverse proxy. Nécessaire pour que Symfony détecte HTTPS derriÚre Traefik/Nginx/Caddy et que les cookies Secure fonctionnent correctement. Ex: 127.0.0.1 ou REMOTE_ADDR |
Personnalisation (optionnel):
# Utiliser la branche dev
GIT_BRANCH=dev APP_SECRET=votre_secret_ici docker compose up -d --build
# Utiliser un fork perso
GIT_REPO=https://github.com/votreusername/Passphrase.git APP_SECRET=votre_secret_ici docker compose up -d --build
# Récupérer la derniÚre version du code (force un nouveau clone)
CACHE_BUST=2 APP_SECRET=votre_secret_ici docker compose up -d --build
# Changer le port d'écoute (défaut: 8000)
PORT=9000 APP_SECRET=votre_secret_ici docker compose up -d --build
# DerriĂšre un reverse proxy HTTPS (Traefik, Nginx, Caddy...)
TRUSTED_PROXIES=REMOTE_ADDR APP_SECRET=votre_secret_ici docker compose up -d --buildCommandes utiles:
# Voir les logs
docker compose logs -f web
# Accéder au container
docker compose exec web sh
# ArrĂȘter
docker compose down
# Rebuild complet (nouvelle version)
docker compose up -d --buildQu'est-ce qui se passe au démarrage:
- đš Build de l'image (tĂ©lĂ©charge PHP 8.4, Apache)
- đ„ Clone depuis GitHub (branche
mainpar dĂ©faut) - đŠ Installation des dĂ©pendances Composer
- đ§č Warmup du cache Symfony
- â DĂ©marrage d'Apache
Endpoint: GET /api/passwords
curl "https://passphrase.fr/api/passwords?count=3&nb_mots=2&longueur_minimale=15"Réponse :
{
"passwords": [
{ "password": "Economie-Etrier57:", "length": 18 },
{ "password": "Menton-Pancarte65!", "length": 18 },
{ "password": "Sieger-Distribuer52#", "length": 20 }
]
}| ParamÚtre | Type | Défaut | Description |
|---|---|---|---|
count |
int | 6 | Nombre de passphrases (1-20) |
nb_mots |
int | 2 | Mots par passphrase (2-7) |
longueur_minimale |
int | 12 | Longueur min (8-50) |
separateur |
string | random | Séparateur (-, _, *, random) |
majuscule_debut |
bool | true | Majuscule au début |
majuscule_aleatoire |
bool | false | Majuscules aléatoires |
longueur_nombre |
int | 2 | Longueur des chiffres (0-5) |
caractere_special |
string | random | Type spéciaux (random, none, !@#) |
caracteres_accentues |
bool | true | Inclure accents |
Limite : 100 requĂȘtes par minute par IP. HTTP 429 au-delĂ .
fetch("https://passphrase.fr/api/passwords?count=5&nb_mots=3")
.then(res => res.json())
.then(data => data.passwords.forEach(p => console.log(p.password)));Si vous rencontrez des problÚmes ou avez des suggestions d'amélioration, n'hésitez pas à créer une issue ou à soumettre une pull request via le dépÎt GitHub.
- Framework: Symfony 7.4 LTS
- Runtime: PHP 8.2+ (8.4 dans Docker)
- Frontend: Twig + Bootstrap 5 + Vanilla JS + Custom CSS Design System
- Storage: Fichier CSV (dictionnaire de mots français)
- Container: Docker + Apache
âââ src/
â âââ Controller/ # Routes et API
â âââ Service/ # Logique mĂ©tier
â âââ Form/ # Formulaires Symfony
âââ templates/ # Pages Twig
âââ public/assets/ # CSS/JS
âââ config/ # Configuration Symfony
âââ docker/ # Configuration Docker (Apache, entrypoint)
âââ Dockerfile # Image PHP 8.4 + Apache
âââ docker-compose.yml # Service Web
âââ tests/ # Tests PHPUnit
- â CSRF protection (Symfony stateless tokens)
- â XSS protection (Twig auto-escaping)
- â
Génération cryptographique (
random_int, CSPRNG) - â Rate limiting API (100 req/min par IP)
- â Validation stricte des entrĂ©es (formulaire + API)
APP_SECRET=votre_secret_ici docker compose up -d --build
# App dispo sur http://ip_docker:8000Le conteneur écoute en HTTP interne (port 80, publié sur 8000).
Pour la prod, faites au choix:
- Mettre l'app derriĂšre un reverse proxy (Nginx/Caddy/Traefik) qui gĂšre HTTPS en 443.
- Modifier la conf pour servir directement en 443 avec un certificat TLS.
Ne JAMAIS exposer une application en HTTP en production.
Passphrase v1.3.2 | © 2024-2026 Alexandre MONCHAIN | GitHub | Chrome Extension