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 相关文章推荐
模拟OICQ的实现思路和核心程序(三)
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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投票程序源码
2007/03/11 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
php笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python set常用操作函数集锦
2017/11/15 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python 瀑布线指标编写实例
2020/06/03 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
化学教师教学反思
2014/01/17 职场文书
求职自荐信的格式
2014/04/07 职场文书
财务管理专业求职信
2014/06/11 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
优秀团员自我评价
2015/03/10 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL