제목 | 암호화된 password비교문제 | ||
---|---|---|---|
글쓴이 | 이그니 | 작성시각 | 2014/07/30 11:21:59 |
|
|||
모든 파일은 로드 다했구요 a컨트롤러 b컨트롤러 암호화하는소스는 동일합니다. a컨트롤러에서 $mb['wr_password'] = $this->encrypt->encode($this->input->post('wr_password')); 식으로 암호화를햇구요 b컨트롤러에서 다음과같이 저장된암호와 입력암호가 맞는지 비교를하면 if (md5($this->input->post('password')) != $this->encrypt->decode($write['wr_password'])) alert("비밀번호가 맞지 않습니다."); 비밀번호가 맞지않다고나옵니다... b컨트롤러에서 a컨트롤러와 동일한소스로 암호화 한후 비교시에는 비밀번호가 맞아서 다음페이지로넘어가는데 혹시어떤문제일까요?? b컨트롤러에서 암호화된비밀번호와 입력비밀번호를 비교하려면 꼭 b컨트롤러에서 암호화를 해야하나요? |
|||
다음글 | 세션쿠키 파일이 생성되지 않는 문제 해결했습니다. (2) | ||
이전글 | 서로다른 포트에 따른 세션 (1) | ||
변종원(웅파)
/
2014/07/30 11:59:36 /
추천
0
|
인스카
/
2014/07/30 17:48:48 /
추천
0
첨언하자면... password는 단방향 해쉬로[만] 저장해야 합니다... encode/decode를 하면 눈에는 다르게 보이지만 암호화라고 할 수 없습니다. 웅파님 댓글과 같이, 로그인 시 입력받은 암호를 같은 알고리즘으로 암호화 한 뒤, 이 값과 DB에 저장된 값을 비교해야 합니다.
|
온더탑
/
2014/07/31 17:47:21 /
추천
0
$u_pw = $this->input->post('u_pw');
$u_pw = $this->encrypt->sha1($u_pw); DB에 값 저장 이후도 마찬가지로 암호화된 값으로만 비교가 아닐까요 |
암호화 해제했으면 비밀번호 원본과 비교를 해야죠. md5 해버리면 달라지죠.
그리고 비밀번호는 복호화하는 방식 비추입니다.
가입시 post로 받은걸 단방향 암호화해서 넣고 로그인할 때 비교는
암호화된 db의 패스워드 = 암호화(전송된 패스워드) 입니다.