데이터베이스에 id_num이라는 열이 있고 열의 고유 한 true 값이 있어야합니다.양방향 암호화를 데이터베이스의 데이터와 비교
사용자는 시스템에 등록 할 때 ID 번호를 입력해야합니다. ID 번호를 보호하기 위해 $ this-> encript-> encode()를 사용하여 인코딩합니다.
동일한 데이터를 입력 할 때마다 암호화 된 데이터가 다른 코드를 생성합니다.
예 :
먼저 등록 :
둘째 등록
내가 12345을 입력, PVfuF8GDzE4yton9tNabJwG에 encripted 될 것이다 : 나는 같은 번호 12345를 입력 , 그래서 다른 코드 M0wYZsDAdR1u0WlsDAdR1에 encripted됩니다, I ID 번호가 이미 존재하는지 확인하기 위해 checkExistIdNum()을 호출하여 id_num 열이 고유한지 확인하십시오. encripted 코드가 모두 다른 동안
function checkExistIdNum($enc_id_num=null) {
$this->db->select('COUNT(*) AS count');
$this->db->where("(id_num = '$enc_id_num' AND user_id != '".user_id()."')");
$query = $this->db->get('user_info');
$num = $query->row()->count;
if($num>0) return true;
else return false;
}
모두 같은 진정한 가치를 가지고 있지만, 어떻게 ID_NUM = '$의 enc_id_num'를 비교할 수 있는가?