A recent post on passwords
I got a little off topic and covered a lot of this. A tidbit:
Eğer onlar mağaza, sonra ilk PHP ile bunu şifrelemek almış şifre ile mutlu bir kez. Aşağıdaki şifre şifreleme işlevi ya benim fikrim değil, ancak bir takım sorunlar çözer. PHP içinde şifreleyerek şifrelenmemiş parolalar kesen bir paylaşılan bir sunucuda insanları engeller. Değişmeyecek kullanıcı başına bir şey ekleme (bu benim siteler için kullanıcı adı olduğu gibi e-posta kullanmak) ve (SALT I site başına değiştirmek kısa bir sabit dize) bir karma eklemek saldırılara karşı direnci arttırır. SALT parola içinde yer almaktadır, ve şifre herhangi bir uzunlukta olabilir, çünkü bir gökkuşağı tablo ile bu saldırı neredeyse imkansız hale gelir. Alternatif aynı zamanda insanların kendi e-posta değiştiremez ve olsa herkesin şifresini geçersiz olmadan SALT değiştirmek anlamına gelir.
function password_crypt($email,$toHash) {
$password = str_split($toHash,(strlen($toHash)/2)+1);
return hash('sha256', $email.$password[0].SALT.$password[1]);
}
Yani kullanıcı parolasının ilk girişi, sahte kod:
define(SALT,'blah');
$hashed_password = password_crypt($email,$password);
INSERT INTO users (email,hashed_password) VALUES ($email,$hashed_password);
Sonra sahte kodda bir sonraki giriş kontrol etmek için:
define(SALT,'blah');
$user_hashed_password = password_crypt($_POST['username'],$_POST['password']);
SELECT email FROM users WHERE email = ? AND hashed_password = $user_hashed_password LIMIT 1
Geri bir satır olsun, geçerli giriş.