• 0
  • 0

PHP加密函数总结

2019-09-06 195 0 admin 所属分类:PHP 记录

PHP内置加密函数

函数名  描述
 md5 单向加密,返回32位十六进制形式字符串,可以通过枚举、碰撞的方式破解
 crypt 单向散列算法,第一个参数为需要加密的字符串,第二个为盐值
 sha1 单向散列算法,返回40位长度字符串
 urlencode 双向加密,严格应该是编码

重要的敏感数据进行多次加密,以防被轻易破解  

PHP加密扩展库  Mcrypt

需要在配置文件中开启  extension=php_mcrypt.dll

// 查看加密种类
function showMcrypyKinds() {
    if (!function_exists('mcrypt_list_algorithms')) {
        exit('没开启Mcrypt加密');
    }
    //函数返回 Mcrypt支持的加密算法数组
    $atr = mcrypt_list_algorithms();
    echo "支持算法类型有:<br/>";
    echo "<pre>";
    print_r($atr);
    echo "</pre>";
}
//查看加密模式
function showMcrypyModes() {
    if (!function_exists('mcrypt_list_algorithms')) {
        exit('没开启Mcrypt加密');
    }
    $atr = mcrypt_list_modes();
    echo "支持加密模式有:<br/>";
    echo "<pre>";
    print_r($atr);
    echo "</pre>";
}
$str = "被加密的内容:加密内容............."; //加密文本
$key = "abcdefgh"; //将密钥长度截取到8位,这样能兼容5.6后的PHP版本
$cipher = MCRYPT_DES; //密码类型
// ECB加密模式不需要创建iv初始化向量 非ECB模式需要保存向量用于解密
$modes = MCRYPT_MODE_CBC; //密码模式
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher, $modes), MCRYPT_RAND); //初始化向量
echo "加密前:".$str."<p>";
$str_encrypt = mcrypt_encrypt($cipher, $key, $str, $modes, $iv); //加密函数
echo "加密后:".$str_encrypt."<p>";
$str_decrypt = mcrypt_decrypt($cipher, $key, $str_encrypt, $modes, $iv); //解密函数
echo "还原:".$str_decrypt."<p>";

PHP加密扩展库 Mhash扩展库

基于离散数学原理的不可逆向的php加密方式扩展库,用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存

如上开启拓展

//查看加密模式
function showMhashKinds() {
	$num = mhash_count();  //函数返回最大的hash id
	echo "mhash库支持的算法有:
";
	for($i=0;$i<=$num;$i++){
		echo $i."=>".mhash_get_hash_name($i)."
"."";       //输出每一个hash id 的名称
	}
}
$str = '我的校验内容'; //读取文件内容到变量$str中
$hash = 2; //设置hash值
$password = "111"; //设置变量$password
$salt = "1234"; //设置变量$salt
$key = mhash_keygen_s2k(1, $password, $salt, 10); //生成key 值
$str_mhash = bin2hex(mhash($hash, $str, $key)); //使用$key 值、$hash值对字符串$str 加密
echo "校验码是:".$str_mhash; //输出校验码


返回顶部