News Produkte Preise Download Service Sitemap
Startseite Produkte Kryptografie HASHMAC

Produkte


Objektbefehle Dateibefehle Sonderbefehle IFS-Befehle Spoolbefehle Datenspiegelung Übertragungsbefehle Protokollbefehle Systemüberwachung Quellbefehle Referenzbefehle Menüverwaltung Hilfetextgenerierung Befehlsverwaltung Kryptografie Systemanpassung ZIP-Archiverstellung Jobservicetool

HASHMAC ENCRYPT DECRYPT ENCSRCF DECSRCF SETRNTPWD

Kontakt Impressum Haftungsausschluss AGB

HASHMAC

Screenshots
Hash/MAC-Wert generieren (HASHMAC)

Hash/MAC-Wert generieren (HASHMAC)

- Umgebungen:
  • CL-Programm im Stapel (*BPGM)
  • CL-Programm interaktiv (*IPGM)
- Threadsicher: Nein
Parameter
Beispiele
Fehlernachrichten

Mit diesem Befehl können Hash-Werte, MAC-Werte (Message Authentication Code) nach bestimmten Algorithmen oder eine Zufallszahl generiert werden.

Hash-Werte, auch Streuwerte genannt, erzeugen aus einer üblicherweise großen Quellmenge eine wesentlich kleinere Zielmenge. Ein Hash-Wert kann auch als Fingerabdruck bezeichnet werden. Ein guter Hash-Algorithmus zeichnet sich dadurch aus, dass bei Änderung nur eines einzelnen Bits in der Quellmenge das Ergebnis einen komplett anderen Hash-Wert ergibt.

Hash-Algorithmen sind darauf optimiert, sogenannte Kollisionen zu vermeiden. Eine Kollision tritt dann auf, wenn zwei verschiedenen Quelldaten derselbe Schlüssel zugeordnet wird. Da der Hash-Wert in der Praxis meist kürzer als die originale Quellmenge ist, sind solche Kollisionen prinzipiell unvermeidlich, deshalb gibt es Verfahren zur Kollisionserkennung.

Bei einer Hash-Funktion geht es meistens darum, zu einer Eingabe beliebiger Länge (zum Beispiel ein Text) eine kurze, möglichst eindeutige Identifikation fester Länge (den Hash-Wert des Textes) zu finden.

Das ist etwa dann sinnvoll, wenn man zwei große, ähnliche Dateien vergleichen will: Anstatt die 25 Seiten eines Textes durchzusehen, ob auch wirklich jeder Buchstabe gleich ist, ist anhand der kurzen Hash-Werte der beiden Dokumente sofort zu sehen, ob diese höchstwahrscheinlich gleich oder mit Sicherheit verschieden sind.

Praktische Anwendung ist z.B. das Herunterladen einer Datei, zu der der Autor den Hash-Wert angegeben hat: Um zu prüfen, ob es Übertragungsfehler gegeben hat, braucht die Datei nicht etwa ein zweites Mal komplett heruntergeladen werden, sondern es muss nur der Hash-Wert gebildet und mit der Angabe des Autors verglichen werden.

Hash-Werte sind immer Einweg-Operationen. Aus dem Hash-Wert können die Ursprungsdaten nicht wiederhergestellt werden.

Anfang

Parameter

Parameter Beschreibung Auswahl Hinweis
INPUT Cl-Var für INPUT (2000) Zeichenwert Erforderlich, Position 1
OUTPUT Cl-Var für OUTPUT (2000) Zeichenwert Erforderlich, Position 2
INPLEN Eingabelänge 1-2000 Erforderlich, Position 3
ALGORITHM Algorithmus *MD5, *SHA1, *AES128, *AES192, *AES256, *RANDOM Erforderlich, Position 4
PWD Kennwort Zeichenwert, *NONE Wahlweise, Position 5
Anfang

Cl-Var für INPUT (2000) (INPUT)

Gibt den Namen der CL-Variablen im Programm an, in der die Zeichenkette enthalten ist, aus dem ein Hash-Wert erzeugt werden soll.

Dies ist ein erforderlicher Parameter.

Zeichenwert
Die Zeichenkette kann aus mindestens 1 bis maximal 2000 Zeichen bestehen. Als Zeichen können alle 256 Hexwerte verwendet werden.
Anfang

