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

짧은주소
-
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

레벨 148
경험치 3,282,711
Progress Bar 43.5%
- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은
자기 자신에게 기회를 주는 것이다.
- 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.
-
[이슈와 관심] 무릎을 탁 치게 만드는 과학적 접근법이네요2025-09-26
-
[자유 게시판] 그러게나 말입니다{이모티콘}2025-09-19
-
[자유 게시판] 루루맘은 실시간으로 아메리카 퍼스트 필드 경기장에서 직관하셨더랍니다 매년 이맘때면 미국에 비지니스 겸 여행 중이신데 솔트레이크시티가 주무대시라2025-09-19
-
[자유 게시판] 89세 나이시라 어쩌면 급작스러운 소식은 아니더라도 한없이 나약한 인간이기에 떠나는 이와 남겨진 이 나 또한 선택되어진다는 걸 깨닫게 됩니다.2025-09-17
-
[Web Server Tip] 저 또한 불편하단 느낌이 한동안 들었는데 막상 내려놓고 작업하니 시간이 소모될 뿐 문제될 건 없었습니다 차분하게 작업해 보세요{이모티콘}2025-09-10
-
[Web Server Tip] 패치할 양이 제법 많지만 그 기능을 사용하지 않더라도 충돌이 있다거나 하진 않았습니다 참고하세요2025-09-09
-
[이슈와 관심] 정경심 동양대 표창장 위조 판결 뒤집는 새로운 증거 나와 https://youtu.be/1ni0YkMIidM2025-08-13
-
[이슈와 관심] 외국 기사도 참고하셨음 좋겠습니다 {글}2025-07-18
댓글3
하늘구장님의 댓글
내사랑님의 댓글
축하합니다. 첫 댓글로 14경험치를 획득하였습니다.
shadow2fox님의 댓글