Seguridad

Generador de htpasswd

Genera líneas de credenciales .htpasswd para HTTP Basic Auth en Apache y nginx. Usa bcrypt de forma predeterminada para proyectos nuevos, cambia a Apache MD5, SHA-512 o crypt heredado cuando un servidor antiguo lo exija, y verifica si una contraseña coincide con un hash existente. Todo se calcula en el navegador, sin subir la contraseña.

  • Ocho algoritmos: desde bcrypt, recomendado, hasta Apache MD5, SHA-512/256-crypt, SHA-1 heredado, crypt y texto sin cifrar
  • Funciona por completo en el navegador, así que la contraseña no sale de tu equipo
  • Costo de bcrypt ajustable, generador de contraseñas seguras y modo por lotes para crear un archivo .htpasswd completo
  • El modo de verificación compara una contraseña con cualquier hash existente y muestra qué algoritmo lo generó
tools/Generador htpasswd

Cuanto mayor sea el costo, más lento será el hash y más difícil será romperlo. 10-12 es un valor predeterminado razonable.

El hash se calcula localmente en tu navegador. La contraseña nunca se sube.

Cargando el motor de hash
8%
Los motores de bcrypt y crypt se descargan una sola vez y quedan en caché durante esta visita.
Salida

Resumen

La fiabilidad de un archivo .htpasswd depende del algoritmo de hash, la sal y la forma en que se guarda. Esta herramienta ofrece un valor predeterminado moderno, opciones compatibles con servidores antiguos y una forma de revisar credenciales existentes sin que la contraseña salga de la página.

  1. 01

    bcrypt por defecto

    El algoritmo recomendado para HTTP Basic Auth, con un factor de costo ajustable para equilibrar velocidad y resistencia frente a ataques de fuerza bruta. La salida usa el prefijo $2y$ que esperan Apache y nginx.

  2. 02

    Formatos compatibles habituales

    Apache MD5 (apr1) para archivos .htpasswd clásicos, SHA-512 y SHA-256 crypt para Unix moderno, además de MD5 crypt, SHA-1, DES crypt tradicional y texto sin cifrar para sistemas antiguos que los exigen.

  3. 03

    Nivel de seguridad claro

    Cada algoritmo se marca como recomendado, fuerte, heredado o inseguro, para distinguir las opciones adecuadas para credenciales nuevas de los formatos débiles que solo se conservan por compatibilidad.

  4. 04

    Verificación de hashes existentes

    Cambia al modo de verificación, pega un hash o una línea completa usuario:hash, introduce la contraseña y la herramienta indica si coincide y qué algoritmo se usó, sin iniciar sesión en el servidor.

  5. 05

    Generación de archivos por lotes

    Pega varias parejas usuario:contraseña y obtén de una vez un archivo .htpasswd completo, listo para copiar o descargar, sin ejecutar un comando por cada usuario.

  6. 06

    Comando equivalente incluido

    Cada resultado muestra el comando htpasswd u openssl equivalente, para que puedas reproducirlo en el servidor y entender los parámetros mientras trabajas.

Cómo usarla

En pocos pasos puedes generar una línea de credenciales o un archivo completo, sin que la contraseña salga del navegador.

  1. 01

    Introduce el usuario y luego escribe la contraseña, o usa el dado para generar una contraseña segura.

  2. 02

    Elige el algoritmo. Mantén bcrypt salvo que un servidor antiguo necesite un formato concreto; si quieres un hash más lento y más fuerte, sube el costo de bcrypt.

  3. 03

    Copia la línea usuario:hash generada o descárgala directamente como archivo .htpasswd. Si hay muchos usuarios, activa el modo por lotes y pega un usuario:contraseña por línea.

  4. 04

    Apunta el servidor a ese archivo, con AuthUserFile en Apache o auth_basic_user_file en nginx, y recarga la configuración. En cualquier momento puedes usar el modo de verificación para comparar una contraseña con un hash existente.

Detalles

