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 相关文章推荐
php 表单数据的获取代码
Mar 10 PHP
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
dedecms中使用php语句指南
Nov 13 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
php之readdir函数用法实例
2014/11/13 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python编程argparse入门浅析
2018/02/07 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
Django 开发调试工具 Django-debug-toolbar使用详解
2019/07/23 Python
用python计算文件的MD5值
2020/12/23 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
上课不认真检讨书
2014/09/17 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
2014年底工作总结
2014/12/15 职场文书
行政经理岗位职责
2015/04/15 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
项目备案申请报告
2015/05/15 职场文书
师范生教育见习总结
2015/06/23 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书