服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|

PHP基于mcript扩展实现对称加密功能示例

2019-06-11 11:14来源:ztblog所属分类:PHP教程

这篇文章主要介绍了PHP基于mcript扩展实现对称加密功能,结合实例形式简单分析了php使用mcript扩展进行加密与解密相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP基于mcript扩展实现对称加密功能。分享给大家供大家参考,具体如下:

1.对称加密主要利用相同的密钥来实现,而非对称加密利用公钥和私钥来加密,比较而言对称加密速度快,但是安全性要低

为什么使用base64_encode(),主要是用于传参,直接加密完成后不是我们能理解的字符串,也就是大家所说的乱码

2.进行加密(使用mcript扩展,DES类型),关键点在于$key="key:1111",相同的密钥串

<?php
header("content-type:text/html;charset=utf-8");
$str = "我是加密前的内容"; //加密内容
$key = "key:1111"; //密钥
$cipher = MCRYPT_DES; //密码类型
$modes = MCRYPT_MODE_ECB; //密码模式
$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>";
echo $str_encrypt=base64_encode($str_encrypt);

运行结果:

加密明文:我是加密前的内容
加密密文:���v꺾�"����c����~�Zi

trn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf

3.进行解密,$key="key:1111",相同的密钥串

<?php
header("content-type:text/html;charset=utf-8");
$key = "key:1111"; //密钥
$cipher = MCRYPT_DES; //密码类型
$modes = MCRYPT_MODE_ECB; //密码模式
$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);//初始化向量
$str_encrypt="trn1duq6vt4i8v66Ea9jo7qZ2X7JWmkf";//这里的值是第2步中的$str_encrypt=base64_encode($str_encrypt);
$str_encrypt=base64_decode($str_encrypt);
echo "加密密文:".$str_encrypt." <p>";
$str_decrypt = mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); //解密函数
echo "还原:".$str_decrypt;

运行结果:

加密密文:���v꺾�"����c����~�Zi 
还原:我是加密前的内容

希望本文所述对大家PHP程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • PHP教程CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析

    这篇文章主要介绍了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患,结合实例形式分析了CodeIgniter框架中针对特殊字符的过滤及SQL注入隐患的相关原理,需要的朋友可以参考下...

    流风,飘然的风 405 2019-06-09
  • PHP教程php-fpm中max_children的配置

    php-fpm中max_children的配置

    今天小编就为大家分享一篇关于php-fpm中max_children的配置,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    CODETC 317 2019-05-30
  • PHP教程浅谈PHP各环境下的伪静态配置

    浅谈PHP各环境下的伪静态配置

    这篇文章主要介绍了PHP各环境下的伪静态配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    每①天都是↗开始 247 2019-06-01
  • PHP教程详解PHP的抽象类和抽象方法以及接口总结

    详解PHP的抽象类和抽象方法以及接口总结

    这篇文章主要介绍了PHP的抽象类和抽象方法以及接口总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    Steven* 329 2019-05-30
  • PHP教程浅谈PHP无限极分类原理

    浅谈PHP无限极分类原理

    这篇文章主要介绍了PHP无限极分类原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    yangzailu 444 2019-05-31
  • PHP教程php中iconv函数使用方法

    php中iconv函数使用方法

    最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。...

    服务器之家 235 2019-05-29
  • PHP教程详解PHP队列的实现

    详解PHP队列的实现

    这篇文章主要介绍了PHP队列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    方先森 191 2019-05-31
  • PHP教程PHP levenshtein()函数用法讲解

    PHP levenshtein()函数用法讲解

    今天小编就为大家分享一篇关于PHP levenshtein()函数用法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册 133 2019-06-03