Detalles que hacen que la salida sea fiable para producción y fácil de revisar.

  • La salida bcrypt usa el identificador $2y$, y los hashes crypt coinciden byte a byte con openssl passwd, por lo que se pueden usar directamente en Apache y nginx.
  • bcrypt, apr1 y los formatos crypt usan sales aleatorias criptográficamente seguras, de modo que una misma contraseña normalmente produce salidas distintas.
  • El generador de contraseñas integrado usa la API crypto del navegador y evita caracteres fáciles de confundir, como O, 0, l y 1.
  • El modo de verificación detecta automáticamente el algoritmo por el prefijo del hash y vuelve a comprobarlo con la sal incrustada, incluidas las variantes bcrypt $2a$, $2b$, $2x$ y $2y$.
  • No se sube ni se registra nada. Las contraseñas y los hashes se procesan en memoria y desaparecen al cerrar la pestaña.

Casos de uso

Una herramienta htpasswd rápida y privada resulta especialmente útil en estos casos.

  1. Proteger un sitio de preproducción

    Añade Basic Auth a un entorno de preproducción o interno en pocos minutos, con una credencial bcrypt lista para colocar en el archivo .htpasswd protegido.

  2. Restringir un location de nginx

    Genera un hash para auth_basic_user_file y protege una ruta de administración, un endpoint de métricas o una descarga privada sin montar un sistema de inicio de sesión completo.

  3. Rotar credenciales con seguridad

    Regenera la línea de un usuario con una contraseña nueva y fuerte y un costo bcrypt más alto; antes de sustituirla, usa el modo de verificación para comprobar el hash antiguo con la contraseña anterior.

  4. Dar de alta muchos usuarios a la vez

    Pega desde una hoja de cálculo o un script una lista de usuario:contraseña y obtén un archivo .htpasswd completo, sin invocar htpasswd dentro de un bucle.

  5. Auditar un archivo heredado

    Usa el modo de verificación para confirmar qué algoritmo usa una línea .htpasswd existente y si una contraseña conocida todavía coincide, antes de decidir qué conviene actualizar.

  6. Migrar Basic Auth antiguo

    Identifica registros apr1, SHA-1 o DES en un archivo antiguo y sustitúyelos gradualmente por bcrypt o SHA-crypt para reducir el riesgo de una migración de una sola vez.

Ver también

¿Primero necesitas credenciales originales? Genera una conGenerador de contraseñas ; para obtener resúmenes puntuales de cualquier texto,Generador de hash cubre MD5, SHA y más algoritmos.

Relación entre .htpasswd y Basic Auth

HTTP Basic Auth es la forma más sencilla de poner usuario y contraseña delante de un sitio o una ruta. El servidor guarda las credenciales en un archivo de texto plano, una línea por usuario, y la contraseña solo se conserva como hash.

  1. Formato del archivo

    Cada línea tiene la forma usuario:hash. Apache la lee con AuthUserFile y nginx con auth_basic_user_file. El prefijo del hash, como $2y$, $apr1$, $6$ o {SHA}, indica al servidor qué algoritmo debe usar para verificarlo.

  2. Por qué bcrypt es la opción moderna

    bcrypt es deliberadamente lento e incluye sal, por lo que adivinar contraseñas sin conexión resulta costoso. Su factor de costo ajustable permite aumentar ese costo a medida que mejora el hardware, algo que los hashes de costo fijo como MD5 o SHA-1 no pueden hacer.

  3. Apache MD5 (apr1) no es MD5 simple

    El esquema $apr1$ pasa MD5 por miles de iteraciones con sal. Es mucho más fuerte que un resumen MD5 de una sola pasada y sigue siendo la opción más portable en versiones antiguas de Apache, aunque conviene priorizar bcrypt cuando esté disponible.

  4. SHA-512 y SHA-256 crypt

    $6$ y $5$ son formatos crypt iterados y con sal usados por inicios de sesión modernos en Linux. nginx y las versiones recientes de Apache pueden verificarlos directamente, así que son una opción fuerte sin dependencias adicionales.

  5. Algoritmos débiles y por qué siguen ahí

    SHA-1 ({SHA}), DES crypt tradicional y texto sin cifrar solo permanecen por compatibilidad con software muy antiguo. DES ignora en silencio todo lo que pasa del octavo carácter; el texto sin cifrar puede leerlo cualquiera que obtenga el archivo. Úsalos solo si no hay alternativa.

  6. Sal y verificación

    Cada esquema moderno incrusta una sal aleatoria en la salida, así que la misma contraseña genera hashes distintos. Verificar consiste en volver a ejecutar el algoritmo con la sal incrustada y comparar el resultado, que es exactamente lo que hace aquí el modo de verificación.

