4D v16.3Generate digest |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Generate digest
|
Generate digest ( Param ; Algorithmus ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Param | BLOB, Textvariable |
![]() |
Blob oder Textvariable, deren Digest Schlüssel ermittelt werden soll | |||||
Algorithmus | Lange Ganzzahl |
![]() |
Algorithmus des Rückgabeschlüssels: 0 = MD5 Digest, 1 = SHA1 Digest, 2 = 4D Digest |
|||||
Funktionsergebnis | Text |
![]() |
Wert des Digest Schlüssels | |||||
Die Funktion Generate digest gibt den Digest Schlüssel eines Feldes oder einer Variablen vom Typ BLOB oder Text nach Anwenden eines Verschlüsselungsalgorithmus zurück..
In 4D sind folgende Arten von Algorithmen verfügbar: MD5 (Message Digest 5), SHA-1 (Secure Hash 1) und 4D (interner Algorithmus). Dies sind unterschiedliche Hash Funktionen:
Der für dasselbe Objekt zurückgegebene Wert ist auf allen Plattformen gleich (Mac/Windows, 32 oder 64 bits). Die Berechnung wird in UTF-8 und in Bezug auf den im Parameter übergebenen Text durchgeführt, unabhängig in welchem Modus die Datenbank operiert (Unicode oder ASCII Kompatibilität).
Hinweis: Verwenden Sie die Funktion mit einem leeren Text/BLOB, gibt er nicht leer zurück, sondern folgenden Wert: "d41d8cd98f00b204e9800998ecf8427e" (MD5) oder "da39a3ee5e6b4b0d3255bfef95601890afd80709" (SHA-1).
Im Parameter Param übergeben Sie ein Feld oder eine Variable vom Typ BLOB oder Text (es muss eine Variable/Feld übergeben werden, Text-Konstanten werden nicht akzeptiert). Die Funktion Generate digest gibt den Digest Schlüssel als String zurück.
Im Parameter Algorithmus übergeben Sie einen Wert für die entsprechende Hash Funktion. Verwenden Sie eine der beiden Konstanten unter dem Thema :
Konstante | Typ | Wert | Kommentar |
4D digest | Lange Ganzzahl | 2 | Interner Algorithmus von 4D. Dient zum Verschlüsseln von Benutzerkennwörtern. Dieser Algorithmus ist besonders im Rahmen der Datenbankmethode On 4D Mobile Authentication hilfreich, wenn Sie Ihre eigene Benutzerliste verwenden wollen. |
MD5 digest | Lange Ganzzahl | 0 | Message Digest 5 Algorithmus. Das ist eine Serie von 128 bits, zurückgegeben als String mit 32 hexadezimalen Zeichen. |
SHA1 digest | Lange Ganzzahl | 1 | Secure Hash 1 Algorithmus. Das ist eine Serie von 160 bits, zurückgegeben als String mit 40 hexadezimalen Zeichen. |
Wird die Berechnung des Digest Schlüssels nicht korrekt ausgeführt, wird ein Fehler erzeugt, den Sie über den Befehl ON ERR CALL abfangen können und die Funktion gibt einen leeren String zurück.
Dieses Beispiel vergleicht zwei Dokumente über den MD5 Algorithmus:
PLATFORM PROPERTIES($Platf;$Syst;$vlMachine)
// Das erste Dokument als Nur-Lesen öffnen
$Same:=True
$vhDocRef1:=Open document("";"*";Read Mode))
If(OK=1) // st ein Dokument ausgewählt
DOCUMENT TO BLOB(Document;$FirstBlob) // Dokument laden
If(OK=1)
If($Platf=Mac OS)
DOCUMENT TO BLOB(Document;$FirstBlobRF;*)
// Auf Mac OS Resource Fork laden
$MD5_1RF:=Generate digest($FirstBlobRF;MD5 digest)
End if
// Das zweite Dokument als Nur-Lesen öffnen
$vhDocRef2:=Open document("";"*";Read Mode))
If(OK=1)
DOCUMENT TO BLOB(Document;$SecondBlob)
If(OK=1)
If($Platf=Mac OS)
DOCUMENT TO BLOB(Document;$SecondBlobRF;*)
$MD5_2RF:=Generate digest($SecondBlobRF;MD5 digest)
If($MD5_1RF#$MD5_2RF) // Digests vergleichen
$Same:=False
End if
End if
$MD5_1:=Generate digest($FirstBlob;MD5 digest)
$MD5_2:=Generate digest($SecondBlob;MD5 digest)
If(($MD5_1#$MD5_2)|($Same=False))
ALERT("Diese beiden Dokumente sind unterschiedlich.")
End if
End if
End if
End if
End if
Diese Beispiele zeigen, wie Sie den Digest Schlüssel eines Textes finden können:
$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"
Dieses Beispiel zur Generate digest akzeptiert nur den Benutzer "admin" mit dem Kennwort "123", der nicht mit einem 4D Benutzer übereinstimmt:
// Datenbankmethode On REST Authentication
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
Produkt: 4D
Thema: Werkzeuge
Nummer:
1147
Erstellt: 4D v13
Geändert: 4D v14
4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)