23. januar 2013 - 18:55
Der er
20 kommentarer og 1 løsning
Encrypt samt encrypt/decrypt
Lige lidt spørgsmål omkring krypering og dekryptering For begge områder herunder, skal det være noget som er indbygget i PHP 5.3 og frem Encrypt hash: Jeg skal krypterer nogle passwords til et lille system. md5 med salt bliver vel efterhånden ikke brugt mere. Sha1 kan jeg også læse mig til ikke bruges mere. 1,1: Men hvad skal man så bruge? 1,2: ... og hvad betyder det for hastighed/ressourcer ift. når man bruger md5? 1,3: Og sidst bruger man salt her også? Encrypt/decrypt Nogle gange er det nødvendigt at jeg kan krypterer og dekrypterer noget - f.eks. data der sendes Findes der nogle funktioner som vil egne sig til, evt. sammen med salt, at kryptere og dekrypterer? På forhånd tak for input :)
Annonceindlæg fra Computerworld it-jobbank
23. januar 2013 - 19:10
#1
<ole>
Her er, hvad du her brug for, hvad angår hash og salt.
Kryptering er en lidt anden enchilada, men mon ikke også arne_v har et bud på det? =)
/mvh
</bole>
23. januar 2013 - 19:22
#2
Der findes en ret effektiv krypteringsalgoritme, jeg har brugt i C#, men som jeg kan se også
lader sig implementere i PHP . Du kan evt. søge videre på
Rijndael og/eller
AES
23. januar 2013 - 20:21
#3
SHA256 og AES128 er fine valg for henholdsvis hashing og kryptering.
23. januar 2013 - 20:44
#4
Der boer ikke vaere nogen stor forskel paa hastighed mellem MD5 og SHA256. Men som det fremgaar af artiklen saa ville de jo vaere en fordel hvis den var langsommere. Man bruger ikke salt med krypering men typisk IV.
24. januar 2013 - 15:35
#5
Mange tak for svarene :) SHA256 gik smertefrit, massere af dokumentation, og gøres på samme måde som md5. $enc_string = hash('sha256', $salt.$string); AES128 - knap så smertefrit. Kan ikke rigtigt finde noget dokumentation, ej heller beskrevet på php.net Er dog kommet frem til det måske er: openssl_encrypt("tekst der skal krypteres", ??, "password der skal bruges igen for at dekryperer") openssl_decrypt("tekst der skal dekrypteres", ??, "password brugt til at krypterer") Der hvor der står spørgsmålstegn er jeg lidt i tvivl om, og har også stadig lidt tvivl med om det overhovedet er AES128 Sidst forstår jeg heller ikke IV i kommentaren: "Man bruger ikke salt med krypering men typisk IV."
24. januar 2013 - 15:45
#6
24. januar 2013 - 15:48
#8
IV til kryptering er det ekvivalente til salt i hashing. Samme input giver forskelligt output med forskelligt IV/salt.
24. januar 2013 - 15:58
#9
Det loeser nogen problemer bl.a. foelgende. Lad os sige at Ole og mig kommunikerer sammen og at de aflytter os. Vi bruger AES128 og du kender ikke den key vi bruger. Lad os sige at Ole spoerger mig om jeg vils vare paa dette spoergsmaal i klar tekst og jeg sender et svar ja eller nej krypteret. Du kan ikke dekryptere, men du kan jo observere om jeg svarer eller ej. I naeste uge stiller du et nyt spoergsmaal og jeg skriver til Ole om han vil svare og Ole sender et krypteret svar tilbage. Du kan stadigvaek ikke lave en rigtig dekryptering. Men du kan jo se om svaret er det samme som sidst. Samme krypteret tekst => samme klar tekst Forskellig krypteret tekst => anden klar tekst Og er der kun mulighederne ja og nej og du ved hvad det var foerste gang, saa kan du jo reelt dekryptere anden gang. Problemet er at AES128(klartekst='Ja') returnerer det samem hver gang. Men AES128(iv=1234,klartekst='Ja') og AES128(iv=4321,klartekst='Ja') returnerer ikke det samme. Saa nu begynder mig og Ole at generere et tilfaeldigt IV hver gang og bruge det i krypteringen. Og saa kan du ikke udlede noget fra ens/forskellig krypteret tekst (de vil i praksis altid vaere forskellige nu). Og bemaerk IV behoever ikke at vaere hemmelig. Vi kan bare sende den sammen med den krypterede besked. Du kan ikke bruge kendskab til IV til noget.
24. januar 2013 - 18:09
#10
Hej igen Mange tak for svaret Prøvede det lige, men synes ikke PHP genkender openssl_encrypt og openssl_decrypt selvom det er 5.3.8
24. januar 2013 - 18:39
#12
25. januar 2013 - 23:35
#13
Hej Så kan jeg desværre ikke benytte det, fordi jeg ikke kan få ændret nogle ting på webhotellet. Nogle alternativer man kan bruge uden addons, moduler, php.ini rettelser mv.?
26. januar 2013 - 02:19
#15
Ser ud til der er noget - du smider bare svar og så er der point :)
26. januar 2013 - 02:22
#16
ok
26. januar 2013 - 02:24
#17
Husk at PHP er paent hurtigt til mange ting. Men saadan noget som AES i ren PHP vil vaere endda meget langsomt i forhold til AES i en extension (extensions er kodet i C).
26. januar 2013 - 02:41
#18
Okay må høre om det kan komme på så :). Tak for hjælpen :)
26. januar 2013 - 02:48
#19
Hvis du kun skal kryptere smaa data maengder betyder det ikke noget. Men med store datamaengder, saa ... Hvor mange MB/GB skal du kryptere?
26. januar 2013 - 12:43
#20
Hej Det er kun små mængder af gangen - slet ikke op i gb, og nok generelt også en del mindre end 10 mb
26. januar 2013 - 15:40
#21
Proev og maal hvordan performance er.
Vi tilbyder markedets bedste kurser inden for webudvikling