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 is_dir() 判断给定文件名是否是一个目录
May 10 PHP
php购物车实现代码
Oct 10 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
如何在php中正确的使用json
Aug 06 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
php生成无限栏目树
Mar 16 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
php解压缩zip和rar压缩包文件的方法
Jul 10 PHP
php与阿里云短信接口接入操作案例分析
May 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中多维数组的foreach遍历示例
2014/06/13 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
javascript闭包入门示例
2014/04/30 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
python开发中range()函数用法实例分析
2015/11/12 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python调用OpenCV实现人脸识别功能
2018/05/25 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
出国导师推荐信
2014/01/16 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
让生命充满爱观后感
2015/06/08 职场文书
个人催款函范文
2015/06/24 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL