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公用函数列表[正则]
Feb 22 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
Drupal7连接多个数据库及常见问题解决
Mar 02 PHP
php格式化日期实例分析
Nov 12 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 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 mysql索引问题
2008/06/07 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
php查询内存信息操作示例
2019/05/09 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
原生js调用json方法总结
2018/02/22 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
python画一个玫瑰和一个爱心
2020/08/18 Python
浅析python继承与多重继承
2018/09/13 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
清洁工表扬信
2014/01/08 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
个人委托函范文
2015/01/29 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
2019学生会干事辞职信
2019/06/27 职场文书