인증 시스템을 위해 Blowfish로 전환하려고합니다. 나를 감싸 라. 나는 암호 학자가 아니며, 블로우 피어에 대한 나의 이해는 아직 그리 많지 않다.기존 인증 시스템이있는 Bycript/Blowfish 및 소금
현재 설정은 sha1과 소금을 사용합니다. 소금은 각 사용자에 대해 생성되고 데이터베이스에 저장됩니다. 그것은이 아래로 비등 :
$salt = $this->getSalt($username);
$hash = sha1($password . $salt);
if ($hash == $hashInDB)
{
// user is authenticated, set session id etc ...
}
getSalt()
방법은 지정된 사용자에 대한 데이터베이스에 저장된 소금을 가져옵니다.
가 지금은 납골당에 나는 일을해야 제대로 모든 것을 이해한다면 :
$salt = '$2a$07$' . $this->getSalt($username) . '$';
$hash = crypt($password, $salt);
if ($hash == crypt($password, $saltInDB))
{
// The user is authenticated, set session id etc..
}
두 번째 예를 들어, $saltInDB
변수를 명확히하기 위해,`$ (2A) $ 07 $의 arandomsaltcreatedatregistration의 $ '와 같은 값이다.
- 맞나요?