Convierte un usuario y una contraseña en una línea usuario:hash para un archivo .htpasswd de Apache. Todos los formatos —texto plano, crypt, apr1, SHA-1 y bcrypt— se calculan en tu navegador y se verifican con openssl passwd, htpasswd de Apache y crypt de glibc, así que la contraseña no sale de la pestaña.
Se ejecuta localmente en tu navegadorEscribe un usuario y una contraseña, elige el formato y pulsa Generar entrada htpasswd. La página devuelve una línea usuario:hash lista para añadir a un archivo .htpasswd y, antes de copiarla, enumera las advertencias del formato elegido.
Todo se calcula en tu navegador. La entrada apr1 coincide con openssl passwd -apr1 y htpasswd -m, la de bcrypt con las líneas $2y$ que Apache escribe con htpasswd -B, y la de SHA-1 con el formato {SHA} de htpasswd -s. La contraseña no se sube y no sale ninguna petición mientras escribes.
plain guarda la contraseña tal cual y httpd solo la acepta en Windows y Netware. crypt es la rutina Unix antigua: 13 caracteres, una sal de 2 caracteres y solo los 8 primeros caracteres de la contraseña; el resto se descarta en silencio, por eso una frase larga pierde fuerza aquí.
MD5 (apr1) escribe $apr1$sal$hash: un esquema propio de Apache que aplica 1000 rondas MD5 a la contraseña y a una sal de 8 caracteres, y es lo que produce htpasswd -m. SHA-1 escribe {SHA} seguido del base64 de un resumen SHA-1; a diferencia de los demás no lleva sal, así que una contraseña da siempre la misma línea. bcrypt escribe $2y$coste$sal$hash, con 16 bytes aleatorios de sal y 2^coste repeticiones del calendario de claves.
Un archivo .htpasswd contiene una línea usuario:hash por cuenta y Apache lo lee mediante AuthUserFile. Un directorio protegido mínimo usa AuthType Basic, AuthName "Restricted", AuthUserFile /etc/apache2/.htpasswd y Require valid-user. Deja el archivo fuera de la raíz del sitio y que solo lo pueda leer el usuario del servidor web.
Desde la terminal, las mismas líneas salen de htpasswd: -B añade bcrypt (-C fija el coste), -m el formato apr1, -s SHA-1 y -d crypt. Un archivo puede mezclar formatos, así que una fila crypt antigua y otra bcrypt nueva conviven; verifica cualquier línea con htpasswd -vb archivo usuario.
La autenticación básica HTTP envía la contraseña codificada en base64 en cada petición, así que la conexión debe ser HTTPS: el hash protege el archivo, no el cable. crypt, SHA-1 y apr1 se calculan muy rápido, que es justo lo que busca quien roba el archivo; usa bcrypt en las entradas nuevas y sustituye las antiguas cuando toques esas cuentas.
El generador no guarda ni transmite la contraseña: el cálculo ocurre en la página y la sal procede del generador aleatorio del navegador. El coste 10 tarda aquí unas dos décimas de segundo y el 12 alrededor de un segundo, por eso el campo se detiene en 14 aunque htpasswd acepte hasta 17.