CI 묻고 답하기

제목 encryption 사용시 복호화가 되었다가 안되다가 합니다.
카테고리 CI 2, 3
글쓴이 칸이 작성시각 2019/09/06 14:25:18
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 17671   RSS

encryption 를 사용해 암호화하고 난뒤 다시 복호화를 하고 있습니다..

 

$this->encryption->initialize(array('cipher' => 'des', 'mode' => 'cbc'));
$enc = $this->encryption->encrypt($val['seq']);

$dec = $this->encryption->decrypt($enc);

echo "$enc : $dec";

이처럼 암호화후 바로 복호화 하면 제대로 값이 출력되고 있습니다.

 

그런데, 암호화를 시켜두고, 다른 곳에서 값을 받아서 복호화를 하면 3~4번에 한번씩 복호화가 안되고 있습니다.

고유번호를 암호화해서 클릭하면 페이지 이동후 그곳에서 복호화 하는것입니다.

 

아예 안 되는것도 아니고, 되었다가 안되었다 하니.. 어떻게 해야 할지를 모르겠네요.. ㅡ.ㅜ;

그리고 $enc 값이 접근할때마다 매번 변경이 되는데.. 이거 이리 되어도 복호화가 잘 되는 것인지도 궁금하네요..

 

고유번호를 외부 노출을 막기 위해 조금 복잡한 키 값으로 대체하고 하려고 해서, 다시 복호화를 하고 싶은데..

키값이 너무 깁니다. 126자인거 그렇던데..

좀 간단히 암호화했다가, 복호화 하는 다른 방법이 없을까요??

 

 다음글 [코드이그나이터 처음부터 막히는 초보]뷰에 있는 파일이... (2)
 이전글 안녕하세요 클라우드 개발환경 세팅 질문입니다 (9)

댓글

변종원(웅파) / 2019/09/06 14:35:47 / 추천 0

ci 순정(?) 암호화가 아닌 것 같네요. 확인 해보세요.

http://www.ciboard.co.kr/user_guide/kr/libraries/encrypt.html 사용법이 다릅니다.

칸이 / 2019/09/06 15:08:31 / 추천 0

순정입니다..

해당 링크 메뉴얼 위쪽에 있는..

이 라이브러리는 DEPRECATED 되었습니다. 그리고 오직 이전 버전과의 호환성 때문에 유지됩니다. 새로운암호라이브러리(Encryption Library)를 사용해주세요.

를 클릭해서 사용한겁니다..

http://www.ciboard.co.kr/user_guide/kr/libraries/encryption.html 이겁니다..

kaido / 2019/09/06 15:27:07 / 추천 0

비슷한 경험이 있습니다

암호쪽이 문제가 아니라 브라우저에서 컷트되고 있는지 확인해보세요

암호문을 get으로 보냈더니 몇몇 문자가 짤려들어가서 복호가 제대로 안되었던 경험이 있습니다.

urlencond 한번 감싸서 보내셔야 합니다.

문제는 간단히 해결 안되었던 기억이...  urldecode 할때 다시 짤려나가는 문자열도 있어서 encryption 옵션 자체가 cbc 형태로 먼저 짤라놓고 보내야 했던걸로 기억 합니다.

 

칸이 / 2019/09/06 15:42:31 / 추천 0

kaido님 감사합니다. ^^;

urlencode로 감싸고, 푸니까.. 제대로 되네요.. ㅡ.ㅜ;

근데, 길이가 너무 길어서.. 이를 어떻게 해야 할지..

변종원(웅파) / 2019/09/06 15:44:58 / 추천 0

https://www.php.net/manual/en/function.openssl-encrypt.php php함수도 많습니다.

만들때마다 변경되는 것은 은행 otp 생각하시면 이해가 빠릅니다.

간단하게 만들어 사용할 수 도 있습니다. 문자열을 base64_encode 하고  shift 시켜서 문자열을 만들고 복호화는 반대로 진행.

구글에서 찾아보시면 많습니다.