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 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
php中的时间显示
Jan 18 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 PHP
php随机抽奖实例分析
Mar 04 PHP
PHP实现事件机制的方法
Jul 10 PHP
eclipse php wamp配置教程
Jun 30 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 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
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
jQuery版仿Path菜单效果
2011/12/15 Javascript
AngularJS内置指令
2015/02/04 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
师范生实习个人的自我评价
2013/09/28 职场文书
办公室助理岗位职责
2013/12/25 职场文书
写自荐信三大法宝
2014/01/24 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
培训协议书范本
2014/04/22 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
天下第一关导游词
2015/02/06 职场文书
英文版辞职信
2015/02/28 职场文书
css height属性中的calc方法详解
2021/06/03 HTML / CSS
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python