Biz veritabanında olan bir tuz var varsayarsak ve bu gibi elde edilmiştir
$salt = time();
Bu 2 çizgi arasındaki fark nedir.
$pass1 = hash('sha1', $password . $salt);
$pass2 = hash_hmac('sha1', $password, $salt);
Onlar aynı çıktıyı üretmek değil. hash_hmac
3 params'ı ihtiyacı ise ilki, hash
fonksiyonu, 2 params alır. Bu nedenle biz $salt
ayrı ayrı (üçüncü param yerine getirmek için) şifre ile birleştirerek farklı olarak ($password . $salt
) yaptığımız gibi kullanarak, üçüncü ekstra param alabilirsiniz düşünürdüm 2. satırda. Ama bu kadar basit değil, 2 sonuç farklıdır. Neden? Tam olarak ne oluyor burada?