나는 여기서 어떤 질문을할지 모른다. 내 문제는 간단합니다. 소금으로 DB에 암호를 저장하고, 저장된 암호와 입력 된 암호의 유효성을 검사하고 사용자가 로그온 할 때마다 임의의 시도 단어를 사용하여 암호를 인증해야합니다. 나는 PHP/자바 스크립트를 사용하고 있습니다.어떻게 암호를 인증하고 유효성을 검사합니까?
이 문제를 해결하기 위해 내가 겪고있는 문제는 HTML 양식에서 도전 단어를 전달한 다음 그 단어로 입력 된 암호를 해시하고 서버에서 암호를 인증 할 수 있다는 것입니다. 도전 단어와 암호를 구분할 수 없으므로 DB에 저장된 암호에 대해 유효성을 검사 할 수 있습니다. 암호를 서버에 전달하거나 챌린지 단어없이 해시로 해시하는 경우 유효성을 검사 할 수는 있지만 신뢰할 수있는 인증을받을 수는 없습니다.
암호로 유효성을 검사하면서 키를 암호화 할 수 있도록 일종의 2 웨이 알고리즘이 필요하다고 생각합니다. 어떻게해야합니까? 아니면 할 수 없다면 무엇을해야합니까?
분명히 말하면, 임의 시도는 전송 중 암호를 보호하기위한 것입니까? 아니면 그들이 인간 또는 유사하다는 것을 증명하는 인증 메커니즘입니까? –
이것을 파악하기 위해 "Geeklog - The Secure CMS"라는 PHP 블로그의 소스 코드를 살펴 보았습니다. Lo와 보라, 그들은 사용자 암호를 자유롭고 명확하게 보내며, 서버의 MD5를 사용하여 암호를 "암호화"합니다. 그래서 아마도 내 질문은 "어떤 유형의 시스템에 대해 소금 인증 및 인증 단어를 사용하여 인증 및 구현해야합니까?" – James
또한 phpBB는 암호를 자유롭고 분명하게 보냅니다. 나는 그 문제를 생각하는 것이 끝났다 고 생각한다. – James