암호화시 특수문자 관련이슈
본문
어쩌다보니
PHP 5.2에서 crypt()를 쓰게 되었는데,
암호화가 필요한 스트링뒤에 특수문자가 2개가 들어가면
PHP 5.2를 지원하는 특정 호스팅 서버에서는
'페이지가 작동하지 않는다'(ERR_EMPTY_RESPONSE)가
표시가 되네요. 다른 PHP 5.2 호스팅에서는 잘 되고요.
예를들어 스트링이 abcd0987^^일 경우엔 차단돼 버리고,
abcd0987^때는 됩니다.
이게 호스팅의 PHP 설정과 연관이 있는 것 같은데,
보안문제가 있어도 업그레이드 작업이라
현재는 꼭 필요합니다.
아래 구문을 바꿔서는 안되는데
원인 좀 알 수 있을까요?
<?php
function x_pass($pass){
$Ta1=substr($pass,-1,1);
$Ta2=substr($pass,-2,1);
$Ta3=substr($pass,-3,1);
$Ta4=substr($pass,-4,1);
$cryptword=$Ta1.$Ta2.$Ta3.$Ta4;
$firstcrypt=crypt($cryptword,$Ta2.$Ta3);
$Ta1=substr($firstcrypt,-1,1);
$Ta2=substr($firstcrypt,-2,1);
return crypt($pass,$Ta1.$Ta2);
}
$x_pass = "abcd0987^^";
$x_pass_ch=x_pass($x_pass);
echo $x_pass_ch;
?>
답변을 작성하시기 전에 로그인 해주세요.