Was ist eine kryptografische Hash-Funktion
Eine kryptografische Hash-Funktion nimmt eine Eingabe beliebiger Größe und erzeugt eine Ausgabe fester Größe (den Hash). SHA-256 erzeugt einen 256-Bit-Hash (64 Hexadezimalzeichen). Die Funktion ist deterministisch, einwegig und avalanche-sensitiv.
Grundlegende Eigenschaften
- Determinismus: gleiche Eingabe → gleicher Hash
- Einwegigkeit: Eingabe aus Hash zu ermitteln ist rechnerisch nicht machbar
- Avalanche-Effekt: 1 Bit Änderung in der Eingabe ändert ~50% der Ausgabe-Bits
- Kollisionsresistenz: extrem schwierig, zwei Eingaben mit demselben Hash zu finden
SHA-256 vs MD5
MD5 (128 Bit) ist seit 2004 für Kollisionsangriffe anfällig. SHA-1 (160 Bit) wurde 2017 kompromittiert. SHA-256 gilt weiterhin als sicher und ist Teil der NIST-standardisierten SHA-2-Familie.
Wichtigste Anwendungsfälle
- Dateiintegrität (Prüfsumme)
- Digitale Signaturen (DSA, RSA, ECDSA)
- SSL/TLS-Zertifikate
- Blockchain (Bitcoin verwendet SHA-256)
- HMAC für Request-Authentifizierung
Passwort-Hashing: kein direktes SHA-256 verwenden
SHA-256 ist für die Passwort-Hashing zu schnell. Verwenden Sie immer langsame, gesalzene Algorithmen: bcrypt (Work Factor ≥ 12), Argon2id oder scrypt.