Herramientas de Desarrollo

Generador de .htpasswd

Genera archivos .htpasswd para autenticación básica de Apache y Nginx de forma segura en el navegador. Compatible con bcrypt, APR1-MD5 y SHA-1. Las contraseñas nunca se envían al servidor.

Consejos

  • Usa bcrypt: El algoritmo más seguro disponible. Funciona con Apache 2.4+ y Nginx. Valores de coste más altos ralentizan el hash y aumentan la resistencia a ataques de fuerza bruta (10 es el valor habitual).
  • APR1-MD5 ($apr1$) es para compatibilidad con Apache 2.2 o anterior, y funciona con prácticamente todas las versiones de Apache y Nginx.
  • SHA-1 ({SHA}) tiene baja resistencia a colisiones y no se recomienda. Úsalo únicamente en entornos heredados que lo requieran.
  • Coloca el archivo .htpasswd fuera del DocumentRoot para que no sea accesible directamente desde la web.
  • Usa siempre HTTPS. Las credenciales de autenticación básica solo están codificadas en Base64, no cifradas, y viajan en texto plano sobre HTTP.

Preguntas frecuentes

Añade lo siguiente a tu .htaccess o httpd.conf, apuntando AuthUserFile al archivo .htpasswd generado:
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Añade las directivas a tu nginx.conf o al bloque server correspondiente:
location /admin {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
Nginx es compatible con bcrypt y APR1-MD5.

Se recomienda bcrypt para cualquier instalación con Apache 2.4+ o Nginx. Usa APR1-MD5 solo si necesitas compatibilidad con Apache 2.2 o anterior. Evita SHA-1 salvo que un sistema heredado lo exija.

Simplemente añade la línea generada (usuario:hash) al final del archivo existente. Cada línea representa un usuario. Las líneas vacías y las que comienzan con # se ignoran.

Sí. Todo el proceso de hash ocurre en tu navegador mediante JavaScript. Ningún dato de contraseña se transmite al servidor. Usa siempre esta herramienta en una página HTTPS segura y guarda el archivo generado con cuidado.
ツールくん

A propósito — Por qué Basic Auth sigue vigente pese a su antigüedad

La autenticación básica HTTP fue definida en 1999 por la RFC 2617 (actualizada posteriormente a la RFC 7617). El mecanismo es sencillo: concatenar usuario y contraseña con :, codificar en Base64 y enviar en el encabezado Authorization.

Su simplicidad explica por qué sigue siendo muy utilizada: es ideal para entornos de staging, herramientas internas o como primera línea de defensa combinada con listas blancas de IP. Dos o tres líneas de configuración son suficientes, sin necesidad de middleware adicional ni base de datos.

Sus limitaciones también son reales: no hay mecanismo de cierre de sesión (la sesión persiste hasta cerrar el navegador), ni gestión de caducidad de contraseñas ni autenticación multifactor de serie. Para servicios de producción con requisitos de seguridad reales, considera OAuth 2.0 u OIDC.