GNU/Linux >> Znalost Linux >  >> Linux

Jak najít hashovací algoritmus používaný k hashování hesel?

Mám funkční heslo a vidím hash (/etc/passwd). Jak najdu hašovací algoritmus použitý k hašování hesla, aniž bych ručně zkoušel různé algoritmy, dokud nenajdu shodu?

Přijatá odpověď:

To je zdokumentováno v crypt(3) manuálovou stránku, kterou najdete přes shadow(5) manpage nebo passwd(5) s. Tyto odkazy jsou vhodné pro moderní systémy založené na Linuxu; popis je zde:

Pokud sůl je znakový řetězec začínající znaky „$id $“
následovaný řetězcem volitelně ukončeným „$“, pak má výsledek
tvar:

$id$salt$encrypted

id identifikuje použitou metodu šifrování namísto DES a to pak
určuje, jak bude interpretován zbytek řetězce hesla. Jsou podporovány
následující hodnoty id:

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, také známý jako bcrypt , je také identifikován předponami 2 , 2b , 2x a 2y (viz dokumentace PassLib).

Pokud je tedy hashované heslo uloženo ve výše uvedeném formátu, můžete použitý algoritmus najít pohledem na id; jinak je to crypt výchozí algoritmus DES (s 13znakovým hashem) nebo „velký“ crypt 's DES (rozšířený tak, aby podporoval 128znaková hesla, s hashem o délce až 178 znaků), nebo BSDI rozšířený DES (s _ prefix následovaný 19znakovým hashem).

Některé distribuce používají libxcrypt, který podporuje a dokumentuje několik dalších metod:

  • y :yescrypt
  • gy :gost-yescrypt
  • 7 :scrypt
  • sha1 :sha1crypt
  • md5 :SunMD5

Jiné platformy podporují jiné algoritmy, proto zkontrolujte crypt tam manuálová stránka. Například crypt(3) OpenBSD podporuje pouze Blowfish, kterou identifikuje pomocí id "2b".


Linux
  1. Linux:Jak najít ovladač zařízení používaný pro zařízení?

  2. CentOS / RHEL :Jak změnit algoritmus hashování hesla

  3. Jak najít všechny řídké soubory v Linuxu

  1. Jak najdu umístění spustitelného souboru v C?

  2. Jak zjistím maximální velikost zásobníku?

  3. Jak zjistím UUID souborového systému

  1. Jak zjistit, zda je disk SSD nebo HDD v Linuxu

  2. Jak auditovat oprávnění pomocí příkazu find

  3. Jaký hash algoritmus se používá pro hesla uložená ve stínu v 11.10?