Care este ' diferența dintre aceste hash-uri MD5?

Care este diferența dintre acest format:

Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0 

și următoarele:

5f4dcc3b5aa765d61d8327deb882cf99 

Și, de asemenea,

Cum să transformați primul format hash în al doilea?

Vă mulțumim avans.

Comentarii

  • Mă îndoiesc că primul exemplu este doar un hash. Se pare că conține numele de utilizator în informațiile clare și, eventual, în alte informații. . De unde l-ați obținut? Nu este cu adevărat posibil să refaceți fără să știți valoarea textului clar.
  • Asta ' este ceea ce eu ' Mă întreb și eu. Dar am obținut asta după ce am rulat router-ul pe routerul meu folosind Kali Linux și rezultatul spune exact că > > Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0. De asemenea, am găsit un caz similar aici link

Răspuns

Primul exemplu arată ca un formular fișier umbră la: ID (admin) Algoritm (1 = MD5) Sare (none) Hash (oLN1UCc1Y3T30QkMcKMSx0), cu hash-ul în ceea ce pare a fi formatul Base64.

Al doilea (5f4dcc3b5aa765d61d8327deb882cf99) pare a fi un șir hexagonal de 128 de biți în concordanță cu a fi un hash MD5 ca bine.

Cu toate acestea, convertindu-le pe ambele în binar & apoi înapoi la formatele opuse, cele două hash-uri nu se potrivesc:

  • Base64 a valorii binare reprezentate de șirul hexagonal (5f4dcc3b5aa765d61d8327deb882cf99) este X03MO1qnZdYdgyfeuILPmQ.

  • În schimb, șirul hexagonal al hashului base64 (oLN1UCc1Y3T30QkMcKMSx0) este a0b3755027356374f7d1090c70a312c7.

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

Ca user1686 a subliniat: oLN1UCc1Y3T30QkMcKMSx0 este MD5crypt, adică o mie de runde de MD5 cu extras la fiecare rundă. Dacă ambele hașe sunt de fapt din aceeași parolă, ar trebui să fie posibilă conversia hashului MD5 drept în echivalentul său MD5Crypt fără sare ocolind primul calcul MD5 în MD5Crypt și alimentându-l cu hash în loc de parolă.

Răspuns

Partea după ultimul $ este codificată în bază64, care este o modalitate rezonabilă de compactă (patru caractere devin trei octeți) pentru a reprezenta datele binare ca caractere comune, tipăribile (nu coduri de control ASCII sau orice altceva care necesită bitul înalt). Al doilea hash este pur și simplu codificat hexagonal, care este mai puțin eficient (patru caractere devin două octeți), dar mai ușor de citit, mai ales pentru programatori (care folosesc hex hex tot timpul).

EDIT: În plus, primul algoritmul este aproape sigur md5 criptă , care este un MD5 iterat cu câteva lucruri suplimentare făcute. Astfel, nu va produce aceeași ieșire ca baza MD5 pentru o intrare dată. Și, într-adevăr, vedem că nu: dacă convertiți partea după ultimul $ în hex, iese a0b3755027356374f7d1090c70a312c7. cel puțin parțial), deoarece cred că md5crypt folosește o bază64 personalizată, care are aceleași caractere ca și baza normală 64 într-o ordine diferită.

Primul hash este un exemplu de format de parolă / etc / shadow. $1 înseamnă MD5crypt, iar lipsa a ceva între următoarele două $ caractere înseamnă că este nesărat. Nu avem astfel de informații pentru a doua; ar putea fi sărată sau, eventual, o altă parolă, un alt algoritm hash sau ambele. Totuși, este mai probabil să fie MD5 pur decât md5crypt.

Editat pentru a reflecta diferența dintre MD5 și md5crypt

Comentarii

  • Chiar dacă ' este nesărat, $ 1 $ încă nu este doar MD5 gol – este ' s md5crypt , care implică 1000 de runde de MD5 cu alte condimente adăugate.
  • Al doilea hash este doar md5 (' parolă '). echo -n 'password' | md5sum produce 5f4dcc3b5aa765d61d8327deb882cf99

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *