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 相关文章推荐
消息持续发送的完整例子
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
PHP如何编写易读的代码
Jul 10 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
抓取并下载CSS中所有图片文件的php代码
Sep 26 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php检测图片主要颜色的方法
Jul 01 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
调试php程序的简单步骤
Oct 04 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP引用的调用方法分析
2016/04/25 PHP
删除重复数据的算法
2006/11/23 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
js格式化时间小结
2014/11/03 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
layUI实现列表查询功能
2019/07/27 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
毕业生求职简历中的自我评价
2013/10/18 职场文书
房地产广告词大全
2014/03/19 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
家长通知书家长意见
2015/06/03 职场文书
导游词之安徽九华山
2019/09/18 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP