javascript 代码 简单加密的几个方法
javascript 代码 简单加密
简单加密的几个方法
在做网页时,最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JS代码常常被别人轻易的拷贝,或者是让人容易从代码中获取到关键的网址或者内容进行攻击。于是对这些代码加密就出现了。但是因为JS代码是需要在浏览器解析运行的,要做到绝密是不可能的,所以只能对JS代码进行简单的加密,希望让居心叵测者知难而退。
网上流行的js加密就是把代码混淆或者把代码压缩。
代码混淆可以在这个网站实现:http://doc.guandang.net/jiamijiemi.html
代码压缩,可以在这个网站实现: 压缩不是最好的加密方法,压缩后一些关键的字眼还是能看到,所以一般运用代码混淆方法。混淆也就是颠倒是非、混淆黑白,无非就是去掉缩进、空格、空行和注释,改表代码中的非保留字为简单的字母、符号、乱码什么的,这样做只是为了加大代码的阅读难度,提高阅读成本,让一些普通用户不能简单的获取或者修改代码。下面列举五种常见的混淆代码方式。
一:通过编码方式
二:eval(function(p,a,c,k,e,r) 函数混乱方式
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码
javascript 代码 简单加密
四:任意添加NUL空字符和无用内容混乱以及换行空格TAB方式 五:自写加密 解密函数方式
以加密下面简单的JAVASCRIPT代码为例:
alert("你好");
一:通过编码方式加密 (最简单的加密解密)
JAVASCRIPT函数里面有escape()和unescape(),encodeURI()和unencodeURI(),,encodeURIComponent()和unencodeURIComponetn();这三对函数进行字符串的编码解码,把代码编码后,就会出现像乱码一样的效果,这样就可以达到混淆的目的。比如例子代码用escape()函数加密后变为如下格式:
alert%28%22%u4F60%u597D%22%29%3B
当然,这样加密后的代码是不能直接运行的,需要用eval(codeString),这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("alert%28%22%u4F60%u597D%22%29%3B "); eval(code)
javascript 代码 简单加密
</SCRIPT>
而且 编码函数 还可以 进行二次,三次,n次,编码。
二次加密后 例子代码 变成:
alert%2528%2522%25u4F60%25u597D%2522%2529%253B (escape解码编码的程序escape加密解密.html)
这样的加密虽然简单,但是因为要代码能运行,必须加上unescape,这样就非常容易被人知道用什么方式加密了。
二:eval(function(p,a,c,k,e,r) 函数混乱方式
NewMapServer里面的NewMapServerJsAPI.js 就是运用这种方法加密的。Function(p,a,c,k,e,r)就是一个混乱函数。
运用eval(function(p,a,c,k,e,r)加密例子 可以得到:
(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return
d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return
");',62,1,'alert'.split('|'),0,{}))
这种函数写法很多,但是比较容易破解,因为原理就在p=p.replace(new RegExp()) 这里,在这个函数调用之前 把p 读出来。p}('0("你好
javascript 代码 简单加密
例如用document.write(p); 就能得到没加密的内容了。而解密函数都是统一的,只要把/^/ 替换为''(也就是空字符),就可以解了。code = code.replace(/^/, '');
(eval(function(p,a,c,k,e,r)加密解密代码在eval加密解密.html)
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码
这种加密就是直接使用JavaScript调用控件Scripting.Encoder完成的编码!代码如下:
<SCRIPT LANGUAGE="JavaScript">
var Senc=new ActiveXObject("Scripting.Encoder");
var code='<SCRIPT LANGUAGE="JavaScript">\r\nalert("你好");\r\n<\/SCRIPT>';
var Encode=Senc.EncodeScriptFile(".htm",code,0,"");
alert(Encode);
</SCRIPT>
编码后的结果如下:
#@~^FgAAAA==@#@&ls DD`J你好r#p@#@&FgMAAA==^#~@
这种加密虽然难看懂,但相应的解密工具早已出来,而且连解密网页
javascript 代码 简单加密
都有了,而且ActiveXObject控件只有在IE支持。
(Script Encoder 加密解密代码 encode加密解密.html)
四:任意添加NUL空字符(十六进制00H)和无用内容混乱以
及换行空格TAB方式
在HTML网页中任意位置添加任意个数的"空字符",IE照样会正常显示其中的内容,并正常执行其中的JavaScript 代码,而添加的"空字符"我们在用一般的编辑器查看时,会显示形如空格或黑块,使得原码很难看懂,如用记事本查看则"空字符"会变成"空格",利用这个原理加密结果如下:(其中显示的"空格"代表"空字符") <S C RI P T L ANG U A G E =" J a v a S c r i p t ">
a l er t (" 你 好") ;
< / SC R I P T>
这样看起来也不太好看,但是作用不大。
在JAVASCRIPT代码中我们可以加入大量的无用字符串或数字,(只要个数字组和字符窜后面都有分号就可以,js里面会忽略这些数字和字符窜)以及无用代码和注释内容等等,使真正的有用代码埋没在其中,并把有用的代码中能加入换行、空格、TAB的地方加入大量换行、空格、TAB,并可以把正常的字符串用"\"来进行换行,这样
javascript 代码 简单加密
就会使得代码难以看懂!如下:
<SCRIPT LANGUAGE="JavaScript">
"xajgxsadffgds";1234567890
625623216;var $=0;alert//@$%%&*()(&(^%^
//cctv function//
(//hhsaasajx xc
/*
asjgdsgu*/
"你\
\
好"//ashjgfgf
/*
@#%$^&%$96667r45fggbhytjty
*/
//window
)
;"#@$#%@#432hu";212351436
</SCRIPT>
这样的代码可读性和想读性都非常低。
五:自己写加密 解密函数方式
javascript 代码 简单加密
之前四种加密方式,各有各的好处,不过前三种都是在网上存在大量的破解方式,第四种自己加密起来比较复杂,对比较多的代码操作起来不方便。那么如果自己编写加密解密函数,就能一次解决上面的问题了。自己编写的思路有三种,一种是已知的加密解密方法混合;第二是已知的加密解密方法加上一些自编的函数;第三 …… 此处隐藏:2345字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介