Avatar billede tobrukDk Novice
27. december 2011 - 00:20 Der er 31 kommentarer og
1 løsning

md5 eller sh1 hvad er bedste

Hej

jeg vil lige høre hvad der et bedste md5 eller sh1 ? der mange som siger at sh1 er svært at hack sig ind på eller lign i den still men md5 er meget nemt ?

hvad kan i sig til mig omkring det? og hvad vil være bedste for mig ?
Avatar billede heinzdmx Nybegynder
27. december 2011 - 00:33 #1
Hvad der er bedst kommer jo helt an på hvad det skal bruges til.

DEt er min forståelse at til kodeord så er SHA1 at foretrække, men til almindelig hashing så er MD5 helt fint da det vistnok er lidt hurtigere
Avatar billede Slettet bruger
27. december 2011 - 00:37 #2
sha1 er bedre end md5. Er det til at gemme passwords? Så kan du gøre det endnu bedre ved at tilføje salt.
http://en.wikipedia.org/wiki/Salt_%28cryptography%29
På den måde undgår du at man kan bruge hashkoden (sha1 og md5) i en rainbow table til at finde et kodeord.
http://en.wikipedia.org/wiki/Rainbow_table
Avatar billede Slettet bruger
27. december 2011 - 00:39 #3
Vil også tro at md5+salt er bedre end sha1 uden salt.
Avatar billede tobrukDk Novice
27. december 2011 - 00:52 #4
omkring det med salt hvad er det ? :) og hvordan tilføjer jeg md5+salt?
Avatar billede Slettet bruger
27. december 2011 - 01:07 #5
I en database ville du have to kolonner, et for salt og et for hashkoden af salt+password (om det så er md5, sha1 eller noget tredje er op til dig). Saltet er en tilfældig genereret streng (for hver bruger) som du tilføjer til kodeordet inden du udregner hashkoden.

Så det eneste du har til at validere kodeordet, er saltet og hashkoden. Så når du får kodeordet i klartekst fra en klient, så laver du en ny streng = salt (fra databasen) + kodeordet (fra klienten), og så laver du hashkoden ud fra den nye streng og sammenligner med den hashkode du har gemt i databasen.
Avatar billede tobrukDk Novice
27. december 2011 - 01:12 #6
nååår okay :) det giver en god forstås :)
Avatar billede Slettet bruger
27. december 2011 - 01:12 #7
Fandt også en ældre guide her på eksperten:
http://www.eksperten.dk/guide/1051
Avatar billede tobrukDk Novice
27. december 2011 - 01:17 #8
Fuck jegskal bare læse meget man når men det må blive i morgen når jeg få tid :D takker for hjælpen Tolamaps ! :D
Avatar billede The_Buzz Novice
27. december 2011 - 08:45 #9
Du kan jo også godt salte + sha1.

Anyways - lad være med at gemme klartekst password NOGET sted. Det er top mål af amatør'isme :)
Avatar billede The_Buzz Novice
27. december 2011 - 08:52 #10
$secret_string = "()223jkdf"()#"#JKjksdJK!"#njknasdkaj2"#"!K#"; // Global secondary salt

$random_salt =  str_makerand (4,10,1,1,1); // Random funktion, se funktion nedenfor. Denne skal også gemmes i databasen med sha1 password

$tmp_pwd = $_POST['password'];

$sha_salted_pass = sha1($secret_string . $random_salt . $tmp_pwd); // rækkefølgen kan du jo variere så det bliver mere uforståelig.







