1. 云栖社区>
  2. PHP教程>
  3. 正文

DES函数加密算法

作者:用户 来源:互联网 时间:2017-11-30 13:48:35

算法函数加密des

DES函数加密算法 - 摘要: 本文讲的是DES函数加密算法,<?php /** * 用DES算法加密/解密字符串 * *@param string $string 待加密的字符串 @param string $key 密匙,和管理后台需保持一致@return string 返回经过加密/解密的

<?php
/** * 用DES算法加密/解密字符串 * *
@param string $string 待加密的字符串
@param string $key 密匙,和管理后台需保持一致
@return string 返回经过加密/解密的字符串
*/
// 加密,注意,加密前需要把数组转换为json格式的字符串
function des_encrypt($string, $key) {
$size = mcrypt_get_block_size('des', 'ecb');
$string = mb_convert_encoding($string, 'GBK', 'UTF-8');
$pad = $size - (strlen($string) % $size);
$string = $string . str_repeat(chr($pad), $pad);
$td = mcrypt_module_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
@mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic($td, $string);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$data = base64_encode($data);
return $data;
}
// 解密,解密后返回的是json格式的字符串
function des_decrypt($string, $key) {
$string = base64_decode($string);
$td = mcrypt_module_open('des', '', 'ecb', '');
$iv = @mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
@mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $string);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$pad = ord($decrypted{strlen($decrypted) - 1});
if($pad > strlen($decrypted)) {
return false;
}
if(strspn($decrypted, chr($pad), strlen($decrypted) - $pad) != $pad) {
return false;
}
$result = substr($decrypted, 0, -1 * $pad);
$result = mb_convert_encoding($result, 'UTF-8', 'GBK');
return $result;
}
?>

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索算法 , 函数 , 加密 des ,以便于您获取更多的相关知识。