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中如何调用webservice的实例参考
Apr 25 PHP
zf框架的校验器InArray使用示例
Mar 13 PHP
PHP中数组的分组排序实例
Jun 01 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
codeigniter实现get分页的方法
Jul 10 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 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_Flame(Version:Progress)的原代码
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
PHP中header用法小结
2016/05/23 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
javascript调试说明
2010/06/07 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
用jquery中插件dialog实现弹框效果实例代码
2013/11/15 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python中的随机函数小结
2018/01/27 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
什么是设计模式
2012/06/17 面试题
HR喜欢的自荐信格式
2013/10/08 职场文书
文化宣传方案
2014/03/13 职场文书
社区消防工作实施方案
2014/03/21 职场文书
庆祝教师节标语
2014/10/09 职场文书
行政上诉状范文
2015/05/23 职场文书