Buenas prácticas

Hábitos que mantienen fuertes las credenciales de Basic Auth y limpio el archivo.

  • Usa bcrypt por defecto para credenciales nuevas y recurre a apr1 o crypt solo cuando un servidor concreto no pueda verificar bcrypt.
  • No publiques SHA-1, DES ni texto sin cifrar salvo que un sistema heredado inevitable lo exija; ofrecen poca o ninguna protección.
  • Aumenta el costo de bcrypt a medida que mejora el hardware; hoy 10-12 es razonable, y los endpoints sensibles pueden usar un valor mayor.
  • Guarda .htpasswd en una ruta que el servidor web no pueda exponer públicamente y ajusta los permisos del archivo para que los hashes no puedan descargarse.
  • Combina siempre Basic Auth con HTTPS, porque el navegador envía usuario y contraseña codificados en base64, no cifrados, en cada solicitud.

Limitaciones

Qué hace esta herramienta y qué queda en manos de tu servidor.

  • Genera y verifica los hashes de un archivo .htpasswd. No edita la configuración del servidor, no sube archivos y no gestiona quién puede leerlos.
  • DES crypt solo usa los primeros ocho caracteres de la contraseña, y el texto sin cifrar ni siquiera es un hash; ambos se ofrecen por compatibilidad, no por seguridad.
  • El modo de verificación reconoce prefijos de hash estándar; un hash desconocido o mal formado se informa como tal en lugar de intentar adivinarlo.
  • bcrypt trunca las contraseñas que superan 72 bytes. Es una característica del propio algoritmo y se aplica a todas las implementaciones de bcrypt.

Preguntas frecuentes

Preguntas frecuentes sobre archivos .htpasswd, algoritmos y esta herramienta.

¿Mi contraseña se envía a un servidor?

No. Cada hash se calcula con JavaScript en tu navegador, y la contraseña solo permanece en memoria. No se sube, no se registra y no se almacena; esa es la diferencia clave frente a generadores htpasswd del lado del servidor, que necesariamente reciben tu contraseña.

¿Qué algoritmo debería elegir?

Elige bcrypt salvo que un servidor antiguo no pueda verificarlo. bcrypt usa sal, es deliberadamente lento y permite ajustar el costo. Si bcrypt no está disponible, Apache MD5 (apr1) o SHA-512 crypt también son opciones fuertes. Evita SHA-1, DES y texto sin cifrar salvo por compatibilidad inevitable.

¿Estos hashes son compatibles con Apache y nginx?

Sí. La salida bcrypt usa el prefijo $2y$ que espera Apache, y los formatos apr1, SHA-256 y SHA-512 crypt coinciden con openssl passwd y con crypt del sistema, por lo que Apache con AuthUserFile y nginx con auth_basic_user_file pueden verificarlos.

¿Para qué sirve el factor de costo de bcrypt?

Define cuántas rondas ejecuta bcrypt, y cada aumento duplica el trabajo. Un costo más alto hace que cada hash tarde más en calcularse, lo que frena ataques de adivinación sin conexión. Para la mayoría de sitios, un costo de 10 a 12 equilibra seguridad y velocidad de acceso.

¿Cómo funciona el modo de verificación?

Pega un hash o una línea completa usuario:hash, y luego la contraseña que quieres probar. La herramienta lee el prefijo para identificar el algoritmo, vuelve a ejecutarlo con la sal incrustada en el hash y compara el resultado, indicando si la contraseña coincide y qué esquema se usó.

¿Puedo generar un archivo .htpasswd completo de una vez?

Sí. Activa el modo por lotes y pega un usuario:contraseña por línea. Cada línea se convierte en hash con el algoritmo elegido, y puedes copiar el resultado o descargarlo directamente como archivo .htpasswd.

¿Sigo necesitando HTTPS con Basic Auth?

Sí, sin excepción. Basic Auth envía usuario y contraseña codificados en base64 en cada solicitud, algo muy fácil de decodificar. Solo HTTPS mantiene esas credenciales privadas durante el transporte, así que no uses Basic Auth sobre HTTP sin cifrar.

Herramientas relacionadas

Sigue explorando el resto de herramientas de seguridad e identidad.