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框架Phpbean说明
Jan 10 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
php导入excel文件到mysql数据库的方法
Jan 14 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 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
php格式化日期和时间格式化示例分享
2014/02/24 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
prettify 代码高亮着色器google出品
2010/12/28 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
软件配置管理有什么好处
2015/04/15 面试题
大学生职业规划前言模板
2013/12/27 职场文书
个人委托书格式
2014/04/04 职场文书
小学作文评语大全
2014/04/21 职场文书
法制教育演讲稿
2014/09/10 职场文书
财务工作失职检讨书
2014/11/21 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android