Ne kadar güçlü olur
return sha1($salt.sha1($passwd));
sadece karşılaştırılabilir:
return sha1($salt.$passwd);
$salt
güçlü rasgele ASCII oluşan uzunluğu 12 kullanıcı başına bir dizedir.
Saldırgan, bir kaba kuvvet saldırısı için iki katı kadar SHA1 hesaplamalar yapmak gerekiyor, çünkü tam iki kat güçlü.
Tabii ki, hâlâ tam olarak etkileyici değil. Öte yandan, bir döngü içinde SHA1 5000 kez yaparak yetkilendirme için pratik olmakla birlikte, atak 5000 kez daha uzun zaman kılar - bu teknik key strengthening olarak bilinir. Bu gerçekten, ancak, Jacco bahseder adaptible maliyetli karma algoritmalar için sadece bir zavallı adamın yerini tutamaz.
Bildiğim kadarıyla gücü hiçbir fark yoktur.
Bu parola hash tuz prepend için yaygın bir uygulama olduğu için, tuz genellikle saldırganın bilinmektedir. Ancak bu tuzun amacına değildir.
Genellikle kullanıcı kendi adını değiştirir eğer sorunlara neden olacak gibi karma (Vinzz 'nin çözümü) için $ login / $ username eklemek için aa iyi idead değil konuşuyor. Daha iyi bir çözüm, bir random salt kullanmaktır.
Kullanılan karma algoritması does bir fark yaratır. SHA1
cryptographically broken kabul edilir ve şifreleri karma için kullanılmamalıdır.
Gennerally speaking BCRYPT
(a Blowfish based adaptable-cost hashing algorithm) is considdered best to be the practice (CRYPT_BLOWFISH
flag for PHP's crypt();)
Other solid options are SHA256 and above.
Edit:
I wrote a longer answer on salting here: stackoverflow.com/questions/1645161/salt-generation-and-open-source-software/