php使用异或实现的加密解密实例


Posted in PHP onSeptember 04, 2013

若a=b ^ c;则b=a ^ c (^是异或的意思),php在处理异或的字符时先把字符转化为二进制的ascii值,对这些值进行异或,获取结果后在将ascii值转化为字符,原理说晚了直接贴实现的代码:

echo '<meta charset="utf-8">';
  $str='世界,你好';  
  function jiami($str,$key){
   $key=md5($key);
   $k=md5(rand(0,100));//相当于动态密钥
   $k=substr($k,0,3);
   $tmp="";
   for($i=0;$i<strlen($str);$i++){
    $tmp.=substr($str,$i,1) ^ substr($key,$i,1);
   }
   return base64_encode($k.$tmp);
  }  
  function jiemi($str,$key){
   $len=strlen($str);
   $key=md5($key);
   $str=base64_decode($str);
   $str=substr($str,3,$len-3);
   $tmp="";
   for($i=0;$i<strlen($str);$i++){
    $tmp.=substr($str,$i,1) ^ substr($key,$i,1);
   }    
   return $tmp;
  }  
  $key='cc';
  $jh=jiami($str, $key);
  echo '加密前:'.$str.'<br>';
  echo '加密后:'.$jh.'<br>';
  echo '解密后:'.jiemi($jh, $key).'<br>';

有机会在完善下,本函数实现的是简单的加密解密
PHP 相关文章推荐
基于PHP+MySQL的聊天室设计
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
Laravel 添加多语言提示信息的方法
Sep 29 PHP
PHP中数组定义的几种方法
Sep 01 #PHP
对淘宝URL中ID提取的PHP代码
Sep 01 #PHP
怎么在Windows系统中搭建php环境
Aug 31 #PHP
深入解析php中的foreach函数
Aug 31 #PHP
如何使用php输出时间格式
Aug 31 #PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 #PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 #PHP
You might like
NO3第三帝国留言簿制作过程
2006/10/09 PHP
php中cookie的作用域
2008/03/27 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
JS前端笔试题分析
2016/12/19 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Python日期的加减等操作的示例
2017/08/15 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python logging模块的使用详解
2020/10/23 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
Delphi软件工程师试题
2013/01/29 面试题
教师求职自荐书
2014/06/14 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis
js前端图片加载异常兜底方案
2022/06/21 Javascript