Fejl kryptering

Tags:    php

Hej

Jeg har været i gang med at lavet et mindre community deraf et login system. Men er ved er gå død i det, fordi personer som er oprettet ikke kan logge på, har brugt det samme login system som jeg altid bruger uden ændringer.

har gået og haft en formodning om det er min kryptering den er gal med.
Jeg benytter Sha1(); både ved oprettelsen og ved login.
Besluttede mig så for at jeg vile lave en lille test med en Sha1 kryptering og så udskrive den direkte!

Udtaget fra min DB
Fold kodeboks ind/udKode 

Men lavede så mit test side hvor jeg både md5 og sha1 kryterede kodeordene.
der gav det helt ændre resultater

Fold kodeboks ind/udKode 


Den ser lidt anerledes ud, så kom til og tænke på om den ændre en krypterings streng pr. gang man opretter en.

Nogen som kan forklare mig dette lille sjove problem ?



Indlæg senest redigeret d. 03.09.2008 21:07 af Bruger #8516
9 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Nej Sha1() og Md5() giver altid det samme resultat. (Hvorfor bruger du ikke md5? det er sikrest). Kan det være fordi du måske har brugt et (halv)færdigt og puttet salt på?

Det problem burde ikke være der... Lav nogle debugs på siden hvor du opretter hashen (udskriv den direkte) og prøv derefter at loade den ud fra databasen igen. Lav også sådan en på login siden.



SHA1 og MD5 er ikke tidsbestemt. Det er en bestemt algoritme der giver det samme result hver eneste gang. Hvis disse algoritmer ikke gjorde dette, ville man ikke kunne bruge dem til sammenligning i forskellige hensigter.

Men det giver jo masser af mening at du får forskellig result med SHA1 alene og sammen med MD5.

hash1 = sha1('1') = '356a192b7913b04c54574d18c28d46e6395428ab'
hash2 = sha1(md5('1')) = '0937afa17f4dc08f3c0e5dc908158370ce64df86'
hash1 != hash2

sha1 giver naturligvis det rene resultat.
men sha1 med md5 giver en hash af et md5 hash.

.. side note...
MD5 er langt fra sikrest. SHA1 kryptering overgår MD5 med mange længder.
dertil fåes SHA også i en 256 bits kryptering, naturligvis kaldet sha256.



Indlæg senest redigeret d. 03.09.2008 22:25 af Bruger #10216

.. side note...
MD5 er langt fra sikrest. SHA1 kryptering overgår MD5 med mange længder.
dertil fåes SHA også i en 256 bits kryptering, naturligvis kaldet sha256.


Sikker? Har altid troet at og fået at vide at MD5 var sikrest.. :S
Nå... Mener du så SHA1() funktionen?


MD5 er en 128bit hash og sha1 er en 160bit hash. Derfor er der flere kombinationer for sha1 og det gør den mere sikker, så simpelt er det.



Uanset hvilke af de to du vælger eller en kobination der af, er det en god ide at bruge salt, atlså at tilføje en teskt som kun du kender til den tekst der skal hashe.



Indlæg senest redigeret d. 04.09.2008 22:37 af Bruger #65

.. side note...
MD5 er langt fra sikrest. SHA1 kryptering overgår MD5 med mange længder.
dertil fåes SHA også i en 256 bits kryptering, naturligvis kaldet sha256.


Sikker? Har altid troet at og fået at vide at MD5 var sikrest.. :S
Nå... Mener du så SHA1() funktionen?



Hmm er godt klar over at en MD5 hash ikke kan sammenlignes med SHA1 hashet.
Men brugte kun MD5 til at tjekke om jeg havde fået ændret det i min opret bruger eller login og det havde jeg.

Men af ovenstående kryptering er begge fortaget med et sha1 hashet.

er der nogen som kan forklare mig hvorfor det er 2 vidt forskellige resultater ?

GNU sha256, hvor kan man læse om den henne. har søgt efter den på php.net men det lykkedes det mig kun at finde sha1



Indlæg senest redigeret d. 04.09.2008 10:40 af Bruger #8516
Argh...vil I ikke nok lade være med at kalde hashing funktionerne for kryptering ?

Hashing er one way...dvs. at du ikke kan få den oprindelige streng ud fra en hash. Med kryptering kan du få det oprindelige ved at dekryptere. Stor forskel.




MD5 er en 128bit hash og sha1 er en 160bit hash. Derfor er der flere kombinationer for sha1 og det gør den mere sikker, så simpelt er det.


Nej. Så simpelt er det ikke. Der er fundet en hel del problemer med MD5 algoritmen, som gør den usikker, da det bliver nemmere at finde kollisioner (forskellige data som giver samme MD5 sum). Og det er uafhængigt af størrelsen af den genererede sum. To forskellige algoritmer, som begge genererer 128 bit hashes, er altså ikke per definition lige stærke.



Har nu fundet ud af at uanset hvad jeg skriver i password feltet blir det hashet på samme måde

Robert Larsen: heh beklager jeg har kaldt det kryptering, er self godt klar over det ikke er det



t