Was ist Hashing? Eine vollständige Erklärung von Hash-Funktionen
Schnelle Antwort
Hashing wandelt jede Eingabe mithilfe einer Einwegfunktion in eine Ausgabe fester Größe (Hash) um. Die gleiche Eingabe erzeugt immer den gleichen Hash; Unterschiedliche Eingaben erzeugen unterschiedliche Hashes (Kollisionsresistenz). Hashing wird für Datenintegrität, Passwortspeicherung und digitale Signaturen verwendet. Verwenden Sie unseren kostenlosen Hash-Generator, um SHA-256-, SHA-1- und MD5-Hashes in Ihrem Browser zu berechnen.
Einführung
Beim Hashing werden Eingabedaten beliebiger Größe in eine Ausgabe fester Größe umgewandelt, die als Hash oder Digest bezeichnet wird. Eine Hash-Funktion ist der Algorithmus, der diese Konvertierung durchführt. Kryptografische Hash-Funktionen verfügen über spezielle Eigenschaften, die sie für die Datenintegrität, Passwortspeicherung, digitale Signaturen und Inhaltsadressierung nützlich machen. Im Gegensatz zur Verschlüsselung ist Hashing einseitig – Sie können die Eingabe nicht aus dem Hash wiederherstellen. Zu den gängigen Hash-Funktionen gehören SHA-256 (in Bitcoin und TLS verwendet), SHA-3 und die älteren MD5 und SHA-1 (jetzt aus Sicherheitsgründen defekt).
Schritt für Schritt
-
Verstehen Sie die Eigenschaften von Hash-Funktionen
Kryptografische Hash-Funktionen haben vier Schlüsseleigenschaften: (1) Deterministisch – die gleiche Eingabe liefert immer die gleiche Ausgabe. (2) Schnell zu berechnen. (3) Einweg – es ist nicht möglich, Eingaben aus dem Hash wiederherzustellen. (4) Kollisionsresistent – es ist unmöglich, zwei verschiedene Eingaben mit demselben Hash zu finden. (5) Lawineneffekt – kleine Eingabeänderungen verändern die Ausgabe drastisch.
-
Lernen Sie gängige Algorithmen
SHA-256 (256-Bit-Ausgabe, 64 Hexadezimalzeichen) ist der moderne Standard – wird in Bitcoin, TLS und digitalen Signaturen verwendet. SHA-512 ist sicherer, aber langsamer. SHA-3 ist die neueste Familie. MD5 (128-Bit) und SHA-1 (160-Bit) sind aus Kollisionsresistenz fehlerhaft und sollten aus Sicherheitsgründen nicht verwendet werden.
-
Unterscheiden Sie Hashing von Verschlüsselung
Hashing ist einseitig – Sie können es nicht umkehren. Die Verschlüsselung erfolgt in beide Richtungen – Sie können mit einem Schlüssel entschlüsseln. Hashing dient der Integrität und Überprüfung; Verschlüsselung dient der Vertraulichkeit. Verwenden Sie niemals einen Hash zum Speichern von Daten, die Sie wiederherstellen müssen.
-
Verwenden Sie Hashing richtig
Um die Datenintegrität zu gewährleisten, hashen Sie die Daten und vergleichen Sie sie mit einem bekanntermaßen guten Hash. Verwenden Sie für Passwörter einen langsamen Key-Stretching-Hash (bcrypt, scrypt, Argon2) mit einem eindeutigen Salt – nicht den rohen SHA-256, der zu schnell und anfällig für Brute-Force-Angriffe ist.
Beispiele
SHA-256 Hash
Eingang: Hello, World!
Ausgabe: dffd6021bb2bd5b0af676290809ec008dfca50a8d29e6ac0a52c2d7e9f0a3b0c
Lawineneffekt
Eingang: Hallo, Welt! (vs Hallo, Welt?)
Ausgabe: Völlig anderer Hash trotz Änderung um ein Zeichen
MD5 Hash (defekt, nur Legacy)
Eingang: Hello, World!
Ausgabe: ed0760733d7505e9ceacf8af225020ac
Häufige Probleme
- Verwendung von MD5 oder SHA-1 aus Sicherheitsgründen – beide sind aus Gründen der Kollisionssicherheit fehlerhaft. Verwenden Sie aus Sicherheitsgründen SHA-256 oder stärker.
- Hashing von Passwörtern ohne Salt – identische Passwörter erzeugen identische Hashes und ermöglichen so Rainbow-Table-Angriffe. Verwenden Sie bcrypt, scrypt oder Argon2 mit einem einzigartigen Salt.
- Verwechslung von Hashing mit Verschlüsselung – Hashing ist einseitig (kann nicht rückgängig gemacht werden); Die Verschlüsselung erfolgt bidirektional (kann mit einem Schlüssel entschlüsselt werden).
- Erwarten, dass Hashes eindeutig sind – Kollisionen sind theoretisch möglich, aber für sichere Algorithmen praktisch nicht realisierbar (SHA-256 hat 2^256 mögliche Ausgaben).
Tipps
- Verwenden Sie SHA-256 für die Überprüfung der Datenintegrität, Inhaltsadressierung und digitale Signaturen.
- Verwenden Sie für die Passwortspeicherung bcrypt, scrypt oder Argon2 – nicht raw SHA-256. Diese Algorithmen verfügen über eine Schlüsseldehnung, um roher Gewalt standzuhalten.
- Hashing ist einseitig – verwenden Sie es niemals zum Speichern von Daten, die Sie wiederherstellen müssen. Verwenden Sie Verschlüsselung für vertrauliche Daten.
- Verwenden Sie unseren Hash-Generator, um SHA-256 und andere Hashes sofort in Ihrem Browser zu berechnen.