function str_makerand ($minlength, $maxlength, $useupper, $usespecial, $usenumbers)
{
$charset = "abcdefghijklmnopqrstuvwxyz";
if ($useupper) $charset .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if ($usenumbers) $charset .= "0123456789";
if ($usespecial) $charset .= "~@#$%^*()_+-={}|][";
if ($minlength > $maxlength) $length = mt_rand ($maxlength, $minlength);
else $length = mt_rand ($minlength, $maxlength);
for ($i=0; $i<$length; $i++) $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];
return $key;
}
Avatar billede tobrukDk Novice
27. december 2011 - 17:24 #11
The_buzz Whaaat.. intet af det siger mig noget som helst. jeg tror bare at jeg holder mig til md5 :) jeg vil helst tag det still og roligt :)
Avatar billede heinzdmx Nybegynder
27. december 2011 - 17:47 #12
Jeg spørger igen: Hvad skal det bruges til?
Avatar billede danco Nybegynder
27. december 2011 - 20:03 #13
Hvis du ikke vil bruge salt eller noget andet, så synes jeg at du bør bruge SHA1 til passwords.
Hvad buzz postede var bare en måde hvorpå du kunne højne sikkerheden ved at lave en tilfældig string til hvert password som du tager med i din hashing og kombinerer det med en global/fastdefineret string. Lidt ala 2 gange salt.
Avatar billede larste Nybegynder
27. december 2011 - 21:25 #14
Hvis det er til password-hashing, så vil jeg klart fraråde at bruge md5 og sha1, deres eksekverings-hastighed er simpelthen for hurtig.

En moderne computer med et forholdsvist kraftigt grafikkort kan ved hjælp af bruteforce køre disse metoder mange gange i løbet af ingen tid, og derved finde frem til den hash du har i din db. Det er selvfølgelig afhængigt af hvilke tegn der er tillads i passwordet og hvor langt det er.

Tag hellere et kig på crypt-metoden og især blowfish-algoritmen.
Avatar billede larste Nybegynder
27. december 2011 - 21:34 #15
Avatar billede coderdk Praktikant
27. december 2011 - 23:22 #16
Brug sha1.
Avatar billede tobrukDk Novice
27. december 2011 - 23:37 #17
det skal bruges til at høre omkring hvad der er bedste :)
Avatar billede heinzdmx Nybegynder
28. december 2011 - 00:14 #18
Jeg tror ikke helt du har forstået mig Jesper.

Alt efter hvad du ønsker at bruge det til har MD5 og SHA1 hver sine fordele.

MD5 er hurtigt at beregne og bruges derfor ofte til checksumme af filer, mens SHA1 er "lidt" langsommere og derfor ikke så hurtigt kan brydes med bruteforce.

Tilføjer du Salt til din SHA1 hashing så vil en angriber ikke kunne bruge en rainbow table (samling af hash og deres afkodning) til noget, men skal i stedet til at generere en hel ny table for det, laver du samtidigt salt random så skal den regeres for hvert password hvilket gør systemet endnu sværere at angribe.


Jeg vil mene at til passwords er SHA1 en nem løsning der er et tradeof mellem hurtighed og nemhed - der er indbygget funktioner i php til det.

Hvad jeg ville gøre ville være noget lig #10 http://www.eksperten.dk/spm/953988#reply_7884081


Det kan godt være det tager noget tid at sætte dig ind i det, men det er noget du skal sætte dig ind i på et tidspunkt så hvorfor ikke sætte sig ind i det nu.
Avatar billede coderdk Praktikant
28. december 2011 - 00:19 #19
sha1 er væsentligt bedre end md5 - man bør også altid bruge salt, som forhindrer brugen af rainbow tables.

Du kan også bruge f.eks. SHA256 - Funktionen hash er enablet som default i PHP: http://dk2.php.net/hash - den har hash algoritmer :)
Avatar billede olebole Juniormester
28. december 2011 - 16:53 #20
<ole>

@larste: Hvordan kan en funktions gode performance blive et problem for dig?

Under alle omstændigheder kalder du vel et sleep på et halvt eller helt sekund, når brugeren logger ind. Det har efterhånden været almindelig praksis i mange år, og det gør det overordentlig surt at forsøge sig med brute force - hvorimod det ikke generer brugeren i væsentlig grad.

/mvh
</bole>
Avatar billede larste Nybegynder
28. december 2011 - 17:00 #21
@olebole: Ved at kalde sleep er der ikke noget problem. Synes dog ikke rigtigt at det fremgår af nogle af de andre svar. Det er nu en gang svært for tråd-starter at gætte almindelig praksis, hvis ingen folk fortæller det.

Crypt, har med blowfish-algoritmen, cost-parameteren der også kan hjælpe med hastigheden.

