【原】记一次加密网页html的研究

来源:互联网 发布:java计数函数怎么用 编辑:程序博客网 时间:2024/06/11 18:56

某次web编程,思考着辛辛苦苦编写的web别人 右键查看源码不就一目了然了?当然有些人会把script写入外部js引入,但也只是增加了查看源码的步骤。我就想把整个页面html都加密下,只是右键查看时,看不出代码。那么是否可行?用哪种方法?

首先html代码的动态生成,而不是直接输出。就需要js的document.write,动态插入html神器啊!

那么接下来就是考虑编码问题了,如果直接 document.write("<html>....</html>"); 也是可以的但是这跟不加密没啥区别。但是我还是先用这种方法测试了下,遇到了点麻烦,web编程经常遇到的多个双引号导致的字符串错误问题。为了避免这种双引号问题,就必须用编码来绕过。

 

现在流行的已知编码就几种,比如json,base64.那就先用json来试试。

json编码 运行如下:

右键查看源码,可以看见代码至少按我的思路运行正常了,而且遇到双引号问题也不出错了。中文被json 编码了,html代码还是被看到了大部分。加密的效果起到了1%吧。

 

接着试试base64

base64编码 运行如下:

 

右键查看代码,可以看出html全部加密了,但是根据数据长短分段换行还是可以看出html结构。 这个还是单行调用。

下面 改成链式调用

 

代码已经完全看不出原来的结构了。哈哈

 

接下来尝试用2进制编码:

 

接下来尝试用8进制编码:

 

 

接下来尝试用10进制编码(顺便增加了点无用符号增强混淆):

 

 

 

接下来尝试用16进制编码(无分隔符):

 

 

 

接下来尝试用16进制编码(有分隔符):

 

其实还有其他编码还有什么压缩编码,我也不怎么清楚,而且要动态输出html,我用的php要和js配套才行,一方加密一方解密,不匹配或没有适合的编码,就无法完成。

 

结语:这种加密纯属本人无聊研究,只是web服务器输出html加了一层密,客户端接收后js动态解码输出,虽然右键查看不到代码,但浏览器开发者工具会显示运行后的html代码,一览无余了。适合那些不想让爬虫看到的网站。爬虫爬到的数据是加密后的乱码,除非有爬虫仿浏览器能运行js。这种加密后的网站爬虫估计会非常不友好。因为爬虫无法识别,不知道你网站标题内容,连接图片,但是一番研究变异编码对网页也有了更深的理解和认识了。

 

完。

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。

 

原创粉丝点击