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 22 PHP
Php header()函数语法及使用代码
Nov 04 PHP
Linux下php5.4启动脚本
Aug 03 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
thinkphp中session和cookie无效的解决方法
Dec 19 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
php中序列化与反序列化详解
Feb 13 PHP
php 7新特性之类型申明详解
Jun 06 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
php判断数组是否为空的实例方法
May 10 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
基于jquery的tab切换 js原理
2010/04/01 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
python学习基础之循环import及import过程
2018/04/22 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
python爬虫基础知识点整理
2020/06/02 Python
Python decimal模块使用方法详解
2020/06/08 Python
Python 没有main函数的原因
2020/07/10 Python
python opencv肤色检测的实现示例
2020/12/21 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
人力资源管理专业应届生求职信
2013/09/28 职场文书
行政主管职责范本
2014/03/07 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
争先创优演讲稿
2014/09/15 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
廉洁自律个人总结
2015/02/14 职场文书
春节慰问简报
2015/07/21 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android