개발 Q&A

제목 CI3.0 & PHP7.2 환경에서 mcrypt_create_iv() is deprecated 오류가 발생합니다.
카테고리 PHP
글쓴이 마프 작성시각 2018/09/30 17:20:27
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14482   RSS

안녕하세요.

사이트 구축중에 CI3.0 & PHP7.2 환경에서 mcrypt_create_iv() is deprecated 오류가 발생해서 확인해본 결과

아무래도 PHP 7.2 에서 mcrypt_create_iv 함수가 random_bytes 라는 함수로 대체 된걸로 확인했는데

혹시 CI 3.x 버전에서 해당 내용이 패치된 버전이 있을까요?

아니면 PHP 7.0 버전으로 환경을 바꿔야 할까요?

관련 경험이 있으신분 있으시면 어떻게 해결하셨는지 조언좀 부탁드리겠습니다.

 

 다음글 .phpstorm_helpers 폴더가 서버의 root... (1)
 이전글 개인공부용 웹 사이트 디자인 어떻게 만들까요 ? (2)

댓글

kaido / 2018/09/30 21:06:19 / 추천 0

CI 하고는 무관하게 mcrypt 암호 함수는 오래된 함수로 10년전 부터 없앤다고 권고 하였고, 대체된 최신 암호화가 이미 10년전 부터 있었습니다.

 

PHP7.0에서는 경고 메세지만 나타났고,

PHP7.1에서는 곧 삭제된다고 경고 무시를 붙이지 않으면 실행이 안되었고,

PHP7.2 에서 완전히 삭제되어서  PHP7.2 에서 전혀 사용할 수 없습니다.

 

PHP 버전은 7.1로 낮추시고 해당 암호화 함수 코어 부분에 가서 @ 붙여서 에러리포트 무시를 하시면 사용은 가능 합니다.

 

다만 앞날을 생각 하면 대체 함수로 대체 하시는게 좋습니다.

 

현재 릴리즈된 CI4 에서는 PHP7.2 를 기준으로 과거 암호화 함수를 사용하지 않습니다.

jebum / 2018/10/02 10:43:55 / 추천 0

아마 (Deprecated)Encrypt Class를 사용하고 계신것 같습니다. (https://codeigniter.com/user_guide/libraries/encrypt.html)

$this->load->library('encrypt') // Deprecated

Mcrypt를 사용하기때문에 더이상 작동되지 않습니다.

새로운 Encryption 라이브러리로 대체 적용하시면 정상작동 됩니다.

https://codeigniter.com/user_guide/libraries/encryption.html