>  기사  >  백엔드 개발  >  PHP mcrypt() 가역 암호화 알고리즘 분석

PHP mcrypt() 가역 암호화 알고리즘 분석

怪我咯
怪我咯원래의
2017-07-23 10:55:181672검색

데이터 암호화는 우리 삶에서 점점 더 중요해지고 있으며, 특히 인터넷에서 발생하는 대량의 거래와 전송되는 대량의 데이터를 고려할 때 더욱 그렇습니다. 원본 데이터로 복원할 필요가 없는 정보에 대해서는 MD5, SHA1 등의 비가역적 암호화 알고리즘을 이용해 데이터를 암호화할 수 있습니다. 단, 거래정보 등 원본 데이터로 복원해야 하는 중요한 정보는 암호화해야 합니다. 복원 가능한 암호화 알고리즘을 사용합니다. 물론 가역적 암호화 알고리즘을 직접 작성하여 암호화 및 복호화 계산을 수행할 수도 있습니다. 이 기사에서는 암호화 및 암호 해독 작업에 mcrypt 모듈을 사용하는 방법을 소개합니다.

Mcrypt의 장점은 많은 암호화 알고리즘을 제공할 뿐만 아니라 Windows에서 PHP 패키지와 함께 출시된다는 것입니다. 또한 데이터를 암호화/해독할 수 있다는 점과 35가지 기능을 포함한 DES 알고리즘도 제공합니다. 데이터 처리를 위해.

/** 
+----------------------------------------------------- 
* Mcrypt 加密/解密 
* @param String $date 要加密和解密的数据 
* @param String $mode encode 默认为加密/decode 为解密 
* @return String 
* @author zxing@97md.net Mon Sep 14 22:59:28 CST 2009 
+----------------------------------------------------- 
* @example 
*/ 
function ZxingCrypt($date,$mode = 'encode'){ 
$key = md5('zxing');//用MD5哈希生成一个密钥,注意加密和解密的密钥必须统一 
if ($mode == 'decode'){ 
$date = base64_decode($date); 
} 
if (function_exists('mcrypt_create_iv')){ 
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
} 
if (isset($iv) && $mode == 'encode'){ 
$passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
}elseif (isset($iv) && $mode == 'decode'){ 
$passcrypt = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $date, MCRYPT_MODE_ECB, $iv); 
} 
if ($mode == 'encode'){ 
$passcrypt = base64_encode($passcrypt); 
} 
return $passcrypt; 
}


위 내용은 PHP mcrypt() 가역 암호화 알고리즘 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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