Vă mulțumim pentru susținere

Criptarea parolelor

Care este cea mai rapidă și sigură modalitate de criptare a parolelor (preferată de PHP) și pentru care metoda vreodată pe care o alegeți este portabilă?

Cu alte cuvinte, dacă migrez ulterior site-ul meu la un server diferit, parolele mele vor continua să funcționeze?

Metoda pe care o folosesc acum, așa cum mi sa spus, depinde de versiunile exacte ale bibliotecilor instalate pe server.

0
adăugat editat
Oh omule! Doar menționez că mă face să vreau să merg și să înființez o grămadă de capcane eoliene și un rezervor de piranha ...
adăugat autor gyurisc

7 răspunsuri

Există un patch oficial pentru Evil Genius (disponibil la fileplanet, printre altele), dar există și un patch neoficial aici: http://www.n1nj4.com/EvilPlanet/TheGame/mod_unofficialpatch.php care adaugă o mulțime de tweaks.

3
adăugat

Nu caut neaparat cel mai rapid dar un echilibru frumos, unele din serverul pe care acest cod este dezvoltat sunt destul de lente, scriptul care hashes și stochează parola durează 5-6 secunde pentru a rula și am a redus-o până la hash (dacă comentez hashing-ul rulează, în 1-2 secunde).

Nu trebuie să fie cea mai sigură, nu codifică o bancă (chiar acum), dar cu siguranță NU va stoca parolele ca text simplu.

0
adăugat
În timp ce acest lucru este închis, ar trebui să păstrați încă parolele de tip hash cât mai sigur posibil. Ce este cel mai simplu mod de a obține o parolă pentru contul bancar? Creați un site minunat care vă permite să vă înscrieți. Majoritatea utilizatorilor vor folosi parolele existente. Acum aveți o listă uriașă de parole. Dacă ar fi, cea mai rapidă modalitate de a obține parolele altor persoane ar fi să vă spargă sistemul dacă știam că este o implementare slabă.
adăugat autor Andrew T Finnell

Trebuie subliniat faptul că nu doriți să parola, pe care doriți să-l hash .

Parolele criptate pot fi decriptate, permițându-le pe cineva să vadă parola. Hashing-ul este o operație într-o singură direcție, astfel încât parola originală a utilizatorului este (criptografic) dispărută.


În ceea ce privește algoritmul pe care ar trebui să-l alegeți - utilizați standardul acceptat în prezent:

  • SHA-256

Iar atunci când ați hash parola utilizatorului, asigurați-vă că, de asemenea, hash în unele alte junk cu ea. de exemplu.:

  • password: password1
  • salt: PasswordSaltDesignedForThisQuestion

Adăugați sarea la parola utilizatorului:

String s = HashStringSHA256("password1PasswordSaltDesignedForThisQuestion");
0
adăugat
-1 SHA-256 nu este o funcție de hash de parole și nu este sigură în acest scop. Poate fi parte dintr-o (PBKDF2), dar asta e altfel altfel. De asemenea, exemplul dvs. este înșelător, deoarece sarea nu ar trebui să fie o expresie inteligentă, ar trebui să fie o valoare aleatorie (per utilizator).
adăugat autor Brendan Long

Sunt cu Peter. Dezvoltatorul nu pare să înțeleagă parolele. Cu toții alegem (și eu sunt vinovat și de asta) MD5 sau SHA1 pentru că sunt rapizi. Gândindu-mă la asta ("cineva mi-a arătat-o ​​recent), asta nu are sens. Ar trebui să alegem un algoritm de hash care este lent prost. Vreau să spun, pe scară de lucruri, un site ocupat va hash parolele ce? la fiecare 1/2 minut? Cui îi pasă dacă va dura 0,8 secunde versus 0,03 secunde serverul înțelept? Dar această încetinire suplimentară este imensă pentru a preveni toate tipurile de atacuri brute-forcișuri comune.

Din lectura mea, bcrypt este proiectat special pentru hash de parole sigure. Se bazează pe lovituri de băț, și există multe implementări.

For PHP, check out PHPPass http://www.openwall.com/phpass/

For anyone doing .NET, check out BCrypt.NET http://derekslager.com/blog/posts/2007/10/bcrypt-dotnet-strong-password-hashing-for-dotnet-and-mono.ashx

0
adăugat

Dacă alegeți o metodă de criptare pentru sistemul dvs. de conectare, atunci viteza nu este prietenul tău, Jeff a avut o problemă cu Thomas Ptacek despre parole și

0
adăugat

Luați în considerare utilizarea bcrypt este utilizat în multe cadre moderne, cum ar fi laravel.

0
adăugat

Indiferent ce faceți, nu scrieți propriul algoritm de criptare. Făcând acest lucru va garanta aproape (dacă nu sunteți un criptograf) că va exista un defect în algoritmul care va face banal să crack.

0
adăugat
Chiar dacă sunteți un criptograf probabil că va avea un defect - este nevoie de ani de revizuire înainte ca un algoritm să devină "popular"
adăugat autor Tom Ritter
Asta este atat de adevărat. Și îmi amintește de o anecdotă asemănătoare cu Don Knuth: cu mult timp în urmă, a încercat să scrie un generator de numere aleatorii și să adune cât mai multe operații obscure pe care le-ar fi putut gândi. În cele din urmă a executat această creație monumentală și a dat numărul 4 pe termen nelimitat. (Detaliile pot fi modificate în redenumire.)
adăugat autor ndkrempel