Hva er forskjellen mellom dette formatet:
Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0
og følgende:
5f4dcc3b5aa765d61d8327deb882cf99
Og også,
Hvordan gjør du det første hash-formatet til det andre?
Takk i forhånd.
Kommentarer
Svar
Det første eksemplet ser ut som en skyggefil form at: ID (admin
) Algoritme (1
= MD5) Salt (none) Hash (oLN1UCc1Y3T30QkMcKMSx0
), med hasjen i det som ser ut til å være Base64-format.
Den andre (5f4dcc3b5aa765d61d8327deb882cf99
) ser ut til å være en hexstreng på 128 bits som samsvarer med å være en MD5-hash som Vel.
Men når du konverterer begge til binære & og deretter tilbake til motsatte formater, stemmer de to hashene ikke overens:
-
Base64 av den binære verdien som representeres av hexstrengen (
5f4dcc3b5aa765d61d8327deb882cf99
) erX03MO1qnZdYdgyfeuILPmQ
. -
Omvendt er heksestrengen til base64-hash (
oLN1UCc1Y3T30QkMcKMSx0
)a0b3755027356374f7d1090c70a312c7
.------- Edit -----
Som user1686 påpekte: oLN1UCc1Y3T30QkMcKMSx0 er MD5crypt, som er tusen runder MD5 med tillegg i hver runde. Hvis begge disse hashene faktisk er fra samme passord, bør det være mulig å konvertere den rette MD5-hashen til den tilsvarende uten salt MD5Crypt ved å omgå den første MD5-beregningen i MD5Crypt og mate den hash i stedet for passordet.
Svar
Delen etter den siste $ er base64-kodet, noe som er en rimelig kompakt måte (fire tegn blir tre byte) til å representere binære data som vanlige, utskrivbare tegn (ikke ASCII-kontrollkoder eller noe som krever høy bit). Den andre hash er ganske enkelt hex-kodet, noe som er mindre effektivt (fire tegn blir to byte), men lettere å lese, spesielt for programmerere (som bruker hex hele tiden).
EDIT: I tillegg er den første algoritme er nesten helt sikkert md5 crypt , som er en iterert MD5 med noen ekstra ting gjort. Dermed vil den ikke produsere den samme utgangen som base MD5 for en gitt inngang. Og vi ser faktisk at den ikke gjør det: Hvis du konverterer delen etter den siste $ til hex, kommer det ut a0b3755027356374f7d1090c70a312c7. Det kan også (på minst delvis) være fordi jeg tror md5crypt bruker en tilpasset base64, som har de samme tegnene som normal base64 i en annen rekkefølge.
Den første hash er et eksempel på / etc / shadow passordformatet. $1
betyr MD5crypt, og mangelen på noe mellom de to neste $ tegnene betyr at den er usaltet. Vi har ingen slik info for andre; det kan være saltet, eller muligens et annet passord, annen hash-algoritme eller begge deler. Det er imidlertid mer sannsynlig å være bar MD5 enn md5crypt.
Redigert for å gjenspeile forskjellen mellom MD5 og md5crypt
Kommentarer
- Selv om det ' er usaltet, er $ 1 $ fremdeles ikke bare bar MD5 – det ' s md5crypt , som involverer 1000 runder med MD5 med noen andre krydder lagt til.
- Den andre hash er bare md5 (' passord ').
echo -n 'password' | md5sum
produserer5f4dcc3b5aa765d61d8327deb882cf99
Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0
. Jeg fant også en lignende sak her lenke