2016-10-04 8 views
0

이 질문은 다소 일반적인 질문 일 수 있습니다. 암호 해시를 위해 안전한 소금을 생성하는 방법에 대해 인터넷을 통해 많은 기사가 있습니다. 지금까지 나는 을 선택했습니다. mcrypt_create_iv은 일반적으로 암호화를위한 초기화 벡터로 사용됩니다. 특히 염분을 안전하게 만드는데 사용할 수 있습니다. MCRYPT_DEV_RANDOM에 대해 사용하면 특히 좋습니다.보안 MCRYPT 소금 생성/저장/읽기

$Salt = mcrypt_create_iv(22, MCRYPT_DEV_RANDOM); 

가 DB에 그것을 후 별도로 입력, 해시에 적용 : 내가 사용 때마다 성공을 가진 사람에도 불구하고 어떤 이유

. 언제 돌아와서 인증하고 그것을 모두 합치면 ... 올바르게 작동하는 것처럼 보이지 않습니다.

토굴와 호환하지 않는 mcrypt_create_iv 기능에 의해 생성되는 일부 문자가 있습니까? 두 번째는 안전한 원본에서 생성되었는지 여부에 관계없이 다소 평범한 소금을 사용하기 때문에 잘 작동합니다. 하지만 특수 문자 mcrypt을 사용하고 싶습니다.

이 어떤 도움을 주시면 감사하겠습니다 (또한, 나는 지하실에 소금이 필요하므로 16 바이트를 $ (6) $ 알고리즘을 사용하고 있습니다)

!

감사합니다 :)

답변

1

나는이 완전히 당신을 위해 해싱을 돌볼 것 같은 기능의 password_hash() 제품군을 사용하는 것이 좋습니다. 그들은 또한 미래 호환성을 제공하며 일반적으로 PHP에서 암호를 처리하기 위해 권장되는 방법입니다.

이 답변에서 사용하는 방법에 대한 자세한 읽기 : 그것은 불가능 해시를 처리합니다,하지만 코드 (테이블 정의)을 보지 않고 어디 선가 캐릭터 세트의 문제를 의심 : 원래의 질문으로 https://stackoverflow.com/a/6337021/5086233

을 말하다.

+0

건배. 내 서버는 php.net 기사에 따르면 5.5 이상의 PHP 5.4를 사용하고 있습니다. 어쨌든 귀하의 게시물은 도움이되었습니다. db에서 utf-unicode-ci의 데이터 정렬을 소금으로 바꿨습니다. 지금은 작동합니다 :) – Hazzard

+1

게시 한 답변에 링크 된 호환 레이어가 있습니다. 내장 기능과 동일한 기능입니다. ;) – ChristianF

+0

당신을 진심으로 환영합니다. upvote 및/또는 답변을 수락 기억하십시오. :) – ChristianF