2010-04-19 4 views
0

잘 작동하는 CI를 사용하여 등록 페이지를 만들었습니다. 그러나 sha1 (아래 코드 스 니펫 참조)을 사용하여 비밀번호를 인코딩 했으므로 이제 로그인 페이지를 만들 계획이므로 사용자가 로그인 페이지에 입력 한 비밀번호가 sha1을 사용하여 인코딩 된 비밀번호와 같은지 확인해야합니다 데이터베이스에. 그러나, 나는 sha1이 디코딩 불가능하다는 것을 깨달았습니다.CodeIgniter 암호화 클래스 - 어떻게합니까?

그래서 CI 암호화 클래스를 사용하여 로그인 할 때이 암호를 암호화 한 다음 암호를 해독하려면 어떻게해야합니까? 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

기능 register_user ($ 사용자 이름, $ 암호, $ 이름, $ 이메일, $의 activation_code) {

$sha1_password = sha1($password); 
$query_str = "INSERT INTO table_name (username, password, name, email, activation_code) >VALUES (?,?,?,?,?)";  


$this->db-query($query_str, array($username, $sha1_password, $name, $email, $activation_code)); 

}

답변

3

암호를 해독 할 필요가 없습니다 만 비교 평등을 위해. 그것이 사용자 식별에 필요한 모든 것입니다. 대신 그들 (편도) 해시의 암호를 검색 할 수 있도록해야하는 경우 비밀번호 (가역 과정)을 암호화한다 http://codeigniter.com/user_guide/libraries/encryption.html

: 암호화 클래스를 제공 CodeIgniter의 암호화/복호화를 들어

+0

+1 감사합니다 : http://www.phptherightway.com/#password_hashing_with_bcrypt

다른 좋은 독서 Bcrypt 예를 들어. 나는 이것에 새로운지만, 만약 내가 잘못하면 정정 : 내가 sha1 로그인 패스워드와 두 결과 해시를 비교해야합니까? – Anthony

+0

네가해야 할 일이 있네. 또한 레인보우 테이블 공격이 불가능하도록 암호를 "소금에 담그기"를 조사하십시오. –

+0

@Adrian, 이것을 확인하고 소금에 대해 알려주도록 감사드립니다. 나는 이것에 대한 검색을 시작했으나 아직 아무 것도 찾지 못해서 계속 검색 할 것입니다. – Anthony

관련 문제