4D v16.3

Generate digest

Home

 
4D v16.3
Generate digest

Generate digest 


 

Generate digest ( Param ; Algorithmus ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Param  BLOB, Textvariable in Blob oder Textvariable, deren Digest Schlüssel ermittelt werden soll
Algorithmus  Lange Ganzzahl in Algorithmus des Rückgabeschlüssels:
0 = MD5 Digest, 1 = SHA1 Digest, 2 = 4D Digest
Funktionsergebnis  Text in 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:

  • MD5 ist eine Reihe von 16 Bytes, die als String mit 32 hexadezimalen Zeichen zurückgegeben wird.
  • SHA-1 ist eine Reihe von 20 Bytes, die als String mit 40 hexadezimalen Zeichen zurückgegeben wird.
  • 4D bestimmt den internen Algorithmus von 4D zum Verschlüsseln von Benutzer Kennwörtern. Dieser Algorithmus ist besonders im Rahmen der Datenbankmethode On 4D Mobile Authentication hilfreich, wenn Sie Ihre eigene Benutzerliste verwenden wollen.

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

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Werkzeuge
Nummer: 1147

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v13
Geändert: 4D v14

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)