Transformez un nom d’utilisateur et un mot de passe en une ligne utilisateur:hash pour un fichier .htpasswd d’Apache. Tous les formats — clair, crypt, apr1, SHA-1 et bcrypt — sont calculés dans le navigateur et vérifiés avec openssl passwd, htpasswd d’Apache et crypt de la glibc ; le mot de passe ne quitte pas l’onglet.
Fonctionne localement dans votre navigateurSaisissez un nom d’utilisateur et un mot de passe, choisissez un format puis cliquez sur Générer l’entrée htpasswd. La page renvoie une ligne utilisateur:hash prête à être ajoutée à un fichier .htpasswd et signale, avant toute copie, les limites propres au format choisi.
Tout est calculé dans le navigateur. L’entrée apr1 correspond à openssl passwd -apr1 et à htpasswd -m, l’entrée bcrypt aux lignes $2y$ écrites par htpasswd -B, et l’entrée SHA-1 à la forme {SHA} de htpasswd -s. Le mot de passe n’est jamais envoyé et aucune requête ne quitte l’onglet pendant la saisie.
plain stocke le mot de passe tel quel, et httpd ne l’accepte que sous Windows et Netware. crypt est l’ancienne routine Unix : 13 caractères, un sel de 2 caractères et seulement les 8 premiers caractères du mot de passe — le reste est silencieusement ignoré, ce qui affaiblit une longue phrase de passe.
MD5 (apr1) écrit $apr1$sel$hash : un schéma propre à Apache qui applique 1000 tours de MD5 au mot de passe et à un sel de 8 caractères, et c’est ce que produit htpasswd -m. SHA-1 écrit {SHA} suivi du base64 d’un condensat SHA-1 ; contrairement aux autres, il n’a pas de sel, un mot de passe donne donc toujours la même ligne. bcrypt écrit $2y$coût$sel$hash, avec 16 octets de sel aléatoires et 2^coût répétitions du calendrier de clés.
Un fichier .htpasswd contient une ligne utilisateur:hash par compte et est lu par Apache via AuthUserFile. Un répertoire protégé minimal utilise AuthType Basic, AuthName "Restricted", AuthUserFile /etc/apache2/.htpasswd et Require valid-user. Gardez le fichier hors de la racine du site et lisible uniquement par l’utilisateur du serveur web.
En ligne de commande, htpasswd produit les mêmes lignes : -B pour bcrypt (-C fixe le coût), -m pour apr1, -s pour SHA-1 et -d pour crypt. Un fichier peut mélanger les formats, une ancienne ligne crypt et une nouvelle ligne bcrypt peuvent donc coexister ; vérifiez chaque ligne avec htpasswd -vb fichier utilisateur.
L’authentification basique HTTP envoie le mot de passe encodé en base64 à chaque requête : la connexion doit donc être en HTTPS. Le hachage protège le fichier, pas la liaison. crypt, SHA-1 et apr1 se calculent très vite — exactement ce que recherche un attaquant qui vole le fichier ; utilisez bcrypt pour les nouvelles entrées et remplacez les anciennes lignes au fur et à mesure.
Le générateur ne stocke ni ne transmet le mot de passe : le calcul se fait dans la page et le sel provient du générateur aléatoire du navigateur. Le coût 10 demande ici environ un cinquième de seconde et le coût 12 environ une seconde ; le champ s’arrête donc à 14 alors que htpasswd accepte jusqu’à 17.