Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Verify password hash
|
Verify password hash ( contrasena ; hash ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
contrasena | Cadena |
![]() |
La contraseña de usuario. Sólo se utilizan los primeros 72 caracteres. | |||||
hash | Cadena |
![]() |
Un hash de contraseña. | |||||
Resultado | Booleano |
![]() |
Devuelve TRUE si la contraseña y hash coinciden, de lo contrario devuelve FALSE. | |||||
La función Verify password hash verifica que el hash dado coincida con la contrasena dada.
Esta función compara la contrasena con un hash generado por la función Generate password hash.
Se pueden devolver los errores siguientes. Puede revisar un error con los comandos GET LAST ERROR STACK y ON ERR CALL.
Número | Mensaje |
850 | Password-hash: Algoritmo no soportado. |
851 | Password-hash: Fallo de verificación de consistencia. |
Recordatorio: solo se soporta el algoritmo bcrypt. Si su hash no se generó utilizando bcrypt, se devuelve un error.
Este ejemplo verifica un hash de contraseña creado previamente por Generate password hash y almacenado en una tabla [Users] con una contraseña introducida recientemente:
C_TEXT($password)
$password:=Request("Por favor introduzca su contraseña")
If(Verify password hash($password;[Users]hash))
ALERT("Contraseña correcta")
Else
ALERT("Contraseña incorrecta")
End if
Nota: la contraseña nunca se almacena en el disco, sólo el hash. Utilizando una aplicación 4D remota, el hash podría ser producido del lado del cliente. Si en cambio, utiliza un front end basado en JavaScript (o similar), la mejor práctica para la seguridad es crear el hash del lado del servidor. Por supuesto, debe utilizar una conexión de red cifrada TLS para la seguridad, ya que esto requiere la transferencia de la contraseña a través de la red.
Producto: 4D
Tema: Herramientas
Número
1534
Creado por: 4D v16 R5
Manual de lenguaje 4D ( 4D v20 R7)