Categoría: Desarrollo

Generador de htpasswd

Idea propia¿Falta una herramienta?

Crea entradas de archivo de contraseñas para Basic Auth en local

Genera una línea htpasswd de Apache en tu navegador. Crea credenciales Basic Auth con bcrypt y copia o descarga una entrada .htpasswd sin enviar nunca la contraseña a un servidor.

Cada paso duplica el trabajo que tiene que hacer un atacante, y también el tiempo que tarda esta página en generar la línea. De 10 a 12 va bien en la mayoría de servidores.

Línea htpasswd
Aquí aparecerá el resultado.

bcrypt lee como máximo 72 bytes de una contraseña; lo que venga después se ignora, tanto en esta página como en tu servidor.

Guarda el archivo fuera de la raíz web y apunta AuthUserFile hacia él. Un .htpasswd dentro de un directorio servido se puede descargar.

La contraseña se convierte en hash en esta pestaña. Nunca se envía a ningún sitio, nunca se guarda, y la línea resultante tampoco.

Todo lo de esta página se procesa en tu navegador. No se sube nada.

Para qué sirve

Un archivo .htpasswd es una simple lista de registros `usuario:hash` con la que la autenticación Basic de Apache comprueba un inicio de sesión, y nginx lee el mismo formato en auth_basic_user_file. Esta página construye esos registros en tu dispositivo: la implementación de bcrypt se ejecuta en la pestaña, así que la contraseña nunca viaja. bcrypt es la opción por defecto porque es deliberadamente lento y lleva sal individual, que es lo que encarece el descifrado de un archivo robado; el deslizador de coste es cuánto más lento lo haces. SHA-1 se ofrece solo para un servidor demasiado antiguo para aceptar bcrypt: va sin sal y es rápido, y la página lo dice justo donde se elige.

Cómo se usa

  1. Escribe el usuario y la contraseña, o genera una contraseña aleatoria.
  2. Deja bcrypt y elige un coste: de 10 a 12 va bien en la mayoría de servidores.
  3. Copia la línea, o descarga el archivo .htpasswd, y guárdalo fuera de tu raíz web.

Privacidad

Esta herramienta funciona íntegramente en tu navegador. Lo que introduces nunca se sube, se guarda ni se comparte: al cerrar la pestaña desaparece.

Preguntas frecuentes

¿Se sube mi contraseña?
No. El hash se calcula en la pestaña del navegador. La contraseña, la sal y la línea final no se transmiten, registran ni almacenan en ningún sitio.
¿Qué hash debería elegir?
bcrypt, salvo que tu servidor realmente no pueda usarlo. Lleva sal por entrada y es lento a propósito, así que quien robe el archivo tiene que gastar tiempo real en cada intento. La opción SHA-1 no lleva sal y se rompe rápido; existe solo por compatibilidad.
¿Qué hace el coste de bcrypt?
Es el logaritmo en base 2 del número de rondas de preparación de clave, así que cada paso duplica el trabajo, tanto para un atacante como para tu servidor al iniciar sesión. De 10 a 12 es el equilibrio habitual; costes mayores también hacen que esta página tarde bastante más.
¿Puedo usar la salida con nginx?
Sí. nginx lee el mismo formato de archivo en auth_basic_user_file y admite entradas bcrypt, así que una línea generada aquí sirve para Apache y para nginx.
¿Dónde debe estar el archivo?
Fuera del directorio que publica tu servidor, con AuthUserFile apuntando a su ruta. Si .htpasswd está dentro de una carpeta servida, cualquiera puede descargar los hashes y romperlos sin conexión.