Ein Hash ist eine Zeichenfolge mit fester Länge (Digest), die mithilfe einer Hash-Funktion aus Eingabedaten beliebiger Größe generiert wird. Der Vorgang ist einseitig – Sie können einen Hash nicht entschlüsseln oder umkehren, um die Originaldaten zu erhalten. Deshalb ist „Hash-Verschlüsselung“ eine falsche Bezeichnung. Hashing ist keine Verschlüsselung.
Gängige Hash-Algorithmen sind:
MD5 (veraltet für Sicherheitsanwendungen)
SHA-1 (veraltet)
SHA-256, SHA-512 (Teil der SHA-2-Familie)
SHA-3
bcrypt, scrypt, Argon2 (für sicheres Passwort-Hashing)
Hashing dient verschiedenen Zwecken der Cybersicherheit und Datenintegrität. Wichtige Gründe für die Verwendung von Hashing:
Datenintegrität: Stellt sicher, dass Daten nicht verändert wurden (z. B. Dateiprüfsummen).
Passwortspeicher: Sichere Speicherung von Passwörtern durch Vergleich von Hashes anstelle der Speicherung tatsächlicher Passwörter.
Digitale Signaturen: Hashes werden anstelle großer Dokumente signiert.
Effizienz: Kleine Hashwerte mit fester Größe lassen sich schneller vergleichen als große Datenblöcke.
Da Hashes deterministisch und schnell sind, eignen sie sich ideal für Verifizierungsaufgaben.
Die Verwendung einer Hash-Funktion umfasst:
Eingabe von Daten (z. B. einer Datei, eines Strings oder eines Passworts).
Verarbeitung der Daten mit einem Hash-Algorithmus.
Erhalten eines Digests, einer Zeichenfolge mit fester Größe, die die Eingabe eindeutig repräsentiert.
Für den Passwortschutz:
Kombinieren Sie das Passwort mit einem Salt (Zufallsdaten).
Wenden Sie eine sichere Hash-Funktion an (z. B. bcrypt oder Argon2).
Speichern Sie den resultierenden Hash und Salt sicher.
Da Hashes nicht rückgängig gemacht werden können, verifizieren Sie Eingaben (z. B. ein Passwort), indem Sie sie erneut hashen und den neuen Hash mit dem gespeicherten vergleichen.
Hashing sollte verwendet werden, wenn:
Die Datenintegrität muss überprüft werden (z. B. auf Beschädigung oder Manipulation).
Passwörter müssen sicher gespeichert werden (nicht verschlüsselt oder im Klartext).
Digitale Signaturen und Zertifikate werden verwendet (Hashing gewährleistet die Authentizität des Dokuments).
Ein schneller Datenvergleich ist erforderlich (z. B. in Hash-Tabellen). oder Caches).
Hashing ist nicht geeignet, wenn die Originaldaten später wiederhergestellt werden müssen – hierfür ist die Verschlüsselung gedacht.