SHA-1 (Secure Hash Algorithm 1, NIST FIPS 180-4) erzeugt einen 160-Bit-Hashwert (20 Byte) aus beliebigen Eingabedaten. Obwohl SHA-1 für kryptografische Signaturen als veraltet gilt (kollisionsanfällig seit 2017), ist es in Legacy-Systemen, Checksummen und der MySQL-Authentifizierung (mysql_native_password) weiterhin im Einsatz.
Die Unit enthält neben der reinen SHA-1-Funktion auch SHA1MySQLNativePassword, die das MySQL-spezifische Doppel-Hash-Verfahren (SHA1(SHA1(password))) implementiert, wie es für das ältere MySQL-Authentifizierungsprotokoll benötigt wird.
Einsatzbereiche: MySQL-Verbindungsauthentifizierung, Integritätsprüfungen von Daten, Git-Objektidentifikatoren und Kompatibilität mit älteren Systemen.
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
sha1Rotl32(x: int64, n: int64): int64 | priv | Bitrotation links um n Stellen |
sha1Store(buf: int64, idx: int64, val: int64): void | priv | Schreibt 32-Bit-Word in Puffer |
sha1Load(buf: int64, idx: int64): int64 | priv | Liest 32-Bit-Word aus Puffer |
sha1Block(state: int64, block: int64): void | priv | Verarbeitet einen 512-Bit-Block |
SHA1(data: int64, len: int64, out: int64): void | pub | Berechnet SHA-1-Hash der Eingabe |
SHA1MySQLNativePassword(password: int64, passLen: int64, scramble: int64, out: int64): void | pub | MySQL-Doppel-Hash-Authentifizierung |