너희들에 대한 빠른 질문이 있습니다는 PHP의 토굴을 사용하여() 함수
나는 (I 상대적으로 경험이 오전) PHP 땜질하고, 그리고에서 사용하기 위해 보안 암호 해시 시스템을 개발에 관심 내 사이트. 그래서 다른 기사와 질문을 통해 나는 BSD의 bcrypt
해싱 알고리즘을 구현하기 위해 PHP의 crypt()
함수를 사용해야한다고 추측했다.
제 질문은 함수에 초기화 벡터 나 암호를 입력 할 때 base64가 아닌 입력이 "0"을 해시로 반환하는 것처럼 보입니다. 여기에 내가이 문제를 해결하기 위해 구현 한 것입니다 :
$salt = base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM));
및
$password = base64_encode($password);
충돌의 위험이 있습니다 또는 나는이 같은 인코딩을 변경하면 다른 보안을 감소?
내 해쉬 함수가 빈 해시를 반환하는 것을 걱정할 필요없이 사용자가 암호에 대해 모든 문자를 사용할 수있게하려는 생각이 들었다.
더 간단하고 우아한 방법이 있습니까? 소금과 패스워드를 제한하지 않는 해쉬 함수를 사용해야할까요?
미리 도움을 주셔서 감사합니다.
항상 'reversible'이며 보안상의 차이는 없으므로 'base64_encode'를 사용해서는 안됩니다. [base64] (http://en.wikipedia.org/wiki/Base64)를 사용하면 바이너리를 문자열로 표현할 수 있습니다. –
이 [Portable PHP password hashing framework] (http://www.openwall.com/phpass/) 사용 방법은 어떻습니까? –
"함수에 초기화 벡터 나 암호를 입력하면 base64가 아닌 입력이"0 "을 해시로 반환하는 것처럼 보입니다."... 무엇? –