Traducido automáticamente del inglés.

Leer en inglés
Proxy Mail QA

¿Qué longitud debe tener la contraseña en mi formulario de registro?

La respuesta corta viene de las directrices de identidad digital de NIST. La respuesta larga es comprobar que tu formulario y tu servidor hacen lo que decidiste.

Actualizado el

Nuestra recomendación, de entrada. Creamos Proxy Mail QA, así que no somos neutrales, pero no elige tu política de contraseñas. Las cifras de abajo vienen de las directrices de identidad digital de NIST (SP 800-63B, cuarta revisión), que siguen muchos equipos de seguridad. Recomendamos Proxy Mail QA para el paso siguiente a tu decisión: comprobar que tu formulario y tu servidor realmente hacen lo que decidiste, con contraseñas de prueba exactamente en el mínimo y el máximo, una a cada lado, y todo tipo de símbolos. No revisa cómo almacenas las contraseñas ni tu seguridad en general.

La respuesta corta

El resto de la guía, en palabras simples

La guía de NIST para contraseñas elegidas por los usuarios también dice:

¿Para qué tener un máximo?

Una contraseña muy larga le cuesta tiempo a tu servidor al aplicar el hash, así que un máximo impide que alguien envíe megabytes como contraseña. Ponlo muy por encima de lo que la gente usa: 64 es lo mínimo que NIST recomienda permitir, y 128 o 256 es habitual.

Ten cuidado con tu algoritmo de hash. bcrypt solo lee los primeros 72 bytes de una contraseña e ignora el resto. Entonces dos contraseñas largas que empiezan igual inician sesión una como la otra. Un carácter puede ocupar más de un byte (é ocupa dos, un emoji cuatro), así que 72 bytes pueden ser menos de 72 caracteres. Puedes:

Pon las reglas donde el navegador pueda verlas

<label for="password">Password</label>
<p id="password-rules">At least 15 characters. Any letters, numbers, symbols or spaces.</p>
<input id="password" name="password" type="password" autocomplete="new-password" minlength="15" maxlength="128" aria-describedby="password-rules" required />

Comprueba que tu formulario hace lo que decidiste

get_password_variants (MCP), qa.passwordVariants() (npm) o GET /v1/variants/passwords (REST API) toman tus reglas (min_length, max_length y si se permiten symbols) y devuelven contraseñas de prueba nuevas en tres grupos:

Grupo Con una política de 15 a 64 Qué debería pasar
accept Exactamente 15 y exactamente 64 caracteres; cada tipo de símbolo; un espacio en medio; éüñ Aceptada, y después inicia sesión exactamente como se escribió
reject 14 caracteres; 65 caracteres Rechazada, indicando la regla, antes de crear una cuenta
decide Solo dígitos; solo minúsculas; un espacio al principio o al final; un emoji; é escrito de dos formas; dos contraseñas que comparten sus primeros 72 bytes (cuando el máximo supera 72) Tú eliges, pero decide a propósito. Según NIST, una contraseña de 15 dígitos se permite salvo que esté en tu lista de bloqueo

El par de 72 bytes es el que hay que vigilar: si la segunda contraseña inicia sesión en la cuenta creada con la primera, tu app está recortando las contraseñas.

Puedes ejecutarlas a mano, desde un agente o en una prueba:

Our password policy is 15 to 128 characters, any characters allowed. Using Proxy Mail QA,
get_password_variants with min_length 15 and max_length 128, and try each one on
https://staging.acme.dev/signup with a new test address (use a plus tag for each).
For accepted ones, verify the account and sign in with the same password.
Give me a table: what it tests, accepted or refused, the message shown, and whether
signing in worked.

Si las contraseñas rechazadas no muestran ningún error, consulta ¿Por qué mi formulario de registro no muestra errores de contraseña?

Lo que Proxy Mail QA no hace aquí

Fuentes: NIST SP 800-63B-4 y su sección sobre autenticadores.

Úsalo en tu próxima prueba de registro

Plan gratuito, sin tarjeta de crédito. Crea una dirección y mira cómo llega el código o el enlace.

Crear una cuenta gratuitaAbrir la aplicación

¿Creaste tu app con una herramienta de IA? Elige la tuya

¿Tienes una pregunta sobre esta página?

Pregunta en cualquier idioma. La documentación puede responderte de inmediato, o puedes enviar tu pregunta al equipo de Proxy Mail QA, que responde en inglés.