URL参数对称加密---PHP语言版本
来源:互联网 发布:软件页面设计规范 编辑:程序博客网 时间:2024/06/03 05:18
本文为原创,禁止转载。
在设计到页面分享的活动中,需要对分享页面上的参数进行加密,以防止因为明文被人恶意攻击网站。于是,我用上了对称加密中比较简洁的异或加密。
一. 基础方法
为了简单易行,设计上,我将所有参数以json对象封装起来,然后再进行加密:
1. json封装对象
$data = json_encode($data);
2.异或对称加密(两种方法,自行选择)
/** * 方法1 * 直接异或对称加密*/function xor_enc($str,$key){ $crytxt = ''; $keylen = strlen($key); for($i=0;$i<strlen($str);$i++) { $k = $i%$keylen; $crytxt .= $str[$i] ^ $key[$k]; } return $crytxt; }
/** * 方法2(使用该函数要求秘钥数据不能具有周期性【如:123123就是不行的】,否则加密可能无效) * 异或对称加密 * 利用a^b^c = a^(b^c) * 若数据比秘钥短,则秘钥超出部分会以数据长度为周期循环运算加密 * 若数据比秘钥长,则秘钥周期延长运算加密数据 * 最终原始数据和加密数据长度一样长 */function xor_enc($data,$key){ $crytxt = ''; $dataLen = strlen($data); $keyLen = strlen($key); $cryCnt = ceil($keyLen/$dataLen); for($x=0; $x<$cryCnt;$x++){ $keySec = substr($key, $dataLen*$x,$dataLen); $keySecLen = strlen($keySec); for($i=0;($x==0&&$i<$dataLen)||($x>0&&$i<$keySecLen);$i++){ $k = $i%$keySecLen; if($x==0){ $crytxt .= $data[$i] ^ $keySec[$k]; }else{ $crytxt[$i] = $crytxt[$i] ^ $keySec[$k]; } } } return $crytxt;}
- 加密后的数据可能不是字符串,那就利用特殊方法将数据转为字符串
$data = bin2Str($data); //自定义数据转字符串方法
- base64编码后形成的字符串可能也不满足url编码,最后还要进行url编码
$data = urlencode($data);
二. 加密校验的改进加强
进行上述加密步骤后,的确能把信息进行加密并且在互联网上安全流通,但是很容易有个问题,如果密文上的某个字符被篡改,而不影响解析出来的json格式解析流程,并且刚好改变了其中动态变化的数据,这就尴尬了,这程序上是无法识别该数据的正确性的,因此还需要对加密前数据还要进行进一步处理。
如,在原数据的前面或者后面加上32位的CRC校验码:
function crcFixEnc($data){ //此处自由发挥}function crcFixDec($data){ //此处自由发挥}//加密前crcFixEnc($jsondata);//解密后校验$jsondata = crcFixDec($data);
0 0
- URL参数对称加密---PHP语言版本
- php对称加密与非对称加密
- php对称加密
- php对称加密
- php 对称加密
- PHP简单对称加密
- Php对称加密工具类
- PHP DES 对称-加密解密
- php rsa 非对称加密
- PHP实现非对称加密
- PHP实现非对称加密
- php实现非对称加密
- php实现非对称加密
- PHP实现简单对称加密
- php获取加密url参数乱码问题处理
- url参数加密方法
- url中参数加密
- url中的参数加密
- 安卓方法——equals()
- JDBC之数据库连接池和SQL注入攻击
- String方法遇到的坑
- Linux 下javaweb 配置
- 避免在指针的容器上使用类似remove的算法造成的内存泄漏
- URL参数对称加密---PHP语言版本
- Pandas 合并数据集
- 2016年个人工作总结、生活总结 和 2017年个人工作计划、生活计划
- 在ASHX中使用GZip压缩输出的文字流
- Android View坐标getLeft, getRight, getTop, getBottom解惑
- 移动平台对 meta 标签的定义
- neutron(2)
- 阅读图像显著性检测论文四:Saliency Filters Contrast Based Filtering for Salient Region Detection
- 我的go语言学习之旅----序