>  기사  >  백엔드 개발  >  PHP 가역적 암호화/복호화 기능 예제 코드

PHP 가역적 암호화/복호화 기능 예제 코드

怪我咯
怪我咯원래의
2017-07-13 10:12:421693검색

대부분의 비밀번호 암호화에는 md5, sha1 및 기타 방법을 사용할 수 있습니다.

데이터 유출을 효과적으로 방지할 수 있지만 이러한 방법은 복원이 필요하지 않은 데이터 암호화에만 적합합니다.

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

많은 프로젝트 멤버십 시스템에는 로그인 기억 기능이 필요합니다. 쿠키를 통해 기능을 구현할 때 고객 정보를 쿠키에 직접 저장해야 하기 때문에 쿠키에 직접 작성하면 필연적으로 보안숨겨진 위험이 발생합니다. 가역 암호화 후 쿠키에 저장하는 것이 비교적 안전합니다

함수 소스 코드

function encrypt($data, $key) { 
$prep_code = serialize($data); 
$block = mcrypt_get_block_size('des', 'ecb'); 
if (($pad = $block - (strlen($prep_code) % $block)) < $block) { 
$prep_code .= str_repeat(chr($pad), $pad); 
} 
$encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB); 
return base64_encode($encrypt); 
} 

function decrypt($str, $key) { 
$str = base64_decode($str); 
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB); 
$block = mcrypt_get_block_size(&#39;des&#39;, &#39;ecb&#39;); 
$pad = ord($str[($len = strlen($str)) - 1]); 
if ($pad && $pad < $block && preg_match(&#39;/&#39; . chr($pad) . &#39;{&#39; . $pad . &#39;}$/&#39;, $str)) { 
$str = substr($str, 0, strlen($str) - $pad); 
} 
return unserialize($str); 
}

호출 함수

$key = &#39;okyo.cn&#39;; 
$data = array(&#39;id&#39; => 100, &#39;username&#39; => &#39;customer&#39;, &#39;password&#39; => &#39;e10adc3949ba59abbe56e057f20f883e&#39;); 
$snarr = serialize($data); 
$en = encrypt($data, $key); 
$de = decrypt($en, $key); 
echo "加密原型:"; 
print_r($data); 
echo " 
密钥:$key 
加密结果:$en 

解密结果:"; 
print_r($de);

위 내용은 PHP 가역적 암호화/복호화 기능 예제 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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