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中养成7个面向对象的好习惯
Jul 17 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 PHP
PHP+Ajax 检测网络是否正常实例详解
Dec 16 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 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
域名查询代码公布
2006/10/09 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
根据key删除数组中指定的元素实现方法
2017/03/02 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
JS实现图片放大缩小的方法
2017/02/15 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
python中from module import * 的一个坑
2014/07/20 Python
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
解读! Python在人工智能中的作用
2017/11/14 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
监理员的岗位职责
2013/11/13 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
法律顾问服务方案
2014/05/15 职场文书
全国文明单位申报材料
2014/05/31 职场文书
见习报告格式要求
2014/11/04 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js