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 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
php调用自己java程序的方法详解
May 13 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP微信分享开发详解
Jan 14 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
laravel5环境隐藏index.php后缀(apache)的方法
Oct 12 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
php生成微信红包数组的方法
2019/09/05 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
Python 对象中的数据类型
2017/05/13 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
python中def是做什么的
2020/06/10 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
编写strcpy函数
2014/06/24 面试题
学生期末评语大全
2014/04/30 职场文书
作风建设演讲稿
2014/05/23 职场文书
师范大学生求职信
2014/06/13 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
四年级学生期末评语
2014/12/26 职场文书
安全生产奖惩制度
2015/08/06 职场文书
详解JS数组方法
2021/11/20 Javascript
聊聊Python String型列表求最值的问题
2022/01/18 Python