Jaký je ' rozdíl mezi těmito hash MD5?

Jaký je rozdíl mezi tímto formátem:

Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0 

a následujícím:

5f4dcc3b5aa765d61d8327deb882cf99 

A také,

Jak převést první hash formát na druhý?

Díky předem.

Komentáře

  • Pochybuji, že první příklad je jen hash. Vypadá to, že obsahuje uživatelské jméno v jasné a případně další informaci . Odkud jste to vzali? Opravdu není možné je znovu umýt, aniž byste věděli hodnotu prostého textu.
  • To je ' to, co jsem ' Zajímalo by mě to. Ale dostal jsem to po spuštění routeru na mém routeru pomocí Kali Linux a výstup přesně říká, že > > Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0. Podobný případ jsem našel i zde odkaz

Odpověď

První příklad vypadá jako stínový soubor at: ID (admin) Algoritmus (1 = MD5) sůl (none) Hash (oLN1UCc1Y3T30QkMcKMSx0), s hash ve formátu Base64.

Druhý (5f4dcc3b5aa765d61d8327deb882cf99) se jeví jako hexadecimální řetězec 128 bitů shodný s tím, že je hash MD5 jako dobře.

Avšak při převodu obou na binární & a zpět na jejich opačné formáty se tyto dva hashe neshodují:

  • Base64 binární hodnoty představované hexadecimálním řetězcem (5f4dcc3b5aa765d61d8327deb882cf99) je X03MO1qnZdYdgyfeuILPmQ.

  • Hex řetězec hash base64 (oLN1UCc1Y3T30QkMcKMSx0) je naopak a0b3755027356374f7d1090c70a312c7.

     ------- Edit ----- 

Jako user1686 zdůraznil: oLN1UCc1Y3T30QkMcKMSx0 je MD5crypt, což je tisíc kol MD5 s doplňky v každém kole. Pokud jsou oba tyto hashe ve skutečnosti ze stejného hesla, mělo by být možné převést přímý hash MD5 na jeho ekvivalent no-salt MD5Crypt tak, že obejdete první výpočet MD5 v MD5Crypt a místo hesla zadáte hash.

Odpovědět

Část za posledním $ je zakódována v base64, což je rozumně kompaktní (čtyři znaky se stávají třemi bajty) způsob, jak reprezentovat binární data jako běžné tisknutelné znaky (ne kontrolní kódy ASCII nebo cokoli, co vyžaduje vyšší bit). Druhý hash je jednoduše kódován hexadecimálně, což je méně efektivní (čtyři znaky se stávají dvěma bajty), ale čitelnější, zejména pro programátory (kteří hex používají stále).

EDIT: Navíc první Algoritmus je téměř jistě md5 crypt , což je iterovaná MD5 s několika dalšími věcmi. Proto pro daný vstup nebude produkovat stejný výstup jako základní MD5. A skutečně vidíme, že ne: pokud převedete část poté, co poslední $ na hex, vyjde a0b3755027356374f7d1090c70a312c7. To také může (na alespoň částečně), protože si myslím, že md5crypt používá vlastní base64, který má stejné znaky jako normální base64 v jiném pořadí.

První hash je příkladem formátu hesla / etc / shadow. $1 znamená MD5crypt a nedostatek čehokoli mezi dalšími dvěma znaky $ znamená, že je nesolený. Za druhé nemáme žádné takové informace; mohlo by to být solené, nebo možná jiné heslo, jiný hash algoritmus nebo obojí. Pravděpodobnější je však být holý MD5 než md5crypt.

Upraveno tak, aby odráželo rozdíl mezi MD5 a md5crypt

Komentáře

  • I když je ' s nesolený, $ 1 $ stále není jen holý MD5 – ' s md5crypt , což zahrnuje 1000 kol MD5 s přidáním některých dalších koření.
  • Druhý hash je jen md5 (' heslo '). echo -n 'password' | md5sum vytváří 5f4dcc3b5aa765d61d8327deb882cf99

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *