/**
* 数据传输加密方法
*
* @param array $data 需要加密的数组
* @param string $key 秘钥,如果为空则使用系统默认的秘钥
* @return boolean|string
*/
function encrypt_get_data($data, $key='')
{
if (!$key) {
$key = '123456';
}
if (!is_array($data))
{
return false;
}
$data['en_time'] = time();
$string = json_encode($data);
$crypttext = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
$encrypted = trim(safe_b64encode($crypttext));//对特殊字符进行处理
return $encrypted;
}
/**
* 数据传输解密方法
*
* @param str $encrypted 加密的字符串
* @param string $key 秘钥,如果为空则使用系统默认的秘钥
* @return string
*/
function decrypt_get_data($encryptStr, $key='')
{
if (!$key) {
$key = '123456';
}
$crypttexttb = safe_b64decode($encryptStr);//对特殊字符解析
$decryptedtb = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($crypttexttb), MCRYPT_MODE_CBC, md5(md5($key))), "\0");//解密函数
return json_decode($decryptedtb, true);
}
//处理特殊字符
function safe_b64encode($string) {
$data = base64_encode($string);
$data = str_replace(array('+','/','='),array('-','_',''),$data);
return $data;
}
//解析特殊字符
function safe_b64decode($string) {
$data = str_replace(array('-','_'),array('+','/'),$string);
$mod4 = strlen($data) % 4;
if ($mod4) {
$data .= substr('====', $mod4);
}
return base64_decode($data);
}
转载于:https://my.oschina.net/wuxueshi/blog/1556147