IT技术博客大学习 共学习 共进步

网址加密(URL加密)(RC4、PHP、密钥长度可变)

七月、前端攻城师王子墨 2012-12-21 13:38:39 浏览 8,003 次

   因为安全问题,我们需要网址加密。

   网址加密是一个很广泛的需求,但事实上很难搜索到一个能用在项目中的完整案例。

   百度,谷歌里面搜索:网址加密,可以找到有几种方法:

   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) ;

   ?>

建议继续学习

  1. 代理的加密部分 (阅读 8,245)
  2. 使用bcompiler对PHP文件进行加密 (阅读 5,383)
  3. 在浏览器中加密Cookie (阅读 5,384)
  4. 使用系统命令实现文件的压缩与加密 (阅读 5,185)
  5. 公钥私钥加密解密数字证书数字签名详解 (阅读 5,124)
  6. 加密你的shell (阅读 4,845)
  7. 可逆的加密方法(Mcrypt Encryption Functions) (阅读 4,725)
  8. 跨越千年的RSA算法 (阅读 4,184)
  9. 如何“加密”你的email地址 (阅读 4,164)
  10. 具有时效性的PHP字符串加密解密函数 (阅读 4,102)