PHP加密解密函数详解


Posted in PHP onOctober 28, 2015

分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。
加密代码如下:

/* 
*功能:对字符串进行加密处理 
*参数一:需要加密的内容 
*参数二:密钥 
*/ 
function passport_encrypt($str,$key){ //加密函数 
  srand((double)microtime() * 1000000); 
  $encrypt_key=md5(rand(0, 32000)); 
  $ctr=0; 
  $tmp=''; 
  for($i=0;$i<strlen($str);$i++){ 
    $ctr=$ctr==strlen($encrypt_key)?0:$ctr; 
    $tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]); 
  } 
  return base64_encode(passport_key($tmp,$key)); 
}

解密代码如下:

/* 
*功能:对字符串进行解密处理 
*参数一:需要解密的密文 
*参数二:密钥 
*/ 
function passport_decrypt($str,$key){ //解密函数 
  $str=passport_key(base64_decode($str),$key); 
  $tmp=''; 
  for($i=0;$i<strlen($str);$i++){ 
    $md5=$str[$i]; 
    $tmp.=$str[++$i] ^ $md5; 
  } 
  return $tmp; 
}

辅助函数:

/* 
*辅助函数 
*/ 
function passport_key($str,$encrypt_key){ 
  $encrypt_key=md5($encrypt_key); 
  $ctr=0; 
  $tmp=''; 
  for($i=0;$i<strlen($str);$i++){ 
    $ctr=$ctr==strlen($encrypt_key)?0:$ctr; 
    $tmp.=$str[$i] ^ $encrypt_key[$ctr++]; 
  } 
  return $tmp; 
}

使用如下所示:

$str='作者:余浩苗;电话:13611972365;电子邮件:123cvbz@163.com'; 
 
$key='hacker'; 
$encrypt=passport_encrypt($str,$key); 
$decrypt=passport_decrypt($encrypt,$key); 
 
echo '原文:',$str."<br><hr>"; 
echo '密文:',$encrypt."<br><hr>"; 
echo '译文:',$decrypt."<br><hr>";

以上就是为大家分享的php加密解密函数,希望大家喜欢,可以应用到自己的学习中。

PHP 相关文章推荐
用文本作数据处理
Oct 09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
php下使用curl模拟用户登陆的代码
Sep 10 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
php实现阳历阴历互转的方法
Oct 28 #PHP
PHP框架Laravel学习心得体会
Oct 28 #PHP
php抓取并保存网站图片的实现代码
Oct 28 #PHP
php判断当前操作系统类型
Oct 28 #PHP
详解PHP序列化反序列化的方法
Oct 27 #PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 #PHP
php常量详细解析
Oct 27 #PHP
You might like
一个捕获函数输出的函数
2007/02/14 PHP
php csv操作类代码
2009/12/14 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
asp.net和php的区别点总结
2019/10/10 PHP
PHP中isset、empty的用法与区别示例详解
2020/11/05 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
JQuery插件tablesorter表格排序实现过程解析
2020/05/28 jQuery
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python守护进程用法实例分析
2015/06/04 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
广州盈通面试题
2015/12/05 面试题
应届毕业生应聘自荐信范文
2014/02/26 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python