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中PDO的错误处理
Sep 04 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
Oct 10 PHP
php调用自己java程序的方法详解
May 13 PHP
Yii CGridView用法实例详解
Jul 12 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 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连接mssql:pdo odbc sql server
2011/07/20 PHP
php在文件指定行中写入代码的方法
2012/05/23 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php删除指定目录的方法
2015/04/03 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
js 操作select相关方法函数
2009/12/06 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python字典简介以及用法详解
2016/11/15 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python利用递归实现文件的复制方法
2018/10/27 Python
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Python的pygame安装教程详解
2020/02/10 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
英语专业学生个人求职信
2014/01/28 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python