- 浏览: 492800 次
- 性别:
- 来自: xiamen
文章分类
最新评论
-
陈乐鹏:
你这个下载要怎么玩?我这里老提示未安装!
[转]使用ScriptX控件进行Web打印总结 -
zqb666kkk:
博主有示例代码吗
cxf ws-security 加密和签名的实现 -
mclin0704:
你好,请问WSDL2Java 可以用java实现吗?
Java2WSDL之java实现 -
hubiao0629:
楼主,这个文件会有不兼容的问题把。
mysql5忘记密码后的处理方法 -
zhaoyubetter:
OK,可以试试!多谢楼主
后台管理界面收集
本文一共介绍了七种方法: 在做网页时,最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^ 一:最简单的加密解密 呵呵!如何?这次是完全都加密了! 十六进制转义字符串如下: 这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下: 编码后的结果如下: 够难看懂得吧?但相应的解密工具早已出来,而且连解密网页都有!因为其解密网页代码过多,我就不多说拉!给大家介绍一下我独创的解密代码,如下: 咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码! 运行得到加密结果为:o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd //上面的是加密代码,当然如果真正使用这个方法时,不会把加密写上的 摘自红黑联盟
一:最简单的加密解密
二:转义字符""的妙用
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)
四:任意添加NUL空字符(十六进制00H) (自创)
五:无用内容混乱以及换行空格TAB大法
六:自写解密函数法
七:错误的利用 (自创)
但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。
以加密下面的JAVASCRIPT代码为例:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
alert("黑客防线");
</SCRIPT>
大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
以下是代码片段:
alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:
以下是代码片段:
%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B
当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵
二:转义字符""的妙用
大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、' (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:
八进制转义字符串如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")
</SCRIPT>
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")
</SCRIPT>
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
alert("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")
</SCRIPT>
就会弹出对话框告诉你解密后的结果!
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码
工具的使用就不多介绍啦!我是直接使用JavaScript调用控件Scripting.Encoder完成的编码!代码如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var Senc=new ActiveXObject("Scripting.Encoder");
var code='<SCRIPT LANGUAGE="JavaScript">rnalert("黑客防线");rn</SCRIPT>';
var Encode=Senc.EncodeScriptFile(".htm",code,0,"");
alert(Encode);
</SCRIPT>
以下是代码片段:
<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&lsDD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>
以下是代码片段:
<SCRIPT LANGUAGE="JScript.Encode">
function decode()
alert(decode.toString());
</SCRIPT>
如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:
window.execScript( sExpression, sLanguage )
参数:
sExpression: 必选项。字符串(String)。要被执行的代码。
sLanguage : 必选项。字符串(String)。指定执行的代码的语言。默认值为 Microsoft JScript
使用时,前面的"window"可以省略不写!
利用它我们可以很好的运行编码后的JavaScript代码,如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
execScript("#@~^FgAAAA==@#@&lsDD`J黑客防线r#p@#@&FgMAAA==^#~@","JScript.Encode")
</SCRIPT>
你可以利用方法二对其中的""号内的字符串再进行编码,使得"JScript.Encode"以及编码特征码"#@~^"不出现,效果会更好!
四:任意添加NUL空字符(十六进制00H)
一次偶然的实验,使我发现在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>
如何?是不是显得乱七八糟的?如果不知道方法的人很难想到要去掉里面的"空字符"(00H)的!
五:无用内容混乱以及换行空格TAB大法
在JAVASCRIPT代码中我们可以加入大量的无用字符串或数字,以及无用代码和注释内容等等,使真正的有用代码埋没在其中,并把有用的代码中能加入换行、空格、TAB的地方加入大量换行、空格、TAB,并可以把正常的字符串用""来进行换行,这样就会使得代码难以看懂!如我加密后的形式如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
"xajgxsadffgds";1234567890
625623216;var $=0;alert//@$%%&*()(&(^%^
//cctv function//
(//hhsaasajx xc
/*
asjgdsgu*/
"黑客防线"//ashjgfgf
/*
@#%$^&%$96667r45fggbhytjty
*/
//window
)
;"#@$#%@#432hu";212351436
</SCRIPT>
至少如果我看到这样的代码是不会有心思去分析它的,你哪?
六:自写解密函数法
这个方法和一、二差不多,只不过是自己写个函数对代码进行解密,很多VBS病毒使用这种方法对自身进行加密,来防止特征码扫描!下面是我写的一个简单的加密解密函数,
加密代码如下(详细参照文件"加密.htm"):
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
function compile(code)
{
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
alert(escape(c));
}
compile('alert("黑客防线");')
</SCRIPT>
相应的加密后解密的代码如下:
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
function uncompile(code)
{
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
eval(uncompile("o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd"));
</SCRIPT>
七:错误的利用
利用try{}catch(e){}结构对代码进行测试解密,虽然这个想法很好(呵呵,夸夸自己),因为实用性不大,我仅给个例子
以下是代码片段:
<SCRIPT LANGUAGE="JavaScript">
var a='alert("黑客防线");';
var c="";
for(var i=0;i<a.length;i++){
c+=String.fromCharCode(a.charCodeAt(i)^61);}
alert(c);
//现在变量c就是加密后的代码
//下面的函数t()先假设初始密码为0,解密执行,
//遇到错误则把密码加1,然后接着解密执行,直到正确运行
以下是代码片段:
var d=c; //保存加密后的代码
var b=0; //假定初始密码为0
t();
function t()catch(e){
c="";
for(var i=0;i<d.length;i++){
c+=String.fromCharCode(d.charCodeAt(i)^b);}
b+=1;
t();
//setTimeout("t()",0);
}
}
</SCRIPT
发表评论
-
MD5 加密与解密 免费网站
2011-09-14 15:38 969http://www.md5encryption. ... -
listener、filter、servlet、beans执行顺序如何
2011-04-15 11:19 3428在典型的J2EE里面 可以肯定的是,加载顺序与他们在web ... -
dos 测试网络连接是否正常(bat)
2010-11-10 23:55 3583由于一个亲戚,电脑水平不高,有时候电脑老上不了网,自己不明白原 ... -
IIS5.1 for xp2
2010-06-10 16:29 1704一般使用系统都是winXP2 Ghost 版本 这种版本一般 ... -
SP2:XP双用户同时登录的方法
2010-05-17 09:29 2035首先特地声明下: ... -
2003 用户权限控制
2010-01-15 17:43 12211 在控制面板-->用户账户 创建一个账户,用户名我们设 ... -
Windows无法连接到选定网络,网络可能不在区域中。请刷新可用网络的列表,重新尝试
2009-11-03 14:34 30571一直以来Windows XP2 在公司网络中就是设置了密钥无法 ... -
54 个优秀的 UNDER CONSTRUCTION 页设计(下)
2009-04-13 10:35 11201. Luke’s Beard 2. Fav ... -
54 个优秀的 UNDER CONSTRUCTION 页设计
2009-04-13 10:33 1255一个空荡荡的页面,上面有一个卡通小人用铁锹铲土,这是我们印象中 ... -
如何创建自己的Linux发行版
2009-04-13 10:28 1092很多人或许对Linux发行版有了一种一成不变的看法:桌面不是K ... -
最受欢迎的11款跨平台免费软件
2009-04-13 10:27 1075"基于Windows和Linux的优秀应用软件都不少 ... -
15个最受Web开发者欢迎的文本编辑器
2009-04-13 10:24 1267对许多开发者来说,在开发复杂的Web应用程序、编辑CSS文件或 ... -
Tonido实现合作、文件共享等无云化
2009-03-24 10:58 1113DNA24 写道 " 不是每一个人都希望在云计算下 ... -
2008年最漂亮的50套图标
2009-03-24 10:30 3006在互联网上图标无处不在,最现代的设计不仅仅是用来完成一个设计任 ... -
9个基于JavaScript和CSS的Web图表框架
2009-03-24 10:26 1348"jQuery, MooTools, Prototy ... -
40个轻量级JavaScript库(二)
2009-03-09 15:29 1394COMSHARP CMS 写道 " ... -
40个轻量级JavaScript库
2009-03-09 15:25 1031COMSHARP CMS 写道 " ... -
40个轻量级JavaScript库
2009-03-09 15:25 1060COMSHARP CMS 写道 " ... -
2009年将出现的10项技术
2009-03-05 14:16 8573/4月份的《MIT技术评论 ... -
病毒编写Virus.rar
2008-12-31 15:56 1214计算机病毒已经为我们的生活带来了日益严重的危害,一次又一次损失 ...
相关推荐
【标题】"passbay--U盘加密软件"是一款专门针对U盘及移动硬盘设计的加密工具,旨在确保用户的隐私安全,防止他人未经授权访问存储在这些设备上的数据。 【描述】这款软件提供了强大的加密功能,允许用户对U盘和移动...
AES的工作模式有很多种,其中CBC(Cipher Block Chaining)模式是一种常用的模式,其特点是每个明文块都会与前一个密文块进行异或操作后再进行加密,这样即使相同的数据经过多次加密也会得到不同的结果,增强了加密...
### 文件夹加密方法大全 #### 一、Office文档加密方式 **1. Word文档加密** 在Word中,可以通过设置密码来保护文档不被未授权访问或修改。具体操作步骤如下: - 打开需要加密的Word文档。 - 选择“文件”>“信息...
在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页内容的技术。Activiti6是一款流行的开源工作流引擎,它提供了RESTful API接口,使得开发者可以通过HTTP请求来与...
本文主要介绍两种操作系统环境下(Windows 9X/Me/2000 和 Windows XP)实现文件夹加密的方法。通过这些方法,用户可以有效地保护个人隐私及商业机密。 #### 二、Windows 9X/Me/2000 下的文件夹加密 在 Windows 9X/...
在这个场景中,`jQuery-base64` 提供了一种在前端进行加密的方法,以保护用户数据在传输过程中的安全性。`Base64` 则是一种常见的编码方式,用于将二进制数据转换为可打印的字符,以便在网络中传输。 `jQuery-base...
DES是一种广泛使用的对称加密算法,它以64位的数据块进行操作,但实际有效密钥长度仅为56位。 首先,`crypto-js`是一个JavaScript加密库,包含了多种加密算法,如MD5、SHA系列以及DES等。在描述中提到的"js加密后...
add-asset-html-webpack-plugin, 将JavaScript或者CSS资产添加到 HTML web pack插件生成的HTML中 add-asset-html-webpack-plugin将JavaScript或者CSS资产添加到 html-webpack-plugin 生成的HTML中 安装使用 npm 安装...
需要注意的是,尽管Crypto-js提供了一种在前端进行加密的方法,但前端加密仅能增加一定的安全性,因为JavaScript代码是开源的,理论上任何人都可以分析并找出加密方式。因此,对于极度敏感的数据,最佳实践是使用...
在这个特定的场景中,`jQuery` 被用来实现一种基于Base64的加密机制,以确保在客户端和服务器之间传输的数据不被轻易破解。`Base64`是一种简单的编码方式,它将二进制数据转化为可打印的ASCII字符,通常用于在网络上...
7. **最佳实践**:在实际应用中,应结合多种策略来保护邮件地址,如同时使用JavaScript加密和HTML实体编码,或者配合服务器端处理。同时,确保加密后的链接仍然对正常用户友好,不影响其使用体验。 总的来说,...
本文将围绕"javascript经典特效——加密源代码脚本"这一主题,深入探讨JavaScript源代码加密的各种方法和技术。 1. JavaScript混淆(Obfuscation) 混淆是将源代码转化为难以理解的形式,以降低他人阅读和解析代码...
html在线加解密-网页加密-HTML加密解密工具所谓加密解密是通过Unicode码的转换实现的,但经过实验中文文字太多会导致将你的页面代码膨胀。英文反会有压缩效果。
Base64是一种常见的数据编码方式,它将任意的二进制数据转化为可打印的ASCII字符序列,以便在不支持二进制传输的环境下(如电子邮件)进行传递。卫班科技提供的这个base64加密解密案例是针对Web编程的一个实用教程,...
H5ST是一种京东用于防止非法请求的安全机制,它通过对URL进行加密,使得普通用户无法直接识别和访问特定链接。 首先,我们需要了解JavaScript(JS)加密算法。在给定的压缩包文件中,包含了一个用于H5ST加密的JS...
JavaScript是一种广泛应用于网页和网络应用的编程语言,它在客户端运行,为用户提供动态交互体验。在HTML页面中,JavaScript可以用于处理数据、控制浏览器行为、创建动画效果、发送异步请求(Ajax)以及进行各种形式...
HTML加密是一种技术手段,用于保护HTML源代码不被轻易查看或篡改,以维护网站的安全性和数据隐私。在网页开发中,有时为了防止恶意用户抄袭、解析或篡改网页内容,开发者会选择对HTML代码进行一定程度的加密。下面将...
视频内容的保护主要分为两种基本方式:访问授权(Protection)与内容加密(Encryption)。访问授权指的是通过设置访问限制来保护视频内容,比如采用特定的编码器、特定的容器格式或是密码等方式;而内容加密则是指...
直接运行html演示加密解密效果 -aes.js -idnex.html -jquery.min.js -pad-zeropadding-min.js
加密工具和使用方法 Crypto-JS 提供简单易用的API,允许开发者轻松地进行加密和解密操作。例如,使用AES加密字符串: ```javascript var CryptoJS = require("crypto-js"); var key = CryptoJS.lib.WordArray....