Welke hash is veilig?

Status
Niet open voor verdere reacties.

5blabla5

Gebruiker
Lid geworden
27 apr 2009
Berichten
485
Hoi!

De laatste tijd verdiep ik me wat meer in hashes en hun veiligheid. Nu is mijn vraag welke hash het veiligst is.

Daarnaast nog een klein vraagje: Is de volgende methode om een hash te maken veilig voor mensen die dit proberen te kraken?
En hoeveel loops raden jullie aan?
PHP:
<?php

function mk_hash($string, $aantal=1, $salt='') {
 
// Is $aantal een getal?
if (!is_numeric($aantal)) {
$aantal = 1;
}
 
// While config
$i = 0;
 
// Start while
while($i < $aantal + 1) {
 
// Overschrijf $string met hash
$string = sha1(md5($i).md5(sha1(sha1($i).md5($string)).$salt).md5($i));
 
// Tel 1 bij $i op
$i++;
}
// echo $string
return $string;
}
 
// Voer functie uit
echo mk_hash("H3lpm|j", 4000000); // 34f603842b71fc120a8811198a99cd19db9a041a

?>
(sorry voor slordig php schrijven, ik hou niet zo van insprongen en speciale programma's... Liever kladblok :o)

Alvast bedankt! :thumb:
 
Laatst bewerkt:
Als eerste is de vraag waarvoor je het gaat gebruiken. Ten tweede voegt het niets to om twee keer te versleutelen zoals jij bijvoorbeeld doet:
Code:
<?php
md5(md5($x));
?>
Dit maakt voor een hacker/brute force echt niets uit. Als je een echte veilige codering zoekt is het missch beter als je gebruik maakt van bijvoorbeeld mdstring. Hierin kun je zelf de encryptie code in verwerken.
 
Als eerste is de vraag waarvoor je het gaat gebruiken. Ten tweede voegt het niets to om twee keer te versleutelen zoals jij bijvoorbeeld doet:
Code:
<?php
md5(md5($x));
?>
Dit maakt voor een hacker/brute force echt niets uit. Als je een echte veilige codering zoekt is het missch beter als je gebruik maakt van bijvoorbeeld mdstring. Hierin kun je zelf de encryptie code in verwerken.

In principe hoort dat script veiliger te zijn dan een simpele md5 hash, omdat hij hier loop-nummers, salts en zulke dingen mee neemt. Zo wordt de string zeg maar steeds langer (als het niet telkens gehashed werd).

Verder... Ik gebruik hashes voornamelijk voor inlogsystemen, of het versleutelen van gevoelige informatie.

Wat houd zo'n mdstring eigenlijk in?
 
Is sha1 op zichzelf niet al veilig genoeg? Zelfs md5 zou moeten voldoen, hoewel er geloof ik een aantal collisions zijn gevonden.
 
Klopt, een aantal mensen hebben 12 pdfjes met dezelfde hash kunnen maken...
Mij lijkt een combinatie wat veiliger, doordat er telkens weer een stukje bij wordt gevoegd, en de hash uiteindelijk alsnog op een sha1 hash uitkomt. In deze hash bevinden zich dan weer een boel hashes achter elkaar geplakt, die weer worden gehashed en in $string worden gestopt, die weer wordt samengevoegd met andere hashes, dat ook weer wordt gehashed en in $string wordt gestopt... enz.

Uiteindelijk kom je met dit script weer uit op sha1, alleen is de hash zelf nog niet persé alleen gehashed. Het aantal gemaakte loops wordt ook meegerekent, en ook een eventuele salt (als die aanwezig is)

Wat zijn hashes toch weer ingewikkeld X)
 
Duidelijk, maar het hele punt van eens hash is dat die niet terug te herleiden is. De enige reden die ik zou zien om vaker te hashen, is als ze het wel terug zouden kunnen rekenen.

Maar dan heb je weer het punt, als ze één hash terug kunnen rekenen, kunnen ze dat ook met een string die 10x gehashed wordt.

Ik denk overigens ook wel dat je moet kijken naar de praktische kant. Denk je dat je informatie op je site hebt die zo waardevol is dat mensen zoveel moeite gaan doen om een sha1 string te "unhashen"?

En het punt van Dinux is ook zeker waar. Voor een bruteforcer boeit het niets hoe vaak je hasht en wat voor ingewikkelde toestanden je ermee uithaalt...
 
Is sha1 op zichzelf niet al veilig genoeg? Zelfs md5 zou moeten voldoen, hoewel er geloof ik een aantal collisions zijn gevonden.
sha1 is in mijn opzicht veiliger maar tegenwoordig heb je sha256 sha512 maar nog geen php ondersteuning dus weet u echt niets te doen dat kan je die altijd eens implementeren.
 
Als je het moet vragen is sha1 waarschijnlijk veilig genoeg :)

Je kunt je beter zorgen maken over andere mogelijke beveiligingslekken, sha1 is vrijwel niet te kraken en echt het laatste wat een hacker zal proberen om binnen te komen.
 
Daarnaast zal deze hash in je database komen te staan, als de hacker daar al toegang tot heeft waarom zou hij dan de hashes van je gebruikers nog nodig hebben.
 
Als ie toegang heeft tot de database, dan is het verhaaltje afgelopen voor de site. Maar de gebruikers hebben het recht - mits ze een goed pw hebben - dat hun wachtwoorden goed worden bewaard. Helaas heeft md5 zijn tijd al gehad :(

Wat dachten jullie eigenlijk van mcrypt?

Als je als sleutel nou het pw neemt, en als string ook het pw, lijkt mij het een combinatie die niet te kraken valt! Of is mcrypt niet zo veilig? :rolleyes:
 
Als het eenmaal op brute force aankomt, duurt alles even lang.

En dit is waarom gebruikers aangeraden wordt op elk systeem een ander wachtwoord te nemen ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan