4
나는 crypt() PHP 함수에 대해 혼란 스럽다.
두 번째 암호문이 다른 두 번째 인수를 분명히 사용하고있을 때 다음 두 가지 암호 기능이 동일한 출력을 어떻게 내 보냅니 까? diff salt는 diff 해시를 의미합니까?
echo crypt("password", '$2y$09$anexamplestringforsalt$')."\n<br>";
echo crypt("password", crypt("password", '$2y$09$anexamplestringforsalt$'))."\n<br>";
출력 :
$2y$09$anexamplestringforsale/.K.VdgECUVEd9N4ja3u1WtgPi5BXZq
정보를 제공해 주셔서 감사합니다. 투표하기. –
감사합니다! 도움이됩니다. 그래서 기본적으로 암호 함수는 $ 해시 문자열을 분해하고 실제 소금에 부분 문자열 (소금 부분)을 사용합니까? – user3388884
수정하십시오. 실제로 해시 부분을 제외한 모든 부분을 사용합니다. 그리고 내가 연결된 간단한 암호 해싱 API를 사용한다면,'password_verify()'는 해쉬 부분을 사용하여 해시를 확인합니다. 간추려서, 직접 소금을 생성하거나 crypt를 직접 사용하는 경우 문제가 발생할 가능성이 큽니다. [PHP에서 bcrypt를 암호로 사용하는 방법] (http://stackoverflow.com/questions/4795385/how-do-you-use-bcrypt-for-hashing-passwords-in-php/17073604#17073604) – ircmaxell