====== 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 |