Loading...

    AD: 猛买网,精彩团购 | Jobsdigg | 很棒的男装店 | 网站地图

元旦小礼物 – 加密的大波

可任意转载,但必须在醒目位置以超链接形式标明文章原始出处和作者信息
原文地址:http://www.blogkid.net/archives/2642.html

上周霍炬做了一个php和js两端做rsa加解密的demo,昨天我和杜欢讨论了一下,他建议其实不一定要用RSA,即使用对称加密也把key暴露出来,只要运算量够大,就可以达到目的。

顺着这思路,我实现了一个更简单的加解密,把所有要输出的内容,在服务器端按位异或,然后在js中再异或回来。这么做运算量还太小,但由于PHP中ob_start() 函数是stackable的,上述的加解密过程可以嵌套多层:解开一层js,发现其中还是一层js。估计尝试解密并过滤的兄弟,一定会很崩溃的。

我顺便做了一个dabr修改版,即可支持自定义层次的加密,解密的过程会在浏览器自动进行。演示地址:http://1fuck63.com/ 。尝试查看一下网页源代码,只有一行,任何可读的字符都没有留下。

我测试时,使用两层的加密,在firefox解密的时间就超过了100ms,在IE6中超过了300ms。使用三层时,已经慢得不得了了(因为每次加密都会导致内容的长度暴涨)。

此修改版的下载地址在:http://1fuck63.com/dabr.tar.gz ,如果大家不放心,可仅替换index.php, common/theme.php这两个文件, 并在根目录下增加jsencode.php。在jsencode.php中,第二行 define(‘ENCODE_DEPTH’, x); 定义了使用几层加密。设为2已经足够了。解密时引用了霍炬脚本中的一个函数,望莫怪。

祝大家元旦快乐。

UPDATE: 看到有朋友留言,说不带这么折腾dabr的,因为大家多数是用手机上的。其实这种加密方式可以用在任何系统里面,只要引入了压缩包中的jsencode.php文件,很容易就可以改造出一个加密版的wordpress。

HicroKee

13 Responses to “元旦小礼物 – 加密的大波”


  1. 博主你好, 我们撞车了呵呵. 我最开始也想了层数, 后来我发现其实1层就够了.
    https://twitter.com/xmms2_mac/statuses/7110654195

  2. 2jkfzero

    有点问题,出现了N个我没有follow的人的tweet,但是我用twitter中文圈看就没有。

  3. Google浏览器下面无法回复~

  4. @jkfzero
    奇怪,我这里好好地啊,一切正常

  5. 下载去玩玩 :razz: 新年快乐

  6. 我个人觉得要安全的话还是用HTTPS
    真要搞其实一层也够。

    其实DABR最常用还是在手机上,手机的浏览器可经不起这么搞

  7. @HicroKee
    没错,手机上很容易就把浏览器搞死了 :D
    只是这种加密的方式,不仅可用于dabr

  8. HTTP层加密的话,有个PHPRPC库使用TEA算法实现非对称算法加密,比RSA加密级别还高,有兴趣可调研下;

    Dabr主要还是给移动设备用,js性能一般不好,其实只要做下base64转换已经能够避免关键词审查了

  9. @BOYPT
    base64运算量未免太小吧,gfw可是连gzip都支持的

  10. 支持下!

  11. 技术文章啊

  12. 真是道高一尺,魔高一丈啊

  13. 没啥惊喜呀~~~

Leave a Reply