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 相关文章推荐
phpmyadmin操作流程
Oct 09 PHP
推荐php模板技术[转]
Jan 04 PHP
php下判断数组中是否存在相同的值array_unique
Mar 25 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
php面向对象的方法重载两种版本比较
Sep 08 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
php curl模拟post提交数据示例
Dec 31 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
laravel学习教程之关联模型
Jul 30 PHP
Laravel中的Auth模块详解
Aug 17 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 nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
九种js弹出对话框的方法总结
2013/03/12 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
2019/01/08 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
深入理解Python3中的http.client模块
2017/03/29 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
Python对象转换为json的方法步骤
2019/04/25 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Jupyter加载文件的实现方法
2020/04/14 Python
is_file和file_exists效率比较
2021/03/14 PHP
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
网站设计师的岗位职责
2013/11/21 职场文书
幼儿园课题实施方案
2014/05/14 职场文书