2012-08-02 5 views
0

crypt()와 이상한 동작이 있습니다. 내가 첫 번째 매개 변수와 두 번째 매개 변수로 소금으로 도우미 함수 generateHash에 MD5 생성 된 문자열을 전달하고해싱 : PHP Crypt()가 올바르게 작동하지 않습니다.

$correct_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e5','572906092501a20f4222a54.54479708');    
$edited_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e','572906092501a20f4222a54.54479708'); 

echo "Correct Password Hash - ".$correct_password_hash."<br/>"; 
echo "Edited Password Hash - ".$edited_password_hash; 

: 여기 젠드 내 코드입니다. 생성 된 해시를 $ correct_password_hash 변수에 저장합니다.

동일한 도우미 함수에 대한 두 번째 호출에서 첫 번째 매개 변수의 끝에서 문자 5를 삭제했습니다. 두 번째 매개 변수는 동일합니다. 그러나 여전히 첫 번째 해시와 동일한 해시를 생성합니다. 여기

이 출력됩니다 : - 57CO1Lzyk81kk
편집 암호 해시 -

올바른 암호 해시 57CO1Lzyk81kk

도우미는 generateHash는 다음과 같다 :

public function generateHash($md5, $salt) 
{ 
    return crypt($md5, $salt); 
} 

이 방법 토굴인가 일해야하는데?

감사합니다.

답변

3

crypt()는 표준 DES 기반 알고리즘을 기본값으로 사용합니다. 암호의 8 번째 문자와 소금의 2 번째 문자 만 사용합니다. http://php.net/crypt

당신이 암호 해시를 수행하는 경우, bcrypt로 이동합니다 토굴의 동작을()를 수정하는 방법에 대한 자세한 내용은

참조 토굴() 설명서를 참조하십시오.

관련 문제