CI 묻고 답하기

제목 암호화 질문입니다.
글쓴이 수야디벨 작성시각 2013/05/13 15:00:38
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14870   RSS

안녕하세요 ~? ^^

궁금하게 생겨서 질문드립니다 .

1. 111.111.111/main/index 라는 서버와

2. 222.222.222/main/index 라는 두개의 서버가 있다고 가정해볼때 ,

CI 암호화 메뉴얼에 의해서 1번서버에서  

$msg = 'My secret message';

$encrypted_string = $this->encrypt->decode($msg);

하여 추출된 변수 $encrypted_string 에는 암호화된 값이 있을 거잖아요?

1번 서버에서는 이 암호화된 $encrypted_string를 decode 하면 다시 원래 값으로 잘 복원되나 ..

1번 서버에서 암호화 한 것을 가지구 

이 $encrypted_string를 서버 2에서 같은 암호화 키값으로 decode 했을때 ,

아무것도 나오지 않는 이유는 무엇인가요?


암호화를 할 때, 키 값도 중요하지만 서버도 동일 해야 하는건가요~?

(이게 좀 말이 안되는게 .. 그럼 만약에 홈페이지를 서버 1에서 서버2로 옮겼다고 가정하였을때 ,

기존에 encry되어서 저장된 암호는 , 서버2에선 써먹을 수 없다는건데 ... 잘모르겠네요 ㅠ)
 다음글 chptcha 에 경로를 어떻게 잡아야 할지? (6)
 이전글 session에 대해서 질문드립니다. (3)

댓글

변종원(웅파) / 2013/05/13 15:33:46 / 추천 0
암호화 방식을 보면 서버에 mcrypt_encrypt 함수 유무에 따라 2가지 방식의 암호화를 사용합니다.

한 서버에는 mcrypt 관련된 것이 설치되어 있지 않을 수 있습니다.


        function encode($string, $key = '')
 {
  $key = $this->get_key($key);

  if ($this->_mcrypt_exists === TRUE)
  {
   $enc = $this->mcrypt_encode($string, $key);
  }
  else
  {
   $enc = $this->_xor_encode($string, $key);
  }

  return base64_encode($enc);
 }

수야디벨 / 2013/05/13 16:08:02 / 추천 0
 웅파//

말씀하신대로 한곳이 mcrypt 가 없었습니다.

적어주신 코드의 if문을  없는 경우를 먼저 체크 하도록수정하면 될 거 같은데 ,

어디에 나와 있는지 알려 주시면 안될까요~?ㅜ
변종원(웅파) / 2013/05/13 16:29:31 / 추천 0
system 디렉토리 열어보세요. 라이브러리중 하나입니다.

코어를 건드리는 것은 비추입니다. 확장하거나 mcrypt 설치하시는게 좋습니다.
케이든 / 2013/05/13 16:55:43 / 추천 0
$this->load->library('encrypt');
$this->encrypt->_mcrypt_exists = false;

php4 클래스에서 var 선언된 클래스 변수가 외부에서 접근이 됬었나요? 기억이 가물..
수야디벨 / 2013/05/15 09:58:49 / 추천 0
 웅파// 케이든//

감사합니다.ㅎ 

결국엔 웅파님 말씀대로 확장하려다가, 그냥 mcrypt를 설치했습니다.

이후에 저같은 문제점을 겪는 분이 이 글을 보고 도움이 됬으면 좋겠네요 ^^ 

감사합니다 ~