Ben bu işlevin temel almak gerekir. Php.net belgelerine durumları, Blowfish algoritması için, o:
"$ 2a $", bir iki haneli maliyet parametresini, "$", ve 22 baz alfabenin "./0-9A-Za-z" 64 basamaklı aşağıdaki gibidir: bir tuz ile karma Blowfish. Tuz, bu aralığın dışında karakterleri kullanarak will cause crypt() to return a zero-length string
Yani bu, tanımı gereği, çalışmak gerekir:
echo crypt('rasmuslerdorf', '$2a$07$usesomadasdsadsadsadasdasdasdsadesillystringforsalt$');
Ancak, tükürür:
$2a$07$usesomadasdsadsadsadaeMTUHlZEItvtV00u0.kb7qhDlC0Kou9e
Bu crypt () 22 uzunluğunda tuz kendisi kesmek olduğu görünüyor nerede. Birileri bu açıklayabilir misiniz?
Onlar crypt () şifreleri karşılaştırmak için kullanabileceğiniz zaman ben başımı alamıyorum, bu fonksiyonun bir başka yönüdür. http://php.net/manual/en/function.crypt.php (eski bakmak. # 1). Bu ben tüm benim parolaları şifrelemek için aynı tuz kullanırsanız, ben ilk crypt zorunda anlamına mı geliyor? yani:
$salt = "usesomadasdsadsadsadae";
$salt_crypt = crypt($salt);
if (crypt($user_input, $salt) == $password) {
// FAIL WONT WORK
}
if (crypt($user_input, $salt_crypt) == $password) {
// I HAVE TO DO THIS?
}
Zaman ayırdığınız için teşekkürler