Esta publicación cubre varios métodos para validar una contraseña en Java.

Hemos visto que un Se prefiere una array de caracteres sobre un objeto String para almacenar información altamente confidencial, como contraseñas de usuario en Java. Pero si debe usar una string para almacenar una contraseña, puede usar cualquiera de los siguientes métodos para validarla:

1. Usando el Validador OWASP

Nosotros podemos usar Regex de validación de OWASP, que se considera muy seguro. La expresión regular requiere que la contraseña tenga de 4 a 8 caracteres y debe contener números, letras minúsculas y mayúsculas.

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{4,8}$

El siguiente es el desglose de cada componente:

^               # start of the string
(?=.*\d)        # a digit must occur at least once
(?=.*[a-z])     # a lower case letter must occur at least once
(?=.*[A-Z])     # an upper case letter must occur at least once
.{4,8}          # 4-8 character password, both inclusive
$               # end of the string

 
Aquí está la versión compleja, que requiere una contraseña de 4 a 32 caracteres. La contraseña debe cumplir al menos 3 de 4 condiciones (letras mayúsculas y minúsculas, números y caracteres especiales) y no debe tener más de 2 caracteres iguales seguidos.

^(?:(?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))(?!.*(.)\1{2,})[A-Za-z0-9!~<>,;:_=?*+#.”&§%°()\|\[\]\-\$\^\@\/]{8,32}$

Descargar  Ejecutar código

Resultado:

The Password Stream@Java8 is valid

2. Usar otra expresión regular

Aquí hay otra expresión regular para validar una contraseña, tomada de la Subproceso de desbordamiento de stack. Esta es básicamente una extensión de OWASP Regex vista anteriormente. Dado que cada regla es un "módulo" independiente, podemos agregar, modificar o eliminar reglas individuales fácilmente.

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$

A continuación la explicación detallada:

^                  # start of the string
(?=.*[0-9])        # a digit must occur at least once
(?=.*[a-z])        # a lower case letter must occur at least once
(?=.*[A-Z])        # an upper case letter must occur at least once
(?=.*[@#$%^&+=])   # a special character must occur at least once
(?=\\S+$)          # no whitespace allowed in the entire string
.{8,16}            # 8-16 character password, both inclusive
$                  # end of the string

Descargar  Ejecutar código

Resultado:

The Password Java#@#8 is valid

Eso es todo acerca de la validación de una contraseña en Java.