27. december 2011 - 00:20Der 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 ?
omkring det med salt hvad er det ? :) og hvordan tilføjer jeg md5+salt?
Synes godt om
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.
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.
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.
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.
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.
@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.
@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. :)
@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.
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)
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.
"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 =)
"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 :)
okay jeg luukker selv den her samtale hvis i mener at i skal have noget for det så tag kontakt til mig PÅ PM :)
Synes godt om
Ny brugerNybegynder
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.