网址加密(URL加密)(RC4、PHP、密钥长度可变)
因为安全问题,我们需要网址加密。
网址加密是一个很广泛的需求,但事实上很难搜索到一个能用在项目中的完整案例。
百度,谷歌里面搜索:网址加密,可以找到有几种方法:
1、大量无用的垃圾信息。
2、大量垃圾的无用信息。
3、用Base64方式“加密、解密”。
4、自己开发的加密算法。
事实上,Base64算不上真正的加密,它仅仅是一种编码转换。
并且标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。
我从来不建议 自己写的加密算法。
加密算法的安全性,绝不是靠算法的隐蔽来实现。现代密码学理论,“一切秘密寓于密钥之中”,安全来自于算法的安全和密钥安全。
历史已经反复证明:自己写的加密算法,经不住数学家的分析。
—————-
既然找不到一个实例,于是我决定自己选一个加密算法。
网址加密,有两个要求:在保证安全性的同时,时间代价要小、加密结果要足够短。
想到两个符合上述的条件的算法:AES 、RC4。
AES 是一种很优秀、流行的分组加密方法,但是他的加密结果比较长,哪怕你加密 一个字节的字符串,加密结果长度会超过30,并且随着加密数据的长度的增长,加密结果迅速增大,加密ID还行,对于加密比较长的字符串,确实有很多不便。
RC4 虽然很优秀、快速,安全,但是没有什么名分。
RC4 的加密后的结果长度相对要短的许多,在加密网址上,更胜一筹。
综合之下,我还是选取了没有 AES 出名的 RC4 来加密。
现在把这个 RC4的php实现方法发出来,方便大家吧。
第一步:下载 class.rc4crypt.php。
第二步:
<?php
include(‘class.rc4crypt.php’);
$rc4 = new Crypt_RC4();
$rc4 -> setKey(‘abcdefgh123456′);
$text = ‘julying’;
echo $x = $rc4->encrypt($text);
echo ‘<br />’;
echo $rc4->decrypt( $x) ;
?>
建议继续学习:
- 在浏览器中加密Cookie (阅读:4567)
- 代理的加密部分 (阅读:4516)
- 使用bcompiler对PHP文件进行加密 (阅读:4342)
- 使用系统命令实现文件的压缩与加密 (阅读:4027)
- 公钥私钥加密解密数字证书数字签名详解 (阅读:4013)
- 可逆的加密方法(Mcrypt Encryption Functions) (阅读:3701)
- 加密你的shell (阅读:3611)
- 如何“加密”你的email地址 (阅读:3149)
- 具有时效性的PHP字符串加密解密函数 (阅读:3110)
- 跨越千年的RSA算法 (阅读:2987)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:王子墨 来源: 七月、前端攻城师王子墨
- 标签: RC4 加密
- 发布时间:2012-12-21 13:38:39
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [53] 如何拿下简短的域名
- [52] 图书馆的世界纪录
- [52] android 开发入门
- [50] Go Reflect 性能
- [50] Oracle MTS模式下 进程地址与会话信
- [48] 【社会化设计】自我(self)部分――欢迎区
- [47] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