21/5/2013

MD5 van wachtwoord op command prompt

Filed under: — pinguim @ 10:14 am

Met MD5 wordt een berekening op een gegeven gedaan, en dat geeft een tekencombinatie van vaste lengte.

Er zijn 2 veel voorkomende gebruiken:

  • Een “checksum” berekenen van een bestand. Als je wil weten of een bestand overeenkomt met een “origineel” waarvan je de “checksum” hebt, kan van van het in vraag gestelde bestand opnieuw de checksum berekenen, en die vergelijken met de andere checksum. Als die hetzelfde zijn, waren de bestanden ook hetzelfde. (theoretisch is wel een verschil mogelijk). Wordt veel gebruikt bij Linux-distributies om een ge-download bestand te checken tov het origineel, waarvan de md5 checksum gepubliceerd is.
  • een tekst enkele-richting “versleutelen”, een mogelijkheid die veel gebruikt wordt om een “check” op het wachtwoord te bewaren in databanken van web-applicaties. Komt op hetzelfde neer als hierboven, alleen wordt de checksum berekend op een “string”, een tekenreeks.

Gebruik in CMS:
Het effect is dat in de datbank de “hash” wordt opgeslagen van het wachtwoord.
Bv: wachtwoord = “wachtwoord”, md5 hash = 701f33b8d1366cde9cb3822256a62c01
Vanuit de cms wordt de md5 berekend, zelf hoef je niet in te grijpen.
Bij het inloggen wordt op het opgegeven wachtwoord de md5sum berekend en vergeleken met die in de database. Als ze hetzelfde zijn mag de login doorgaan. Voordeel: het wachtwoord zelf wordt niet opgeslagen, en kan dus uit een “dump” van de database niet afgeleid worden.

MD5 berekenen
Om de md5 zelf te berekenen bestaat een commando op de command prompt: md5sum (“md5” op OS-X?)

je kan het commando rechtstreeks uitvoeren op een bestand:

~/Documents> md5sum wachtwoord
c125e00adfb9249aa65af1aef0e4953e wachtwoord
~/Documents> cp wachtwoord wachtwoord.txt
~/Documents> md5sum wachtwoord.txt
c125e00adfb9249aa65af1aef0e4953e wachtwoord.txt

Opgelet, dat is niet hetzelfde als het uitvoeren op een “string”:

~/Documents> echo -n "wachtwoord" | md5sum
701f33b8d1366cde9cb3822256a62c01

Dit is de md5 van die tekstlijn (zonder ‘enter’ vandaar de -n), het vorige is de md5 van het “bestand” – hoewel de bestandsnaam dus geen rol speelt.

Laat je die er wel inzitten, dan krijg je hetzelfde resultaat als het bestand:

~/Documents> echo wachtwoord | md5sum
c125e00adfb9249aa65af1aef0e4953e -

Want immers:
~/Documents> echo wachtwoord
wachtwoord
~/Documents>

Na de echo krijg je een nieuwe lijn. Wat je niet wil met:

~/Documents> echo -n wachtwoord
wachtwoordwim@wimbox2:~/Documents>

Powered by WordPress