Avatar billede mat Nybegynder
27. november 2007 - 10:17 Der er 11 kommentarer og
3 løsninger

md5 spørgsmål

Davs

Jeg vil gerne generere en kode til alle brugere i mit system, der SKAL være unik. Til det bruger jeg md5( brugerens_email ) - email adresser skal være unikke.

Men jeg mangler bekræftigelse på at to email adresser ikke kan give den samme md5 streng. Er det korrekt opfattet?

mvh mat
Avatar billede tiller3 Nybegynder
27. november 2007 - 10:25 #1
Hvorfor bruger du ikke bare email addressen direkte :}

Men du skal huske paa, at hvis du bruger email addressen, til at lave md5 koden, saa er din kode absolut ikke hemlig, saa den boer ikke bruges som password, eller andre ting hvor det at kende koden vil give rettigheder, man ellers ikke ville have haft.

Og for at besvaere dit spoergsmaal: Det er usansynligt, men ikke teoratisk umuligt at der findes to email addresser, som giver samme md5 kode.
Avatar billede nielle Nybegynder
27. november 2007 - 10:26 #2
Det kan du ikke få - det er en af de helt fundamentale egenskaber ved MD5 at to forskellige input godt kan give samme output.

Men er det egenlig ikke lige meget? Hvad ville gå i stykker hvis det rent tilfældigt sket at de havde den samme kode?
Avatar billede AnyFellow Mester
27. november 2007 - 10:26 #3
Det er helt korrekt.
Avatar billede AnyFellow Mester
27. november 2007 - 10:33 #4
Hov, det skulle ikke være et svar.... Venligst afvis-
Avatar billede barklund Nybegynder
27. november 2007 - 10:36 #5
kfisker: hvad er korrekt? ;)

Sandsynligheden for en md5-kollision er meget lille og du skulle op på milliarder af brugere, får sandsynligheden for, at et ny-registreret brugers emails md5 ville kollidere med en af de eksisterende kommer op på bare 1%.

Jeg læste denne nydelige historie for nylig: http://www.miketaylor.org.uk/tech/law.html

Altså:

The theoretical possibility of a catastrophic occurrence in your program can be ignored if it's less likely than the entire installation being wiped out by meteor strike.

Jeg ville nu nok alligevel kode mig uden om det - bruge uniqid eller noget i den stil :)

--
Morten Barklund
Avatar billede barklund Nybegynder
27. november 2007 - 10:39 #6
(og det med milliarder af brugere kan du vist godt gange op til trillioner)
Avatar billede mat Nybegynder
27. november 2007 - 10:51 #7
tiller3 > Det er en automatisk genereret kode, som jeg ikke er interesseret i kan lures helt nemt.

nielle > Så ville to brugere ikke kunne skelnes fra hinanden (der er ikke nogen login procedure).

barklund > Det lyder jo egentlig ok, men kan godt være jeg skal bruge uniqid istedet, det er heldigvis ret nemt at rette :)

Smider i nogle svar?

mvh mat
Avatar billede nielle Nybegynder
27. november 2007 - 10:52 #8
Alternativt - opret brugeren i din base og sær auto_increment på id'et i din bruger tabel.
Avatar billede AnyFellow Mester
27. november 2007 - 10:54 #9
Det er korrekt at der godt kan dannes en ens md5-værdi af 2 e-mailadresser, men som barklund skriver er det ikke særlig sandsynligt.
Avatar billede mat Nybegynder
27. november 2007 - 11:19 #10
Jeg synes i skal smide nogle svar :)
Avatar billede nielle Nybegynder
27. november 2007 - 17:13 #11
Svar :^)
Avatar billede mat Nybegynder
28. november 2007 - 11:39 #12
Vil du ikke smide et svar Barklund?
Avatar billede barklund Nybegynder
28. november 2007 - 12:30 #13
Hov :)
Avatar billede barklund Nybegynder
28. november 2007 - 14:50 #14
:)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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