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应用提速面面观
Oct 09 PHP
php运行出现Call to undefined function curl_init()的解决方法
Nov 02 PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
php7 安装yar 生成docker镜像
May 09 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 PHP
php pdo连接数据库操作示例
Nov 18 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中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
javascript作用域问题实例分析
2015/07/13 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
python函数不定长参数使用方法解析
2019/12/14 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
淘宝店策划方案
2014/06/07 职场文书
应聘教师自荐书
2014/06/16 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
2016公司年会主持词
2015/07/01 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android