Cómo generar una entrada de htpasswd
- Pega el nombre de usuario en la primera caja (etiquetada “Texto original”).
- Pega la contraseña en la segunda caja (etiquetada “Texto modificado”).
- Elige un formato de hash: bcrypt (recomendado, el valor por defecto) o MD5-APR1 (heredado). Si elegiste bcrypt, también puedes ajustar el factor de coste.
- Haz clic en el botón. La caja de resultado contiene exactamente una línea:
usuario:hash, lista para copiar directamente en un archivo.htpasswd.
Sin instalación, sin cuenta, sin subida, ambos formatos de hash se calculan enteramente dentro de tu pestaña del navegador.
bcrypt frente a MD5-APR1
El comando htpasswd de Apache ha ofrecido varios formatos de hash a lo largo de los años. Esta herramienta soporta los dos que aún se usan de verdad:
- bcrypt (
htpasswd -B), la opción moderna recomendada. Bcrypt es un algoritmo de hashing de contraseñas deliberadamente lento y diseñado a propósito con un factor de coste ajustable, así que se mantiene resistente a la fuerza bruta incluso a medida que el hardware se vuelve más rápido. Este es el mismo algoritmo detrás del Generador y Verificador de Hash Bcrypt de este sitio, reutilizado aquí con los mismos límites de factor de coste. - MD5-APR1 (
htpasswd -m), la variante propia de crypt con sal MD5 de Apache, identificable por su forma$apr1$sal$hash. Esto no es lo mismo que un hash MD5 simple (como el Generador de Hash MD5 de este sitio), es un algoritmo específico con sal y 1000 rondas que Apache inventó para archivos htpasswd, mantenido aquí puramente por compatibilidad con instalaciones antiguas de Apache o herramientas que lo esperan específicamente.
Si no estás seguro de cuál necesitas, usa bcrypt.
Verificar que el algoritmo MD5-APR1 se implementó correctamente
No existe ningún paquete npm mantenido y correctamente licenciado que implemente la variante específica $apr1$ de Apache, así que la implementación de esta herramienta se escribió a mano a partir del algoritmo de referencia bien documentado (el mismo que implementan la propia librería APR de Apache, la función crypt() de PHP, y passlib de Python), y luego se verificó de forma independiente, no simplemente se confió en ella. El propio comando openssl passwd -apr1 de esta máquina calcula el algoritmo idéntico a través de una ruta de código completamente separada; ejecutarlo contra varias contraseñas y sales (incluyendo casos límite como una contraseña vacía, una contraseña de más de 16 bytes, y un emoji de varios bytes) y comparar la salida byte a byte contra el propio resultado de esta herramienta confirmó una coincidencia exacta cada vez. Esos valores de referencia reales exactos están fijados en las pruebas automatizadas de esta herramienta, así que un cambio futuro no puede romper silenciosamente el algoritmo.
Tus credenciales nunca salen de tu dispositivo
Muchas webs de “generador de htpasswd” y “generador de bcrypt” funcionan enviando la contraseña que escribes directamente a un servidor para calcular el hash, vale la pena pensárselo dos veces para algo tan sensible como una credencial de servidor real (o incluso de prueba). Esta herramienta nunca necesita un viaje de ida y vuelta al servidor: ambas rutas de hashing se ejecutan enteramente dentro de tu propia pestaña del navegador usando librerías JavaScript sin ningún componente de servidor. El nombre de usuario y la contraseña que escribas nunca se transmiten, registran ni almacenan en ningún sitio.
Usos habituales
- Añadir un nuevo usuario a un archivo
.htpasswdde autenticación básica de Apache o Nginx existente sin instalar la herramienta de línea de comandoshtpasswdde Apache localmente. - Proteger con contraseña un sitio de staging, herramienta interna, o panel de administración detrás de
auth_basic/auth_basic_user_filede Nginx o la directivaAuthUserFilede Apache. - Generar credenciales de prueba para un pipeline de CI o una imagen Docker que necesite un archivo
.htpasswdincorporado. - Rotar la contraseña de un único usuario en un archivo
.htpasswdexistente reemplazando solo esa línea. - Aprender la diferencia entre bcrypt y el formato heredado MD5-APR1 de Apache con hashes reales y funcionales.
- Configurar autenticación por clave SSH para el mismo servidor con el Generador de Claves SSH, otra credencial que deberías generar del lado del cliente, no en el backend de otra persona.
- Comprobar los propios permisos del archivo
.htpasswdcon la Calculadora de Permisos chmod, normalmente debería ser legible solo por el usuario del servidor web, no editable por cualquiera. - Solicitar el certificado TLS/SSL para el mismo sitio protegido con HTTPS con el Generador de CSR SSL.

