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格式化工具Beautify PHP小小BUG
Apr 24 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
浅谈php中mysql与mysqli的区别分析
Jun 10 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
Apr 15 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
js验证表单第二部分
2006/11/25 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
Python读写docx文件的方法
2018/05/08 Python
python numpy格式化打印的实例
2018/05/14 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
pandas分组聚合详解
2020/04/10 Python
python中列表的含义及用法
2020/05/26 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
编写python代码实现简单抽奖器
2020/10/20 Python
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
服务员自我评价
2014/01/25 职场文书
实验心得体会
2014/09/05 职场文书
离婚协议书格式
2014/11/21 职场文书
停电调休通知
2015/04/16 职场文书
培训计划通知
2015/07/15 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android