4D v20.1Generate digest |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.1
Generate digest
|
Generate digest ( param ; algorithm {; *} ) -> Function result | ||||||||
Parameter | Type | Description | ||||||
param | BLOB, Text variable |
![]() |
Blob or text for which to get digest key | |||||
algorithm | Longint |
![]() |
Algorithm used to return key: 0 = MD5 Digest, 1 = SHA1 Digest, 2 = 4D digest, 3 = SHA-256 digest, 4 = SHA-512 digest |
|||||
* | Operator |
![]() |
Encode digest in Base64URL | |||||
Function result | Text |
![]() |
Value of digest key | |||||
The Generate digest command returns the digest key of a BLOB or text after application of an encryption algorithm.
Pass a Text or BLOB field or variable in the param parameter. The Generate digest function returns the digest key as a string.
In the algorithm parameter, pass a value designating which hash function to use. Use one of the following constants, found in the Digest Type theme:
Constant | Value | Comment |
4D REST digest | 2 | Internal algorithm of 4D, useful in the context of the On REST Authentication database method when you want to use your own list of users. |
MD5 digest | 0 | Message Digest 5 algorithm. A series of 128 bits returned as a string of 32 hexadecimal characters. |
SHA1 digest | 1 | Secure Hash 1 algorithm. A series of 160 bits returned as a string of 40 hexadecimal characters. |
SHA256 digest | 3 | (SHA-2 family) SHA-256 is a series of 256 bits returned as a string of 64 hexadecimal characters. |
SHA512 digest | 4 | (SHA-2 family) SHA-512 is a series of 512 bits returned as a string of 128 hexadecimal characters. |
Note: It is not recommended to use MD5 and SHA algorithms to handle passwords; if you need to check passwords, you are advised to use Generate password hash and Verify password hash commands.
By default if the * parameter is omitted, the returned digest is encoded in hexadecimal. Pass the * parameter if you want it to be encoded in Base64URL.
The value returned for the same object is the same on all the platforms (macOS/Windows). The calculation is performed based on the representation in UTF-8 of the text passed in the parameter.
Note: If you use the command with an empty text/BLOB, it does not return void but a string value (for example "d41d8cd98f00b204e9800998ecf8427e" for MD5).
This example compares two images using the MD5 algorithm:
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("These two images are different.")
Else
ALERT("These two images are identical.")
End if
End if
End if
These examples illustrate how to retrieve the digest key of a text:
$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"
This example only accepts the "admin" user with the password "123" that does not match a 4D user:
//On REST Authentication database method
C_TEXT($1;$2)
C_BOOLEAN($0;$3)
//$1: user
//$2: password
//$3: digest mode
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
Secured Protocol
WEB Validate digest
Product: 4D
Theme: Tools
Number:
1147
Created: 4D v13
Modified: 4D v14
Modified: 4D v16 R5
Modified: 4D v18 R4
4D Language Reference ( 4D v20)
4D Language Reference ( 4D v20.1)