PHP & Others

암호화/복호화 함수(실전 응용 가능)

컨텐츠 정보

본문

http://sci.korea.ac.kr



키를 이용한 암호화/복호화 함수입니다.
출처는 http://man.phpschool.com/이고
복잡한 소스를 약간 정리했습니다.
이정도면 실전에 응용해도 될정도로 충분히 안전하고 편리하다고 생각됩니다.
영문, 한글, 특수문자 테스트 결과도 좋았습니다.

<?
function bytexor($a,$b)
{
        $c="";
        for($i=0;$i<16;$i++)$c.=$a{$i}^$b{$i};
        return $c;
}


function decrypt_md5($msg,$key)
{
        $string="";
        $buffer="";
        $key2="";

        while($msg)
        {
                $key2=pack("H*",md5($key.$key2.$buffer));
                $buffer=bytexor(substr($msg,0,16),$key2);
                $string.=$buffer;
                $msg=substr($msg,16);
        }
        return($string);
}

function encrypt_md5($msg,$key)
{
        $string="";
        $buffer="";
        $key2="";

        while($msg)
        {
                $key2=pack("H*",md5($key.$key2.$buffer));
                $buffer=substr($msg,0,16);
                $string.=bytexor($buffer,$key2);
                $msg=substr($msg,16);
        }
        return($string);
}

// 사용 예
$message = "다양한 원본 메시지 東西南北 ABC abc 123 ※ ↔ ";
$key = "아..이정도면 매우 복잡한 키--;";

$encrypted = encrypt_md5($message, $key);
$decrypted = decrypt_md5($encrypted, $key);

echo "Encrypted = $encrypted";
echo "                                  <HR>";
echo "Decrypted = $decrypted";
?>

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
친절은 사회를 움직이는 황금의 사슬이다.