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&amp;&amp;mysql)三
Oct 09 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
Zend framework处理一个http请求的流程分析
Feb 08 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
使用PHP实现蜘蛛访问日志统计
Jul 05 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
Laravel 5 学习笔记
Mar 06 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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 分页函数multi() discuz
2009/06/21 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
ThinkPHP控制器详解
2015/07/27 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
浅析JavaScript声明变量
2015/12/21 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
详解Node 定时器
2018/02/26 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
AI人工智能 Python实现人机对话
2017/11/13 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
Django model update的多种用法介绍
2020/03/28 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
利用python爬取有道词典的方法
2020/12/08 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
计算机求职信
2013/12/01 职场文书
安全教育感言
2014/03/04 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2014年维稳工作总结
2014/11/18 职场文书
2015年端午节活动方案
2015/05/05 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL