Diese Erweiterung bietet Funktionen für die direkte oder inkrementelle Verarbeitung von Nachrichten beliebiger Länge unter Verwendung verschiedener Hash-Algorithmen. Dazu gehören auch die Erzeugung von HMAC-Werten und Schlüsselableitungen einschließlich HKDF und PBKDF2.
Es gibt im Wesentlichen drei Kategorien von Hash-Algorithmen. Siehe hash_algos() für eine vollständige Liste.
"crc32b"
oder
"adler32"
):
Diese werden zur Berechnung von Prüfsummen verwendet, was z. B. nützlich
ist, um Übertragungsfehler zu erkennen. Sie sind in der Regel sehr
schnell. Da diese Algorithmen oft Werte erzeugen, die leicht zu
"erraten" sind oder manipuliert werden können, um Kollisionen zu
erzeugen, sind sie für kryptografische Zwecke völlig ungeeignet.
Einige der frühen kryptographischen Algorithmen wie
"md4"
, "md5"
und
"sha1"
haben sich als anfällig für
Kollisionsangriffe erwiesen und es wird allgemein empfohlen, diese
nicht mehr für kryptographische Anwendungen zu verwenden.
Siehe auch die FAQ zum sicheren Hashing von Passwörtern für Informationen über bewährte Verfahren bei der Verwendung von Hash-Funktionen im Umgang mit Passwörtern.