Was bedeuten die Zahlen und Buchstaben in Hash-Werten zwischen den Dollarzeichen und welche Varianten gibt es im Detail?

Antwort

Die Zahlen und Buchstaben zwischen den Dollarzeichen ($) in Hash-Werten sind Teil des sogenannten **Hash-Identifikators** oder **Hash-Formats**. Sie geben an, welches Hash-Verfahren verwendet wurde und enthalten oft zusätzliche Parameter wie die Anzahl der Runden (Iterations), den Salt oder andere Einstellungen. ### Aufbau eines Hash-Werts Ein typischer Hash-Wert, wie er z.B. in `/etc/shadow` unter Linux für Passwörter gespeichert wird, sieht so aus: ``` $ID$PARAMETER$HASH ``` #### 1. **ID** (Hash-Algorithmus-Kennung) Die erste Zahl nach dem `$` gibt an, welcher Algorithmus verwendet wurde: - `$1$` – **MD5** - `$2a$`, `$2b$`, `$2y$` – **Blowfish (bcrypt)** - `$5$` – **SHA-256** - `$6$` – **SHA-512** Beispiel: `$6$` steht für SHA-512. #### 2. **Parameter** (z.B. Salt, Runden) Nach der zweiten `$` kommt meist der **Salt** (eine zufällige Zeichenkette zur Erhöhung der Sicherheit). Bei manchen Algorithmen (z.B. bcrypt) steht hier auch die Anzahl der Runden (cost factor): - Bei bcrypt: `$2b$12$` – `2b` ist die Version, `12` ist der cost factor (Anzahl der Runden). - Bei SHA-512: `$6$salt$` – `salt` ist die Salt-Zeichenkette. #### 3. **Hash** Nach dem letzten `$` folgt der eigentliche Hash-Wert. --- ### Beispiele **SHA-512:** ``` $6$salt$hashwert ``` - `$6$` = SHA-512 - `salt` = Salt - `hashwert` = gehashter Wert **bcrypt:** ``` $2b$12$salt$hashwert ``` - `$2b$` = bcrypt Version - `12` = cost factor (Runden) - `salt` = Salt - `hashwert` = gehashter Wert --- ### Übersicht der wichtigsten IDs | ID | Algorithmus | Besonderheiten | |---------|---------------------|---------------------------------------| | $1$ | MD5 | veraltet, unsicher | | $2a$ | bcrypt (Blowfish) | cost factor, Salt | | $2b$ | bcrypt (Blowfish) | aktuelle bcrypt-Version | | $2y$ | bcrypt (Blowfish) | selten, spezielle Korrektur | | $5$ | SHA-256 | Salt | | $6$ | SHA-512 | Salt | --- **Weitere Informationen:** - [Wikipedia: Crypt (C)](https://de.wikipedia.org/wiki/Crypt_(C)) - [bcrypt-Format](https://en.wikipedia.org/wiki/Bcrypt) - [Passwort-Hashing in /etc/shadow](https://wiki.ubuntuusers.de/passwd/#Hash-Algorithmen) Falls du einen bestimmten Hash-Wert hast, kannst du anhand der ersten Zeichen nach dem `$` erkennen, welches Verfahren und welche Parameter verwendet wurden.

KI fragen

Verwandte Fragen

Welche Hash-Algorithm-Identifier gibt es und was bedeuten sie?

Hash Algorithm Identifier sind standardisierte Kennungen, die angeben, welcher Hash-Algorithmus in einem bestimmten Kontext verwendet wird. Sie kommen z B. in Kryptografie-Standards wie X.509-Zertifik... [mehr]

Welche Möglichkeiten gibt es unter Linux zur Datenverschlüsselung und welche Vor- und Nachteile haben diese?

Unter Linux gibt es verschiedene Möglichkeiten, Daten zu verschlüsseln. Die wichtigsten Methoden sind: ### 1. **Festplattenverschlüsselung (Full Disk Encryption)** #### Tools: - **LUKS... [mehr]

Ist TLS eine Ende-zu-Ende Verschlüsselung?

TLS (Transport Layer Security) ist keine Ende-zu-Ende-Verschlüsselung im klassischen Sinne, sondern eine Transportverschlüsselung. **Erklärung:** - **Transportverschlüsselung (wie... [mehr]

Wie funktioniert das mit öffentlichen und privaten Schlüsseln bei SSH?

Bei SSH (Secure Shell) wird ein asymmetrisches Verschlüsselungsverfahren verwendet, das auf einem Schlüsselpaar basiert: einem privaten und einem öffentlichen Schlüssel. **So funk... [mehr]

Wie speichere ich vertrauliche Daten sicher in einer internen Datenbank?

Um vertrauliche Daten sicher auf deiner eigenen internen Datenbank zu speichern, solltest du folgende grundlegende Maßnahmen beachten: 1. **Datenverschlüsselung** - **Im Ruhezustand (... [mehr]

Erstellt sshfs auf dem entfernten Rechner ein verschlüsseltes Verzeichnis oder wird nur die Verbindung verschlüsselt?

Mit **sshfs** wird **kein verschlüsseltes Verzeichnis** auf dem entfernten Rechner angelegt. Es wird lediglich die **Verbindung** zwischen deinem lokalen Rechner und dem entfernten Rechner versch... [mehr]

Ist es möglich, mit den OpenSSL-Kommandos s_client und s_server ein verschlüsseltes Verzeichnis auf demselben Rechner zu betreiben?

Mit den OpenSSL-Kommandos `s_client` und `s_server` kannst du eine verschlüsselte Verbindung zwischen zwei Prozessen herstellen – typischerweise über das Netzwerk (auch lokal über... [mehr]

Wie funktioniert Kompression im Zusammenhang mit eCryptfs?

eCryptfs ist ein kryptografisches Dateisystem für Linux, das auf der Ebene des Dateisystems arbeitet und einzelne Dateien verschlüsselt. Kompression und Verschlüsselung sind zwei unters... [mehr]

Ab welcher Version des NTFS-Dateisystems unter Unix ist Verschlüsselung möglich?

Unter Unix-ähnlichen Betriebssystemen (wie Linux) wird das NTFS-Dateisystem in der Regel über das Open-Source-Projekt **NTFS-3G** eingebunden. Die native Verschlüsselung von NTFS, wie s... [mehr]

Wie arbeitet man beim Reiser4-Dateisystem unter Unix mit Verschlüsselung?

Das Reiser4-Dateisystem unterstützt von Haus aus keine integrierte Verschlüsselung wie beispielsweise das moderne ext4 mit fscrypt. Um Verschlüsselung mit Reiser4 unter Unix/Linux zu nu... [mehr]