Şifremi nasıl karma tuz içermelidir?

3 Cevap php

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.

3 Cevap

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.

İlk bakışta, ve kripto güçlü bilgisi olmadan, ben hiç güçlü değil derdim.

Bu arada, genellikle kullanılması tavsiye ediyor

sha1($login.$salt.$passwd);

Aynı şifre ile 2 kullanıcıları aynı karma olmaz ki.

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/