MD5 in db?

  • Wat een vraag... Natuurlijk is het slim! In ieder geval beter dan plain text. Daarna is de vraag of je een goed paswoord hebt wat niet makkelijk achterhaald kan worden, na aanleiding van je md5-hash.

  • Ik zal zeggen wat NIET slim is:
    Het wachtwoord als plaintext opslaan in de database!


    Zet het als gesalte hash (sha512 of iets wat er qua sterkte op lijkt) in de database en je bent al behoorlijk goed bezig.

  • Hashes zijn NIET decodeerbaar...
    Wel te brutforcen (zoeken naar iets wat de zelfde hash geeft)
    Gooi en nog een salt bij en je hebt rainbow tables (databases met voor en na situaties) zo goed als uitgeschakeld...
    Maak de salt random op de een of andere manier (zorg dat je deze wel weer terug kunt vinden) en je hebt een grote kans dat je nog beter bent...


    dragontje124
    Ik gebruik veel liever sha512!

  • Citaat van Darsstar

    Hashes zijn NIET decodeerbaar...
    Wel te brutforcen (zoeken naar iets wat de zelfde hash geeft)
    Gooi en nog een salt bij en je hebt rainbow tables (databases met voor en na situaties) zo goed als uitgeschakeld...
    Maak de salt random op de een of andere manier (zorg dat je deze wel weer terug kunt vinden) en je hebt een grote kans dat je nog beter bent...


    nee ze zijn niet te decoderen maar bruteforcen is het ook niet echt meer, je kan het misschien "efficient bruteforcen" noemen, ik quote van wikipedia:

    Citaat


    In 2007 is het een groep wetenschappers gelukt om twaalf verschillende PDF-bestanden met dezelfde hashcode[1] te maken, zogenaamde hash collisions. De auteurs hebben daarmee aangetoond dat MD5 beter niet meer gebruikt kan worden als een verificatiemethode. Op 30 december 2008 gaven zij hiervan een praktijkvoorbeeld[2], door een SSL autoriteitscertificaat te vervalsen voor demonstratiedoeleinden.


    sha512 is ook prima ;) iig een hash van de sha famillie is veel veiliger dan md5

  • Citaat van Jannick

    Hoe veilig is sha512 op een schaal van 1 tot 10? En wat word er precies bedoeld met een salt?


    sha512 is op dit moment nog niet gekraakt dus ik geef het een 9 (omdat er toch altijd zogenaamde collisions zijn, dat zijn waarden die dezelfde hash geven, ook al is de kans hierop heeeeeel klein). Een voorbeeld van een salt:

    PHP
    md5($wachtwoord."blaat");

    daar is blaat de salt, zo zijn de hashwaarden niet meer op te zoeken in rainbow tables

  • Ik heb nou dit.


    PHP
    <?php
    $string = "eindhoven";
    $hash = hash('sha512', $string);
    echo $hash;
    ?>


    en deze string komt eruit.


    PHP
    062bf922408a98178d3ac3b14a4ad37451d921d51ef48b177c714feb009a0c815f0234407b50a539b72fce2570212f4b36f45608e045c795c525a534f174d01a


    Is dit wel veilig :P?


  • yup das prima :)
    edit: hier stond een hoop bullshit :p

  • je moet Salt & Pepper combineren met Sha512
    (gewoon een woordje zoals: koeieren voor zetten (en aan het einde nog een leuk woordje)
    Dan heb je rainbow tables ook uitgeschakeld, en als je dat woordje tegen niemand zegt, bruteforces ook een stuk lastiger gemaakt.

  • Citaat van dragontje124

    hoe groter de hash hoe meer mogelijkheden dus hoe minder kans op collisions


    *gaat er even van uit dat er geen maximale opslag capaciteit is*
    Aangezien er oneindig veel mogelijkheden. (door geen maximale opslag)
    Wat krijg je als je oneindig deelt door het aantal mogelijke hashes?
    emhe...
    Oneindig? Een zoveelste deel van een steeds groter wordende oneindigheid?


    http://php.net/manual/en/function.sha1.php
    De eerste comment (van boven af gezien) gaat over random salts :p


  • Je gaat er dus allereerst van uit dat er geen maximale opslag capaciteit is, klopt dus niet :P
    ten tweede, oneindig delen door oneindig, daar kan van alles uit komen zelfs 12 ofzo want de ene oneindig is anders dan de andere oneindig (delen door oneindig werkt dus niet hetzelfde als delen door een bekend getal)
    ik zal even kijken naar die comment ;)

  • Citaat van dragontje124

    delen door oneindig werkt dus niet hetzelfde als delen door een bekend getal


    Je deelt toch echt door een bekend (ok, berekenbaar) getal hoor...
    Het aantal mogelijke hashes staat vast per algoritme...


    Het gaat maar om het idee he :p
    Theoretisch gezien zijn er voor elke mogelijke hash oneindig veel plaintext dingen die die hash kunnen maken...
    *ja, weer een leuk aantal assumpties, blijft leuk*

  • Citaat van Darsstar


    Je deelt toch echt door een bekend (ok, berekenbaar) getal hoor...
    Het aantal mogelijke hashes staat vast per algoritme...


    Het gaat maar om het idee he :p
    Theoretisch gezien zijn er voor elke mogelijke hash oneindig veel plaintext dingen die die hash kunnen maken...
    *ja, weer een leuk aantal assumpties, blijft leuk*


    hmm wacht ik heb weer eens niet goed gelezen :p. het klopt inderdaad dat er oneindig aantal verschillende inputs zijn om dezelfde hash te maken, maar dit is dus gewoon omdat er oneindig verschillende input mogelijk is (alleen al omdat je de lengte van de plain text van 0 t/m oneindig kan variëren), dus ja op dat punt heb je eigenlijk wel gelijk :p

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!