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
아직도 내가 더 자라야 하는 나무로 남아 있다는 것이 얼마나 자랑스럽고 기쁜 일인가. 내 능력을 더 키울 수 있는 위치에 있다는 것이 더 없이 행복한 일이라는 것을 알고 산다면 조금도 사는 일에 조급하지 않을 것이다. 아직도 능력 없는 사람이라는 것을 아직도 희망을 가져도 좋은 사람이라는 의미로 바꿔보자. (김이연)