Mitä eroa on tässä muodossa:
Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0
ja seuraavassa:
5f4dcc3b5aa765d61d8327deb882cf99
Ja myös
Kuinka muuttaa ensimmäinen hajautusmuoto toiseksi?
Kiitos eteenpäin.
Kommentit
Vastaus
Ensimmäinen esimerkki näyttää varjotiedosto -lomakkeelta osoitteessa: ID (admin
) Algoritmi (1
= MD5) Suola (ei mitään) Hash (oLN1UCc1Y3T30QkMcKMSx0
), hashilla, joka näyttää olevan Base64-muodossa.
Toinen (5f4dcc3b5aa765d61d8327deb882cf99
) näyttää olevan 128-bittinen kuusikulmajono, joka vastaa MD5-hashia hyvin.
Jos kuitenkin molemmat muunnetaan binaariksi & ja sitten takaisin vastakkaisiin muotoihin, nämä kaksi hajautusriviä eivät täsmää:
-
Hex-merkkijonon (
5f4dcc3b5aa765d61d8327deb882cf99
) edustaman binääriarvon Base64 onX03MO1qnZdYdgyfeuILPmQ
. -
Päinvastoin, base64-hashin (
oLN1UCc1Y3T30QkMcKMSx0
) kuusikulmio ona0b3755027356374f7d1090c70a312c7
.------- Edit -----
Kuten user1686 huomautti: oLN1UCc1Y3T30QkMcKMSx0 on MD5-salaus, joka on tuhat MD5-kierrosta, ja jokaisella kierroksella on lisäominaisuuksia. Jos molemmat hajautusmerkit ovat itse asiassa samasta salasanasta, suoran MD5-hajautusjärjestelmän pitäisi olla mahdollista muuntaa vastaavaksi no-salt MD5Crypt ohittamalla MD5Cryptin ensimmäinen MD5-laskelma ja syöttämällä sille hash salasanan sijaan.
Vastaa
Viimeisen $: n jälkeinen osa on base64-koodattu, mikä on kohtuullisen kompakti (neljästä merkistä tulee kolme tavua) tapa edustaa binääridataa tavallisina, tulostettavina merkeinä (ei ASCII-ohjauskoodeja tai mitään, mikä vaatii suurta bittiä). Toinen hash on yksinkertaisesti heksakoodattu, mikä on vähemmän tehokasta (neljästä merkistä tulee kaksi tavua), mutta helpompi lukea, etenkin ohjelmoijille (jotka käyttävät hekssiä koko ajan).
MUOKKAA: Lisäksi ensimmäinen algoritmi on melkein varmasti md5 crypt , joka on iteroitu MD5, jossa on joitain lisäasioita tehty. Siten se ei aio tuottaa samaa lähtöä kuin perus MD5 tietylle tulolle. Ja todellakin näemme, että se ei: jos muunnat osan viimeisen dollarin jälkeen hex-arvoksi, tulee ulos a0b3755027356374f7d1090c70a312c7. Se saattaa myös (at ainakin osittain), koska mielestäni md5crypt käyttää mukautettua base64: ää, jolla on samat merkit kuin tavallisella base64: llä eri järjestyksessä.
Ensimmäinen hash on esimerkki / etc / shadow salasanamuodosta. $1
tarkoittaa MD5-salausta, ja minkään seuraavan kahden $ -merkin välisen puute tarkoittaa, että se on suolaamatonta. Meillä ei ole tällaista tietoa toisesta; se voi olla suolattu tai mahdollisesti eri salasana, erilainen hajautusalgoritmi tai molemmat. On kuitenkin todennäköisempää olla paljas MD5 kuin md5crypt.
Muokattu vastaamaan MD5: n ja md5crypt: n välistä eroa
Kommentit
- Vaikka se olisi ' suolatonta, $ 1 $ ei ole silti pelkkä MD5 – se ' s md5crypt , johon sisältyy 1000 kierrosta MD5: tä ja joitain muita mausteita.
- Toinen hash on vain md5 (' salasana ').
echo -n 'password' | md5sum
tuottaa5f4dcc3b5aa765d61d8327deb882cf99
Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0
. Löysin myös samanlaisen tapauksen täältä linkki