[이윰] PHP 8.x 지원을 위한 암호화, 복호화 함수
페이지 정보


짧은주소
-
Short URL : https://yadolee.com/bbs/?t=VeS 주소복사
평점
본문
📝 PHP 8.x 지원을 위한 암호화, 복호화 함수
이윰빌더 자체가 PHP 8.x를 지원하지 않는다. 그누보드는 PHP 8.x에 대응하기 위해 연이은 패치를 내놓고 있지만 아직까지도 꽤 많은 warning을 직면하게 된다.
각설하고 PHP 8.x 에서도 사용할 수 있도록 암호화, 복호화 함수를 수정해 보자.
그누보드5/eyoom/classes/eyoom.class.php를 열어 암호화 함수를 검색하여 수정한다.
수정 전
각설하고 PHP 8.x 에서도 사용할 수 있도록 암호화, 복호화 함수를 수정해 보자.
그누보드5/eyoom/classes/eyoom.class.php를 열어 암호화 함수를 검색하여 수정한다.
수정 전
// 암호화 함수
public function encrypt_md5($buf, $key="password") {
$key1 = pack("H*",md5($key));
while($buf !== false) {
$m = substr($buf, 0, 16);
$buf = substr($buf, 16);
$c = "";
for($i=0;$i<16;$i++) $c .= $m{$i}^$key1{$i};
$ret_buf .= $c;
$key1 = pack("H*",md5($key.$key1.$m));
}
$len = strlen($ret_buf);
for($i=0; $i<$len; $i++) $hex_data .= sprintf("%02x", ord(substr($ret_buf, $i, 1)));
return($hex_data);
}
// 복호화 함수
public function decrypt_md5($hex_buf, $key="password") {
$len = strlen($hex_buf);
for ($i=0; $i<$len; $i+=2) $buf .= chr(hexdec(substr($hex_buf, $i, 2)));
$key1 = pack("H*", md5($key));
while($buf !== false) {
$m = substr($buf, 0, 16);
$buf = substr($buf, 16);
$c = "";
for($i=0;$i<16;$i++) $c .= $m{$i}^$key1{$i};
$ret_buf .= $m = $c;
$key1 = pack("H*",md5($key.$key1.$m));
}
return($ret_buf);
}
수정 후
// 암호화 함수
public function encrypt_md5($buf, $key="password") {
$key1 = pack("H*",md5($key));
//PHP Warning: Undefined variable $ret_buf, $hex_data, PHP 8.x 무한 루프 방지
$ret_buf = '';
$hex_data = '';
//while($buf !== false) {
//PHP 8.x 무한 루프 방지
while(isset($buf) && $buf) {
$m = substr($buf, 0, 16);
$buf = substr($buf, 16);
$c = "";
//PHP Warning: Uninitialized string offset 16 이하의 숫자, 루프 리미트 16번 중에 남은 횟수가 공으로 돌아서 워닝
$limit=strlen($m);
//PHP Fatal error: Array and string offset access syntax with curly braces
for($i=0;$i<$limit;$i++) $c .= $m[$i]^$key1[$i];
$ret_buf .= $c;
$key1 = pack("H*",md5($key.$key1.$m));
}
$len = strlen($ret_buf);
for($i=0; $i<$len; $i++) $hex_data .= sprintf("%02x", ord(substr($ret_buf, $i, 1)));
return($hex_data);
}
// 복호화 함수
public function decrypt_md5($hex_buf, $key="password") {
$len = strlen($hex_buf);
for ($i=0; $i<$len; $i+=2) $buf .= chr(hexdec(substr($hex_buf, $i, 2)));
$key1 = pack("H*", md5($key));
//PHP Warning: Undefined variable $ret_buf, PHP 8.x 무한 루프 방지
$ret_buf = '';
//while($buf !== false) {
//PHP 8.x 무한 루프 방지
while(isset($buf) && $buf) {
$m = substr($buf, 0, 16);
$buf = substr($buf, 16);
$c = "";
//PHP Warning: Uninitialized string offset 16 이하의 숫자, 루프 리미트 16번 중에 남은 횟수가 공으로 돌아서 워닝
$limit=strlen($m);
//PHP Fatal error: Array and string offset access syntax with curly braces
for($i=0;$i<$limit;$i++) $c .= $m[$i]^$key1[$i];
$ret_buf .= $m = $c;
$key1 = pack("H*",md5($key.$key1.$m));
}
return($ret_buf);
}

레벨 124
경험치 2,310,216
Progress Bar 61%
- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은
자기 자신에게 기회를 주는 것이다.
- 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.
-
3 짤방 게시판 - 오쿠야마 카즈사 - 주간 플레이보이 net Extra EX7892021-03-08
-
짤방 게시판 - 하시모토 마나미 - 주간 플레이보이 net Extra EX1802021-03-08
-
짤방 게시판 - 오오시마 유코 - 주간 플레이보이 net 스페셜 사진집 2010 No.122 Extra Cuts2021-03-08
-
2 짤방 게시판 - 신카와 유아 - 주간 플레이보이 net 스페셜 사진집 2013 No.1572021-03-08
-
2 Web Server Tip - 다중 태그 입력 올바르게+22021-03-06
-
4 짤방 게시판 - 오쿠야마 카즈사 - 주간 플레이보이 net Extra EX789+12021-03-05
-
1 후방짤방 게시판 - 하시모토 마나미 - 주간 플레이보이 net Extra EX180+12021-03-05
-
4 짤방 게시판 - 오오시마 유코 - 주간 플레이보이 net 스페셜 사진집 2010 No.122+12021-03-05
-
공지사항 - 주말쯤에 정리해서 올려 놓도록 하겠습니다2021-03-08
-
이슈와 관심 - 행동하는 행정가가 진정 필요한 시점2021-02-24
-
자유 게시판 - 즐감했습니다 편집의 힘도 있겠으나 햄스터가 귀엽긴 한 듯 해요2021-02-18
-
이슈와 관심 - 일본이야 그렇다치더라도 매국노는 반드시 처벌해야 합니다2021-02-16
-
회원 갤러리 - 정말 멋진 일몰 사진입니다{이모티콘}2021-02-16
-
이슈와 관심 - 극우 보수라는 말 자체가 어불성설 그들은 단지 매국노일 뿐 매국노가 활개칠 수 있게 만든 이 사회가 잘못된 거라고 봅니다2021-02-15
-
자유 게시판 - 이게 게임이라니 신기하기도 하고 내가 주인공인 마냥 재밌게 보았습니다2021-02-13
-
자유 게시판 - 하늘구장님도 넘쳐 흘러 감당하지 못 할 만큼의 행운이 따르는 한 해가 되시길 기원드립니다2021-02-11
댓글3
하늘구장님의 댓글
지금은 아니지만 나중을 위해 적용시켜 놓아야 겠네요
감사합니다
내사랑님의 댓글
PHP 8 엄두도 못내고 있는데
보고 듣자하니 단순하게 몇 줄 짜리 패치로는 어림없다는 것 같더라구요
축하합니다. 첫 댓글로 14경험치를 획득하였습니다.
shadow2fox님의 댓글
패치량이 상당한 것 같습니다.
되도록 치명적 오류(Fatal error)에 관한 내용은 올려보도록 하겠습니다.