>  기사  >  백엔드 개발  >  PHP 가역적 암호화 및 복호화 알고리즘 예제 코드 세트

PHP 가역적 암호화 및 복호화 알고리즘 예제 코드 세트

高洛峰
高洛峰원래의
2016-12-21 09:46:43988검색

대부분의 비밀번호 암호화에는 md5, sha1 및 기타 방법을 사용할 수 있습니다. 데이터 유출을 효과적으로 방지할 수 있지만 이러한 방법은 복원이 필요하지 않은 데이터 암호화에만 적용됩니다.

복원해야 하는 정보에는 가역적인 암호화 및 복호화 알고리즘을 사용해야 합니다.

다음 PHP 함수 세트는 이 암호화 및 복호화를 구현하는 방법입니다.

암호화 알고리즘은 다음과 같습니다.

function encrypt($data, $key)
{
 $key = md5($key);
    $x  = 0;
    $len = strlen($data);
    $l  = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
         $x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}

복호화 알고리즘은 다음과 같습니다. :

function decrypt($data, $key)
{
 $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
         $x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
        {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }
        else
        {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}

위의 암호화 및 복호화 프로세스에서는 모두 암호화 키(예: $key 매개변수)를 사용해야 합니다.

$data = &#39;PHP加密解密算法&#39;;  // 被加密信息
$key = &#39;123&#39;;     // 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;

위에서는 다음과 유사한 결과가 출력됩니다.

gniCSOzZG+HnS9zcFea7SefNGhXF
PHP 암호화 및 복호화 알고리즘

위에서 볼 수 있듯이 결과는 되돌릴 수 있는 집합입니다. 암호화 및 암호 해독 알고리즘을 사용하여 복원해야 하는 일부 데이터를 암호화할 수 있습니다.

PHP 가역 암호화 및 복호화 알고리즘 예제 코드 세트와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.