2011-12-29 3 views
3

나는 mass5 또는 sha1보다 안전하기 때문에 PHPass를 사용하여 응용 프로그램에 사용자 암호를 저장하고 있습니다. 나는 어떻게 암호로 소금을 사용할 것인가에 대한 질문을 가지고있다. 당신이 사용자 삽입 할 때 내가 수집 한 것과PHPass의 올바른 구현

는,이처럼 사용

$pwdHasher = new PasswordHash(8, false); 
$hash = $pwdHasher->HashPassword($input_password); 

및 다음 로그인시 사용자의 세부 사항을 확인할 때, 당신이 할 :

$pwdHasher = new PasswordHash(8, FALSE); 
if ($pwdHasher->CheckPassword($input_password, $hash_from_db)) { 
    echo 'password correct'; 
} else { 
    echo 'wrong credentials'; 
} 

하지만 염을 사용하는 그 어떤 것도 보지 마라. 내가 읽은 것으로부터, 내 사용자 테이블은 암호를 해싱 할 때 사용되는 소금에 대한 추가 필드가 있어야하지만, CheckPassword 암호가 암호를 사용하지 않는가?

감사합니다.

+0

가능한 복제본은 [phpass 해시에 포함 된 소금입니까? 아니면 소금을 입력해야합니까?] (http://stackoverflow.com/questions/2596348/is-the-salt-contained-in-a- phpass-hash-do-you-need-to-salt-its-input) –

+0

나는 대신 내 라이브러리를 사용하라고 권유합니다. 그러나 그것은 단지 잘못된 것입니다. PHPass는 소금 자체를 생성 한 다음 해시 안에 저장할 수 있습니다. 설명서를 간략하게 살펴 보겠습니다. –

답변

5

Phpass는 암호를 해시 할 때 소금을 추가하므로 별도의 소금을 추가하여 데이터베이스에 저장할 필요가 없습니다.