În acest articol voi discuta cum să stocați în siguranță parole într-o bază de date
1 fel. Stocam parola ca atare. De exemplu, dacă introduceți parola "fuckoff", atunci acesta va rămâne. Dezavantajul este că atunci când o bază de date este compromisă, un atacator obține toate parolele în mod explicit.
2 fel. Stocăm parola în formă criptată folosind algoritmi de criptare md5, sha1, etc. De exemplu, md5 ('loveyou') = "f74a10e1d6b2f32a47b8bcb53dac5345"
La hacking, un atacator va primi parole criptate și nu va putea să le decripteze, deoarece criptarea este ireversibilă. Dar el poate cripta diferite combinații de caractere prin căutarea și compararea hash-ului rezultat cu hash-ul furat, găsiți parola originală.
3 moduri. Stocăm parola într-o formă criptată, dar adăugăm câteva caractere aleatoare unice fiecărui utilizator (așa-numita sare). Mai bine, depozitați dublu MD5 cu sare. Este aproape imposibil să hackem o astfel de metodă. În tabelul de utilizatori, avem nevoie de două câmpuri:
1) câmp de sare pentru depozitarea sarii
2) câmpul de parolă pentru stocarea hash-ului din md5 (md5 (password) + salt).
Unde să luați sare? Este necesar ca scriptul de înregistrare să genereze sare pentru fiecare utilizator nou. Pentru a face acest lucru, puteți utiliza următoarea funcție
Diverse opțiuni pentru decaparea în motoare cunoscute:
- md5 ($ pass. $ salt) - folosit în Joomla
- md5 (md5 ($ pass). $ salt) - utilizat în vBulletin
- md5 (md5 ($ salt) .md5 ($ pass)) - se aplică la noua versiune IP.Board