Den MD5 Message- Digest algoritme er en envejs krypteringsalgoritme ofte bruges til at oprette hemmelige nøgler , som kaldes MD5 hashes . Da kryptering er én måde, kan to forskellige tekststrenge producere den samme MD5 hash , hvilket betyder, at du ikke kan dekryptere den . Der er et uendeligt antal måder at producere den samme hash. Men hackere har måder at opdage strengene bruges til at skabe hashes , så det betaler sig at skabe dem med omhu . PHP: Hypertext Preprocessor er et programmeringssprog , der understøtter MD5 og andre krypteringsalgoritmer så godt. Instruktioner
1
Opret et salt streng, som er en unguessable streng, der bruges til kryptering. Saltet strengen vil blive brugt til at skabe hashes samt fastlæggelsen af deres gyldighed. En måde at skabe en god salt streng er ved at forvanske en flok tilfældige tegn med PHP s md5 funktion. Udgangen af funktionen er en 32- cifret hexadecimalt tal , som giver dig mere end 3,40 x 10 ^ 38 mulige kombinationer . For eksempel omfatter noget lignende følgende i din PHP kode : Hej
$ salt = md5 ( " 4hJUd5sPP97hT ")
2
Kombiner teksten med salt strengen med Sammenkædningsoperator , som faktisk er en periode , og kryptere den med den MD5 funktion. For eksempel, hvis du er kryptere passwords , type : Hej
$ password = " Us54EEh5R "
$ krypteret = md5 ( . $ Password $ salt ),
" Rainbow tabeller " er databaser, der bruges til revner MD5 hashes , hvoraf de største har mellem 10 og 20 milliarder poster. Selv hvis en database havde 100 milliarder distinkte MD5 hashes , der er mindre end én ud af 10 ^ 27 af de mulige kombinationer. Hvis en dråbe vand er omkring 1/10 cm ^ 3 , ville det tage omkring 1,4 x 10 ^ 25 dråber at fylde Jordens oceaner . Derfor regnbue borde udgør mindre end en dråbe i alle Jordens oceaner . Hvis din salt strengen er god, er der næsten ingen chance de krypterede hash er i en database. Selv hvis en af de databaser, havde samme hash , strengen bruges til at skabe det ville være forskellig fra den i databasen , fordi de ikke kan spilde værdifuld database plads på de endeløse kombinationer af MD5 - saltede passwords. Disse databaser går efter meget enklere mål.
3
Kontroller hashes efter behov ved at skabe den hash , som du gjorde før, og sammenligne det med det oprindelige . I tilfælde af passwords, opbevare de krypterede passwords i en database. Når nogen forsøger at bruge en adgangskode , kryptere password indtastes med salt, og sammenligne det med kopien i databasen. På denne måde behøver endda database administrator ikke kender nogen af passwords. Skriv f.eks : Hej
$ encrypted_entry = md5 ( $ post $ salt. )
If ($ encrypted_entry == $ krypteret) $ gyldigt = true;
andet $ gyldigt = false;