Men det glæder mig  at jeg ikke er den eneste der er bekymret over dette. :)
Avatar billede larste Nybegynder
28. december 2011 - 17:05 #22
@olebole: Ellers har jeg ingen problemer med en funktions gode perfomance. Jeg mener dog også at jeg skriver, at det er ved det snævre topic password-hashing, jeg har et problem.
Avatar billede olebole Juniormester
28. december 2011 - 17:08 #23
Ved at kalde sleep er der ikke noget problem. Synes dog ikke rigtigt at det fremgår af nogle af de andre svar. Det er nu en gang svært for tråd-starter at gætte almindelig praksis, hvis ingen folk fortæller det. >> Præcis! Så meget desto mindre grund til at gøre det modsatte  *o)
Avatar billede larste Nybegynder
28. december 2011 - 17:28 #24
@olebole: Men hvorfor kalde en ekstra metode, hvis man nu kan løse det med et kald?
Avatar billede olebole Juniormester
28. december 2011 - 17:36 #25
Hold nu op! Både du og jeg ved, jeg ikke behøver at forklare mere, ikk'?  *o)
Avatar billede larste Nybegynder
28. december 2011 - 17:37 #26
Tjae, ud fra dit svar føler jeg mig nu ualmindelig dum, for jeg vil da gerne vide hvad der er galt med min metode?
Avatar billede olebole Juniormester
28. december 2011 - 17:50 #27
Skal vi ikke være enige om, at du lægger ud med at forkaste to funktioner - udelukkende med det argument, at de performer for godt?

Dernæst prøver du en sær bortforklaring med en begrundelse, at andre ikke havde oplyst spørgeren om 'almindelig praksis'.

Der er absolut intet i vejen med Crypt eller Blowfish - men resten af din argumentation virker lidt desparat
Avatar billede larste Nybegynder
28. december 2011 - 18:10 #28
Vi er enige om at jeg forkaster to metoder, når der er tale om password-hashing, da de performer for godt. Dette er min mening når det kommer til hashing af passwords. Jeg mener stadig at min første kommentar i denne tråd giver udtryk for dette.

Jeg er helt med på, at ved at kalde sleep under login-proceduren, gør man det noget sværere at bruge brute-force - jeg mener dog ikke at jeg forsøger at bortforklare noget (hvad skal jeg bortforklare, min personlige mening om password-hashing?). Det som du kalder bortforklaring kalder jeg en kommentar til din kommentar, hvis jeg derimod ikke har formuleret mig godt nok, er det selvfølgelig min fejl.
Avatar billede olebole Juniormester
28. december 2011 - 19:53 #29
"Vi er enige om at jeg forkaster to metoder, når der er tale om password-hashing, da de performer for godt. Dette er min mening når det kommer til hashing af passwords. Jeg mener stadig at min første kommentar i denne tråd giver udtryk for dette." >> Det er præcis det, jeg mener, du har alle gode grunde til at forsøge at bortforklare - og det var det, jeg troede, du var ude i. Det var tydeligvis et udslag af overvurdering fra min side.

Anyway, så lad os i det mindste være enige om, at vi er dybt uenige  =)
Avatar billede larste Nybegynder
28. december 2011 - 20:06 #30
"Det er præcis det, jeg mener, du har alle gode grunde til at forsøge at bortforklare - og det var det, jeg troede, du var ude i. Det var tydeligvis et udslag af overvurdering fra min side."
- Jeg forstår simpelthen ikke hvad du mener her, hvad er det for grunde jeg har til at bortforklare? Og behøver du at komme med nedladende kommentarer såsom at du overvurderer mig?

"Anyway, så lad os i det mindste være enige om, at vi er dybt uenige  =)"
- Det kan vi ihvertfald blive enige om :)
Avatar billede olebole Juniormester
28. december 2011 - 20:11 #31
- fint  =)
Avatar billede tobrukDk Novice
29. december 2011 - 05:08 #32
okay jeg luukker selv den her samtale hvis i mener at i skal have noget for det så tag kontakt til mig PÅ PM :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester