| 4D v20.1Generate digest | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20.1
 Generate digest 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Generate digest ( param ; algoritmo {; *} ) -> Resultado | ||||||||
| Parámetro | Tipo | Descripción | ||||||
| param | BLOB, Variable texto |   | Blob o texto para el cual obtener un extracto | |||||
| algoritmo | Entero largo |   | Algoritmo utilizado para devolver la llave: 0 = Digest MD5, 1 = Digest SHA1 | |||||
| * | Operador |   | Codificar digest en Base64URL | |||||
| Resultado | Texto |   | Valor de la llave digest | |||||
El comando Generate digest devuelve el extracto de un BLOB o de un texto después de la aplicación de un algoritmo de encripción.
Pase un campo o una variable Texto o BLOB en el parámetro param. La función Generate digest devuelve la llave digest como una cadena.
En el parámetro algoritmo, pase un valor designando la función hash a utilizar. Utilice una de las siguientes constantes, ubicadas en el tema Tipo Digest:
| Constante | Tipo | Valor | Comentario | 
| 4D REST digest | Entero largo | 2 | Algoritmo interno utilizado por 4D, en el contexto del Método base On 4D Mobile Authentication cuando se quiere utilizar una lista propia de usuarios. | 
| MD5 digest | Entero largo | 0 | Utilizar el algoritmo MD5 | 
| SHA1 digest | Entero largo | 1 | Utilizar el algoritmo SHA-1 | 
| SHA256 digest | Entero largo | 3 | (Familia SHA-2) SHA-256 es una serie de 256 bits devueltos como una cadena de 64 caracteres hexadecimales. | 
| SHA512 digest | Entero largo | 4 | (Familia SHA-2) SHA-512 es una serie de 512 bits devueltos como una cadena de 128 caracteres hexadecimales. | 
Nota: no se recomienda utilizar algoritmos MD5 y SHA para manejar contraseñas; si necesita verificar contraseñas, se recomienda utilizar los comandos Generate password hash y Verify password hash .
Por defecto, si se omite el parámetro *, el digest devuelto está codificado en hexadecimal. Pase el parámetro * si desea que se codifique en Base64URL.
El valor devuelto por el mismo objeto es el mismo en todas las plataformas (macOS/Windows). El cálculo se efectúa a partir de la representación en UTF-8 del texto pasado en parámetro.
Nota: si utiliza el comando con un texto/BLOB vacío, no devolverá void sino un valor cadena (por ejemplo "d41d8cd98f00b204e9800998ecf8427e" para MD5).
Este ejemplo compara dos documentos utilizando el algoritmo MD5:
 C_PICTURE($vPict1;$vPict2)
 C_BLOB($FirstBlob;$SecondBlob)
 READ PICTURE FILE("c:\\myPhotos\\photo1.png")
 If(OK=1)
    READ PICTURE FILE("c:\\myPhotos\\photo2.png")
    If(OK=1)
       PICTURE TO BLOB($vPict1;$FirstBlob;".png")
       PICTURE TO BLOB($vPict2;$SecondBlob;".png")
 
       $MD5_1:=Generate digest($FirstBlob;MD5 digest)
       $MD5_2:=Generate digest($SecondBlob;MD5 digest)
 
       If($MD5_1#$MD5_2)
          ALERT("Estas dos imágenes son diferentes.")
       Else
          ALERT("Estas dos imágenes son idénticas.")
       End if
    End if
 End ifEstos ejemplos ilustran cómo recuperar el extracto de un texto:
 $key1:=Generate digest("The quick brown fox jumps over the lazy dog.";MD5 digest)
  // $key1 is "e4d909c290d0fb1ca068ffaddf22cbd0"
 $key2:=Generate digest("The quick brown fox jumps over the lazy dog.";SHA1 digest)
  // $key2 is "408d94384216f890ff7a0c3528e8bed1e0b01621"Este ejemplo sólo acepta el usuario "admin" con la contraseña "123" que no corresponde a un usuario 4D:
  //On REST Authentication database method
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: usuario
  //$2: contraseña
  //$3: modo digest
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if
									BASE64 DECODE
									
									BASE64 ENCODE
									
									Generate password hash
									
									Protocolo seguro
									
									WEB Validate digest
									
	Producto: 4D
	Tema: Herramientas
	Número 
        1147
        
        
        
	
	Creado por: 4D v13
	Modificado: 4D v14
	Modificado: 4D v16 R5
	Modificado: 4D v18 R4
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Manual de lenguaje 4D ( 4D v20)
	
	
	Manual de lenguaje 4D ( 4D v20.1)
	
	
	
 Añadir un comentario
Añadir un comentario