[이윰] PHP 8.x 지원을 위한 암호화, 복호화 함수
페이지 정보
shadow2fox
2,650 3 3
2021.02.16 23:29
짧은주소
-
https://yadolee.com/tip/838 주소복사
평점
본문
📝 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);
}
추천인 3
레벨 143
경험치 3,052,248
Progress Bar 15%
- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은
자기 자신에게 기회를 주는 것이다.
- 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.
-
[뮤직 비디오 게시판] 꽃 - 부활 [싱글:Boohwal 30th anniversary] 2018년2024-06-18
-
[공유 자료실] ThisIsMyFile 4.25 - 잠금 파일 해제 및 삭제 프로그램2024-06-17
-
[짤방 게시판] 이오키 마오 - 주간 플레이보이 2024 No.16•172024-06-16
-
[짤방 게시판] 오쿠다 이로하 - 주간 플레이보이 2024 No.16•172024-06-15
-
[짤방 게시판] 오카모토 히나 - 주간 플레이보이 2024 No.16•172024-06-15
-
1 [짤방 게시판] 오가와 아야 - 주간 플레이보이 2024 No.16•172024-06-15
-
1 [짤방 게시판] 토미사토 나오 - 주간 플레이보이 2024 No.16•172024-06-15
-
[공유 자료실] Rufus 4.52024-06-15
-
[이슈와 관심] 결코 진실은 가려지지 않을 거라 생각합니다.2024-05-29
-
[생활 정보] 100원이 넘는 적립 금액은 최초이지 않나 싶네요 고생하셨습니다{이모티콘}2024-04-23
-
[자유 게시판] 부활 곡에 잘 어울릴 듯 한 보이스 컬러네요 동감입니다2024-03-31
-
[생활 정보] 80원의 행복이네요{이모티콘}2024-03-21
-
[자유 게시판] 같은 의견이에요2024-03-14
-
[자유 게시판] 다시 봐도 감동입니다{이모티콘}2024-03-11
-
[자유 게시판] 제가 라이브 시청을 하지 않아야 대활약을 해서 손흥민 선수를 위해 안타깝지만 자제 중입니다{이모티콘} 반더벤 또한 너무 잘하지 않았나 싶었네요2024-03-03
-
[자유 게시판] 하늘구장님 늘 감사드리며 마음을 담아 새해 인사를 전합니다 새해 복 많이 받으세요2024-02-09
댓글3
하늘구장님의 댓글
내사랑님의 댓글
축하합니다. 첫 댓글로 14경험치를 획득하였습니다.
shadow2fox님의 댓글