Cl-Var für OUTPUT (2000) (OUTPUT)

Gibt den Namen der CL-Variablen im Programm an, in der die generierten Daten gestellt werden. Als Ergebnis kann ein Hash-Wert oder eine Zufallszahl geliefert werden.

Dies ist ein erforderlicher Parameter.

Zeichenwert
Im Rückgabewert können alle 256 Hexwerte vorkommen. Je nach gewählten Algorithmus variiert die Länge des Rückgabewertes.
Anfang

Eingabelänge (INPLEN)

Die Eingabelänge bestimmt, wieviele Zeichen des Parameters INPUT verarbeitet werden sollen.

Dies ist ein erforderlicher Parameter.

Zahl
Wert zwischen 1 und 2000 angeben.
Anfang

Algorithmus (ALGORITHM)

Hier wird angegeben, nach welchem Verfahren oder Algorithmus ein Hash-Wert generiert werden soll. Die Länge des generierten Wertes ist vom jeweiligen Algorithmus abhängig.

Dies ist ein erforderlicher Parameter.

*MD5
Die Erstellung des Hash-Wertes erfolgt nach dem Message Digest Algorithmus 5 (MD5). Der Rückgabewert besteht immer aus 128 Bits (16 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.
*SHA1
Die Erstellung des Hash-Wertes erfolgt nach dem Secure Hash Algorithmus (SHA-1). Der Rückgabewert besteht immer aus 160 Bits (20 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.
*AES128
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 128 Bit. Die Eingabelänge muß mindestens 16 oder ein Vielfaches von 16 betragen. Der Rückgabewert besteht immer aus 128 Bits (16 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*AES192
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 192 Bit. Die Eingabelänge muß mindestens 24 oder ein Vielfaches von 24 betragen. Der Rückgabewert besteht immer aus 192 Bits (24 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*AES256
Die Erstellung des MAC-Wertes erfolgt nach dem Advanced Encryption Standard (AES) Algorithmus mit 256 Bit. Die Eingabelänge muß mindestens 32 oder ein Vielfaches von 32 betragen. Der Rückgabewert besteht immer aus 256 Bits (32 Zeichen) und kann sämtliche Hexzeichen von x'00' bis x'FF' beinhalten.

Für diesen Algorithmus ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

*RANDOM
Mit dieser Funktion kann eine Zufallszahl generiert werden. Ein Eingabewert ist für die Generierung nicht erforderlich, jedoch bestimmt die Eingabelänge die Länge der Zufallszahl. Die erstellte Zufallszahl kann aus bis zu 2000 Zeichen bestehen.

Für diese Funktion ist das kostenlose Lizenzprogramm 5722-AC3 (Crypto Access Provider 128-bit) bzw. ab i5/OS V5R4M0 das kostenlose Lizenzprogramm 5722-SS1 Option 35 (CCA Cryptographic Service Provider) erforderlich.

Anfang

Kennwort (PWD)

Für alle Algorithmen kann für die Generierung des Hash-/MAC-Wertes ein Kennwort angegeben werden.

*NONE
Es wird kein Kennwort für die Generierung des Wertes verwendet. Das Ergebnis ist ein Hash-Wert.
Kennwort
Kennwort angeben, welches für die Generierung des Wertes verwendet werden soll. Das Kennwort kann aus allen Hexzeichen von x'00' bis x'FF' bestehen. Das Ergebnis ist ein MAC-Wert.
Anfang

Beispiele für HASHMAC

Beispiel 1: Generierung Hash-Wert nach MD5

Mit folgender Anweisung wird aus dem Feldinhalt von &PASSWORD ein Hash-Wert nach MD5 generiert.

 HASHMAC INPUT(&PASSWORD) OUTPUT(&HASHVAL)
         INPLEN(10) ALGORITHM(*MD5)

Beispiel 2: Generierung Hash-Wert mit CALL

Mit folgendem Programmaufruf wird aus dem Feldinhalt von &MESSAGE ein MAC-Wert nach AES 256 Bit generiert. Dabei wird für die Generierung das Kennwort F25lj verwendet.

 CALL PGM(HASHMAC) PARM(&MESSAGE &HASHVAL 128 '*AES256' 'F25lj')

Anfang

Fehlernachrichten

Unbekannt
Anfang