이것은 PHP에서 crypt() 함수를 처음 사용 한 것이므로 왜 작동하지 않는지 알 수 없습니다. 내 코드는이 문서를 기반으로 : 나는 샘플 암호 "암호"로 함수를 호출 http://www.techrepublic.com/blog/australia/securing-passwords-with-blowfish/1274PHP crypt() Blowfish 함수가 작동하지 않습니다.
function blowfishHash ($pw) {
//generate random salt
$salt = "$2y$10$";
for ($i = 0; $i < 22; $i++) {
$salt .= substr("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", mt_rand(0, 63), 1);
}
$hash = crypt($pw, $salt);
//printout to file
$file = fopen("debug.txt", "w+");
fwrite($file, "\n\n\n".$pw);
fwrite($file, "\n\n\n".$salt);
fwrite($file, "\n\n\n".$hash);
fclose($file);
return $hash;
}
.
결과 소금은 다음과 같습니다. $2y$10$NzRQNjTRfP4jXKvb4TCO.G
그러나 암호는 "$2mV0NZp92R3g"
- 너무 짧게 보입니다.
누군가 내가 잘못하고있는 것을 알아내는 데 도움을 줄 수 있습니까?
예제를 테스트했으며 기사에서와 똑같이 출력합니다. 어떻게 $ 암호를 출력/디버깅합니까? 웹 사이트에서? CLI 당? – hek2mgl
방금 파일에 인쇄했습니다 (코드 줄을 생략했습니다). 이 기능을 위해 PHP의 특정 버전이 필요합니까 ...? – user1403777
어떤 버전을 사용하십니까? (나는 사용하고있다 : 5.3.10-1ubuntu3.4) – hek2mgl