Avatar billede heyn Nybegynder
13. december 2014 - 23:05 Der er 9 kommentarer og
1 løsning

Dekryptering af md5

Hej Eksperter

Jeg har en kørende side hvor databasen en gang ved en fejl har fået kryptering med md5 i stedet for sha-265.
Er det muligt at lave et php script der dekrypterer md5 så det umiddelbart derefter kan bliver krypteret med sha-256.
Ellers vil brugerne jo skulle ændre password første gang de logger på efter jeg har ændret koden til sha-256.

Hilsen Christian
Avatar billede repox Seniormester
13. december 2014 - 23:21 #1
Du kan ikke dekryptere md5, da md5 ikke er kryptering men et en-vejs hash.
Og lad være med at bruge sha256 - brug noget med mere iteration f.eks. blowfish (bcrypt i php).

Det vil give god mening at bede dine brugere om at opdatere deres kodeord - du kan eventuelt sætte et flag i databasen der fortæller at det nuværende kodeord er MD5 og når brugeren så opdaterer sit kodeord, opdaterer du også flaget der nu fortæller at du bruger den rigtige hash fremfor md5.
Avatar billede arne_v Ekspert
14. december 2014 - 01:02 #2
Der er ikke nogen som forhindrer en i at lave mange iterationer med SHA-256.

Hvis man bruger crypt() fremfor manuel, saa er det ikke muligt at iterere faerre end 1000 gange.
Avatar billede arne_v Ekspert
14. december 2014 - 01:04 #3
Det er ikke noedvendigt at bede brugerne om at skifte password for at konvertere dem fra en hash algoritme til en anden.

Login er nok.
Avatar billede heyn Nybegynder
14. december 2014 - 01:28 #4
Problemet er at det ikke er mig der bestemmer om det skal være SHA256 el. andet, jeg skal bare gennemføre det.
Jeg har lavet en løsning hvor der ved login tjekkes om længde af hashet password i databasen har længden 32 og hvis det har det ja så ændres det til SHA256. Så vil alle brugeres password ændres første gang de logger ind.
Men så skal der tjekkes hver gang ind til alle brugere har logget ind, og det ville jo være noget nemmere hvis man lige kunne gøre det i et snuptag en gang for alle.
Avatar billede arne_v Ekspert
14. december 2014 - 01:57 #5
Du har valgt den rigtige loesning.

Snuptags loesningen er ikke mulig. Hvis den var mulig saa var der ingen grund til at hashe!!!!
Avatar billede heyn Nybegynder
14. december 2014 - 06:47 #6
OK

Jeg er ikke så trænet i hashing etc.
Jeg troede faktisk hashing udelukkende var for at skabe mulighed for hashing-søgning i stedet for at søge med b- el. b+-træer i db.
I har begge givet mig noget indsigt så læg begge et svar.
Avatar billede arne_v Ekspert
14. december 2014 - 14:43 #7
Den primaere grund til at hashe passwords i database er at hvis en hacker faar fat i databasen kan han ikke komme fra de hashede passwords til de rigtige passwords.

Det er ikke noedvendigt at data er hashede for at lave et hash index.
Avatar billede heyn Nybegynder
14. december 2014 - 16:47 #8
Nå - Det toede jeg - Jeg troede at hvis der f.eks. var mange 'Hans' i en tabel 'user' så ville hash index være dårligt og at det kun var godt hvis man i forvejen vidste at der var en jævn fordeling af data.

Mange tak for al jeres info

Smid et svar
Avatar billede arne_v Ekspert
14. december 2014 - 16:54 #9
Hashing til lookup er ikke effektivt ved mange dubletter.

Men da samme input giver samme hash, saa vil en pre-hashing ikke hjaelpe paa dette.
Avatar billede arne_v Ekspert
14. december 2014 - 16:54 #10
svar
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