IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

七月、前端攻城师王子墨 2012-12-21 13:38:39 累计浏览 8,129 次
本机暂存

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

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

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

   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. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,258)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,157)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,404)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,140)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,783)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,530)
  7. Redis消息队列的若干实现方式 (累计阅读 12,077)
  8. 到底什么是MVC? (累计阅读 11,851)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,693)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,483)