GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich den Hash-Algorithmus, der zum Hashen von Passwörtern verwendet wird?

Ich habe das funktionierende Passwort und kann den Hash sehen (/etc/passwd). Wie finde ich den Hash-Algorithmus, der zum Hashen des Passworts verwendet wird, ohne manuell verschiedene Algorithmen auszuprobieren, bis ich eine Übereinstimmung finde?

Akzeptierte Antwort:

Dies ist in crypt(3) dokumentiert ’s Manpage, die Sie über finden können shadow(5) ’s Manpage oder passwd(5) 's. Diese Links sind für moderne Linux-basierte Systeme geeignet; die Beschreibung dort ist:

Wenn Salz ist eine Zeichenfolge, die mit den Zeichen „$id beginnt $“
gefolgt von einer Zeichenfolge, die optional mit „$“ abgeschlossen wird, dann hat das Ergebnis
die Form:

$id$salt$encrypted

Kennung identifiziert die anstelle von DES verwendete Verschlüsselungsmethode und bestimmt dann
, wie der Rest des Passwort-Strings interpretiert wird. Die
folgenden ID-Werte werden unterstützt:

ID  | Method
─────────────────────────────────────────────────────────
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)

Blowfish, auch bekannt als bcrypt , wird auch durch Präfixe 2 identifiziert , 2b , 2x , und 2y (siehe Dokumentation von PassLib).

Wenn also ein gehashtes Passwort im obigen Format gespeichert ist, können Sie den verwendeten Algorithmus finden, indem Sie sich die id ansehen; andernfalls ist es crypt ’s Standard-DES-Algorithmus (mit einem 13-stelligen Hash) oder „big“ crypt ’s DES (erweitert zur Unterstützung von Passwörtern mit 128 Zeichen, mit Hashes mit einer Länge von bis zu 178 Zeichen) oder BSDI Extended DES (mit einem _ Präfix gefolgt von einem 19-stelligen Hash).

Einige Distributionen verwenden libxcrypt, das einige weitere Methoden unterstützt und dokumentiert:

  • y :yescrypt
  • gy :gost-yescrypt
  • 7 :verschlüsseln
  • sha1 :sha1crypt
  • md5 :SunMD5

Andere Plattformen unterstützen andere Algorithmen, überprüfen Sie also den crypt Manpage dort. Zum Beispiel OpenBSDs crypt(3) unterstützt nur Blowfish, das es anhand der id identifiziert „2b“.


Linux
  1. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  2. Linux:So finden Sie den für ein Gerät verwendeten Gerätetreiber

  3. CentOS / RHEL :So ändern Sie den Passwort-Hashing-Algorithmus

  4. Wie man die Ergebnisse von 'find' unter Linux an mv weiterleitet

  5. Wie finde ich den Standard-Dateimanager?

So finden Sie die Portnummer eines Dienstes in Linux

So finden Sie die IP-Adresse einer virtuellen KVM-Maschine

So ermitteln Sie die Gesamtgröße eines Verzeichnisses in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

So finden Sie die Liste der installierten Repositories in Linux

Wie finde ich den my.cnf-Speicherort von MySQL?