元旦小礼物 – 加密的大波
原文地址: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。



博主你好, 我们撞车了呵呵. 我最开始也想了层数, 后来我发现其实1层就够了.
https://twitter.com/xmms2_mac/statuses/7110654195
有点问题,出现了N个我没有follow的人的tweet,但是我用twitter中文圈看就没有。
Google浏览器下面无法回复~
@jkfzero
奇怪,我这里好好地啊,一切正常
下载去玩玩
新年快乐
我个人觉得要安全的话还是用HTTPS
真要搞其实一层也够。
其实DABR最常用还是在手机上,手机的浏览器可经不起这么搞
@HicroKee
没错,手机上很容易就把浏览器搞死了
只是这种加密的方式,不仅可用于dabr
HTTP层加密的话,有个PHPRPC库使用TEA算法实现非对称算法加密,比RSA加密级别还高,有兴趣可调研下;
Dabr主要还是给移动设备用,js性能一般不好,其实只要做下base64转换已经能够避免关键词审查了
@BOYPT
base64运算量未免太小吧,gfw可是连gzip都支持的
支持下!
技术文章啊
真是道高一尺,魔高一丈啊
没啥惊喜呀~~~