std.crypto.sha1

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.


Funktionen

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