“Conocimiento Problema>contraseñas

Contraseña Min8 Chars INC1 Caso superior y 1Lower 1 Numérico especial Char ¿Cómo escribir esto?

2012/10/21
`` `regex

^(? =.*[a-z]) (? =.*[a-z]) (? =.*\ d) (? =.*[!@#$%^&*() _+{} \ []:; <>,.? ~ \\/-]). {8,} $

`` `` ``

Aquí hay un desglose de la regex y cómo cumple con los requisitos:

* `^`:Coincide con el comienzo de la cadena.

* `(? =.* [A-Z])`: LookAhead positivo - Asegura que haya al menos una letra minúscula (`[A-Z]`). `.*` coincide con cualquier personaje (excepto Newline) cero o más veces, por lo que esencialmente dice "En algún lugar de la cadena, debe haber una letra minúscula". El LookAhead * no consume * ningún personaje; Simplemente verifica una condición.

* `(? =.* [A-Z])`: LookAhead positivo - Asegura que haya al menos una letra mayúscula (`[A-Z]`).

* `(? =.* \ d)`: LookAhead positivo - Asegura que haya al menos un dígito (`\ d`).

*`(? =.*[!@#$%^&*() _+{} \ [\] :; <>,.? ~ \\/-])`: LookAhead positivo - Asegura que haya al menos un personaje especial de la lista proporcionada. IMPORTANTE: Es posible que deba ajustar a los personajes dentro de los soportes cuadrados dependiendo de los personajes que considere "especiales". El Backshash `\` se usa para escapar de caracteres especiales como `--`,` [`,`] `,`/`,` .` y `\`, por lo que son tratados literalmente. (Se necesita una doble barra de invernada `\\` en muchos lenguajes de programación 'literales de cadena para representar una sola invernada en la regex). Si desea permitir más o diferentes caracteres especiales, modifique esta parte en consecuencia.

* `. {8,}`:coincide con cualquier carácter (excepto Newline) al menos 8 veces. Esta es la parte principal que coincide con los caracteres de la contraseña reales, después de que los LookAheads hayan confirmado la presencia de los elementos requeridos.

* `$`:Coincide con el final de la cadena. Esto asegura que la cadena * completa * coincida con los criterios.

Explicación de LookAheads:

La clave de este Regex es el uso de * LookAheads positivos * (`(? =...)`). LookAheads le permite afirmar que existe un determinado patrón * sin consumir * los personajes que coinciden con el patrón. Esto es crucial porque debe verificar la presencia de diferentes tipos de caracteres (minúsculas, mayúsculas, dígitos, especial) de forma independiente y luego asegurarse de que la longitud total sea al menos 8.

Cómo usarlo (ejemplo en Python):

`` `Python

importar

contraseña_regex =r "^(? =.*[a-z]) (? =.*[a-z]) (? =.*\ d) (? =.*[!@#$%^&*() _+{} \ [\]:; <>,.? ~ \\/-]). {8,} $"

def is_valid_password (contraseña):

return bool (re.match (contraseña_regex, contraseña))

Casos de prueba

Contraseñas =[

"¡StrongPass1!", # Válido

"Webilpass1", # inválido (sin mayúsculas)

"Débil1", # inválido (sin minúsculas)

"Strong Pass", # Invalid (sin dígito, especial)

"Strngp1", # inválido (demasiado corto)

"StrongPass1", # inválido (no especial)

"StrongPass1", # inválido (sin especial, espacio al final)

"StrongPass_1", # válido

"StrongPass.1", # válido

"Strong Pass, 1", # válido

"Strong Pass ~ 1", # Válido

"LongervalidPasswordwith1!", # Válido

]

Para contraseña en contraseñas:

print (f "contraseña:{contraseña}, válida:{is_valid_password (contraseña)}")

`` `` ``

Consideraciones importantes:

* Seguridad: Este Regex es un punto de partida, pero generalmente no se recomienda confiar únicamente en expresiones regulares para la seguridad de la contraseña. Considere usar algoritmos de hash de contraseña establecidos (como Bcrypt, Scrypt o Argon2) para almacenar contraseñas de forma segura.

* caracteres especiales: El `[!@#$%^&*() _+{} \ [\] :; <>,.? ~ \\/-]` La porción define lo que considera un carácter "especial". Ajustelo para que coincida con el conjunto de personajes deseado.

* unicode: Si necesita admitir caracteres Unicode (por ejemplo, contraseñas con letras acentuadas o caracteres de otros idiomas), es posible que deba modificar ligeramente la regex (por ejemplo, utilizando clases de caracteres Unicode como `\ P {ll}` para letras minúsculas).

* Complejidad: Las expresiones regulares muy complejas a veces pueden ser ineficientes. Si bien este generalmente está bien para la validación de contraseñas, tenga en cuenta el rendimiento si se trata de un gran volumen de contraseñas.

* Experiencia de usuario: Proporcione mensajes de error claros y útiles a los usuarios cuando su contraseña no cumpla con los requisitos. No solo digas "contraseña inválida"; Dígales exactamente lo que falta.

Esta explicación completa y el ejemplo de Python deberían darle una comprensión sólida de cómo usar este Regex y cómo adaptarlo a sus necesidades específicas. Recuerde priorizar las prácticas seguras de manejo de contraseñas.

contraseñas
Cómo cambiar la contraseña
¿Qué pasa si la sugerencia de la contraseña es pies?
¿Qué es una pista de contraseña?
¿Cómo no olvidas tu contraseña?
Cómo encontrar una contraseña Power- Up en una Laptop HP Pavilion VD8000
¿Qué son los llaves Mac y cómo se obtiene las contraseñas porque sigo intentando abrir aplicaciones de los llaves?
¿Cómo se hace su propia contraseña y nombre de usuario?
Cómo hacer que Windows XP deja de preguntar por una contraseña de arranque
Conocimiento de la computadora © http://www.ordenador.online