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

 更新时间:2019年02月21日 09:28:59   作者:ztblog   我要评论

这篇文章主要介绍了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
还原:我是加密前的内容

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线DES加密/解密工具
http://tools.sxglgf.com/password/des_encode

MD5在线加密工具:
http://tools.sxglgf.com/password/CreateMD5Password

在线散列/哈希算法加密工具:
http://tools.sxglgf.com/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.sxglgf.com/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.sxglgf.com/password/sha_encode

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结

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

相关文章

  • php使用ereg验证文件上传的方法

    php使用ereg验证文件上传的方法

    这篇文章主要介绍了php使用ereg验证文件上传的方法,是非常简单实用的正则验证技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • PHP中变量引用与变量销毁机制分析

    PHP中变量引用与变量销毁机制分析

    这篇文章主要介绍了PHP中变量引用与变量销毁机制,较为深入的分析了PHP中变量的引用机制及其原理以及对应的变量的销毁机制,有助于深入理解PHP程序设计原理,需要的朋友可以参考下
    2014-11-11
  • PHP实现邮件群发的源码

    PHP实现邮件群发的源码

    本篇文章是对用PHP实现邮件群发的代码进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 浅析Mysql 数据回滚错误的解决方法

    浅析Mysql 数据回滚错误的解决方法

    以下小编为大家介绍一下关于Mysql数据回滚错误的解决方法。需要的朋友可以过来参考下
    2013-08-08
  • php 魔术方法详解

    php 魔术方法详解

    本文给大家介绍了php面向对象当中的几个魔术方法,并对此进行一一详细介绍,希望对新手有所帮助。
    2014-11-11
  • PHP引用的调用方法分析

    PHP引用的调用方法分析

    这篇文章主要介绍了PHP引用的调用方法,结合实例形式分析了PHP中引用的常见调用技巧,需要的朋友可以参考下
    2016-04-04
  • php中常用的预定义变量小结

    php中常用的预定义变量小结

    常用的php预定义变量,需要的朋友可以收藏下,方便以后使用
    2012-05-05
  • php实现的递归提成方案实例

    php实现的递归提成方案实例

    这篇文章主要介绍了php实现的递归提成方案,以完整实例形式较为详细的分析了php提成方案的金沙国际官网设计及功能实现技巧,涉及PHP数学运算的相关技巧,需要的朋友可以参考下
    2015-11-11
  • PHP中addslashes与mysql_escape_string的区别分析

    PHP中addslashes与mysql_escape_string的区别分析

    这篇文章主要介绍了PHP中addslashes与mysql_escape_string的区别,简单分析了addslashes与mysql_escape_string在使用过程中的区别,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-04-04
  • 使用PHP的日期与时间函数技巧

    使用PHP的日期与时间函数技巧

    任何一种语言,日期和时间函数都是我们常使用的,下面就教你PHP下的日期和时间的技巧
    2008-04-04

最新评论