“Conocimiento Problema>contraseñas

¿La contraseña debe ser alfanumérica con un personaje especial que tiene una longitud mínima de 8 caracteres?

2013/10/5
`` `regex

^(? =.*[A-Za-Z]) (? =.*\ d) (? =.*[!@#$%^&*(),.? ":{} | <> \ -_+=\\` ~; ']). {8,} $

`` `` ``

Explicación:

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

* `(? =.* [A-ZA-Z])`:Afirmación positiva de LookAhead que requiere al menos una letra (A-Z o A-Z).

* `(? =.* \ d)`:Aserción positiva de lookhead que requiere al menos un dígito (0-9).

*'(? La clase de caracteres (por ejemplo, `\` y `--`).

* `. {8,}`:coincide con cualquier carácter (excepto Newline) al menos 8 veces. Esto asegura la longitud mínima.

* `$`:Coincide con el final de la cadena.

Cómo usarlo en diferentes contextos:

* JavaScript:

`` `JavaScript

const PasswordRegex =/^(?=.*ficA-Za-ZfontNO)(?=.*\D)(?=.*…_#$%^&*(),.

Const Password ="myp@ssword123";

const isValid =contraseñagex.test (contraseña);

console.log (isValid); // Salida:Verdadero

const invalidPassword ="Short1!";

const isInvalid =PasswordGex.Test (InvalidPassword);

console.log (isInvalid); // Salida:Falso

`` `` ``

* Python:

`` `Python

importar

contraseña_regex =r "^(? =.*[A-Za-Z]) (? =.*\ d) (? =.*[!@#$%^&*(),. \":{} | <> \ -_+=\\ `~; ']). {8,} $" "

contraseña ="myp@ssword123"

is_valid =re.match (contraseña_regex, contraseña)

print (bool (is_valid)) # Salida:Verdadero

invalid_password ="¡Short1!"

is_invalid =re.match (contraseña_regex, invalid_password)

print (bool (is_invalid)) # salida:falso

`` `` ``

* java:

`` `Java

import java.util.regex.matcher;

import java.util.regex.pattern;

Clase pública PasswordValidator {

public static void main (string [] args) {

String PasswordRegex ="^(? =.*[A-Za-Z]) (? =.*\\ d) (? =.*[!@#$%^&*(),. \":{} | <> -_+=\\ `~; ']). {8,} $";

Cadena contraseña ="myp@ssword123";

Pattern Pattern =Pattern.Compile (PasswordEgex);

Matcher matcher =patrón.matcher (contraseña);

System.out.println (matcher.matches ()); // Salida:Verdadero

String InvalidPassword ="Short1!";

Matcher =Pattern.Matcher (InvalidPassword);

System.out.println (matcher.matches ()); // Salida:Falso

}

}

`` `` ``

Consideraciones y personalización importantes:

* caracteres especiales: La parte más crítica es definir los caracteres especiales permitidos. El `[!@#$%^&*(),.?":{} | <> \ -_+=\\ `~; ']` Parte de la regla define qué caracteres se consideran "especiales". Examine cuidadosamente y modifique esto para que coincida con sus requisitos específicos. Recuerde escapar de los personajes especiales de Regex.

* Conjuntos de caracteres:

* `[A-ZA-Z]`:coincide con cualquier letra mayúscula o minúscula. Es posible que desee restringir esto a solo letras minúsculas o solo mayúsculas si es necesario.

* `\ d`:coincide con cualquier dígito (0-9).

* Longitud mínima: La parte `{8,}` especifica una longitud mínima de 8 caracteres. Cambie el `8` para ajustar la longitud mínima. Si también desea una longitud máxima, puede especificarlo así:`{8,16}` para un mínimo de 8 y un máximo de 16 caracteres.

* Requisitos de complejidad: Puede agregar más requisitos de complejidad agregando más afirmaciones de LookAhead. Por ejemplo, podría requerir al menos dos dígitos con `(? =.*\ D.*? \ D)`.

* Las mejores prácticas de seguridad: Si bien este Regex impone un nivel básico de complejidad, es crucial comprender que Regex solo no es una solución de seguridad completa. Considere estas mejores prácticas:

* sal y hash: Nunca almacene contraseñas en texto plano. Siempre use un algoritmo de hash fuerte (como Argon2, BCrypt o Scrypt) con una sal única para cada contraseña.

* Medidores de fuerza de contraseña: Use un medidor de fuerza de contraseña para proporcionar comentarios en tiempo real a los usuarios a medida que escriben su contraseña.

* Auditorías de seguridad regulares: Revise regularmente sus políticas de contraseña y prácticas de seguridad.

* Limitando la velocidad: Implementar la limitación de la tasa en los intentos de inicio de sesión para prevenir los ataques de fuerza bruta.

Ejemplo:Permitir solo los siguientes caracteres especiales:`!@#$%^&*`

El Regex se convertiría:

`` `regex

^(? =.*[A-Za-Z]) (? =.*\ d) (? =.*[!@#$%^&*]). {8,} $

`` `` ``

Ejemplo:requerir al menos dos dígitos:

`` `regex

^((? =.*[A-Za-Z]) (? =.*\ d.*? \ d) (? =.*[!@#$%^&*(),.? ":{} | <> \ -_+=\\` ~; ']). {8,} $

`` `` ``

Esta versión agrega `(? =.*\ D.*? \ D)`, que requiere al menos dos dígitos, con cualquier personaje intermedio permitido por `.*?`.

Elija el Regex que mejor se adapte a * su * política de contraseña específica y recuerde priorizar las mejores prácticas de seguridad. Siempre pruebe el regex bien con una variedad de contraseñas válidas e inválidas.

contraseñas
Cómo cambiar un número de contraseña
¿Cómo aplica contraseñas a archivos y carpetas por separado?
¿Por qué es importante mantener en secreto su contraseña de correo electrónico?
¿Si desea proteger su computadora para que requiera una contraseña?
¿Cómo puedo borrar una contraseña inalámbrica para Apple Mac
¿Puede ser un usuario autorizado en una cuenta después de presentar el capítulo 13?
¿Su clave de producto Norton también es pin?
¿Cuál es la contraseña predeterminada para un MFP Dell 2135CN?
Conocimiento de la computadora © http://www.ordenador.online