PHP crypt () ile şifreleri Karşılaştırılması

0 Cevap php

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

0 Cevap