网页制作中页面的加密和破解
当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!6nn|SN,{8X9Z.P`M {pJS
方法一:s(j9w:s?/^o
oM%E-_@7~B
有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
[-XE"ug*I*m]
<HTML>
<SCRIPT LANGUAGE="javascript">
var Words ="%3Chtml%3E%3Cbody%20bgcolor%3D%22red%22%3E%3Cp%3E%u8FD9%u662F%u4F8B%u5B50%uFF01%uFF01%uFF1A%uFF09%3C/p%3E%3C/body%3E%3C/html%3E":iP.{VR7Y
var NewWords;2Q9WWd7\
NewWords = unescape(Words);
document.write(NewWords)!gdKfa"i}"} rx
</SCRIPT>
<BODY>
</BODY>f4v'i%_-G
</HTML>6cs4C9C$eu2Y7s
这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:2VD7YL*ru
iQ*PBu}{
<HTML><SCRIPT LANGUAGE="javascript">}#F*p,hH4o)Sn(J3J
var Words ="%3Chtml%3E%3Cbody%20bgcolor%3D%22red%22%3E%3Cp%3E%u8FD9%u662F%u4F8B%u5B50%uFF01%uFF01%uFF1A%uFF09%3C/p%3E%3C/body%3E%3C/html%3E"
var NewWords;f T\8lN@4p$CR;We
NewWords = unescape(Words);
NewWords=NewWords.toString();
function password(){4i Me{,P/I k${Wja
document.pw.txtpw.value=NewWords;
}
</SCRIPT>m$i~5sZ C1Q
<BODY>
<form name=pw>
<input type=button onclick="password()" value="解密">1Jk(Y1f+w&_Z
<br>
<textarea name="txtpw" cols="100" rows="100"></textarea>v`\ EGlsW9J"v
</form>
</BODY> h z6w._E#G%O(H
</HTML>-o"hyp#^y-{
方法二:LMq.~u
?+n~,rl:l,Hk)G
有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
/^g(B2[&@c
<html><head><script>i1cba t-C dd
function Carbosoft( s ) { var sRet=""; for(j=0; j< s.length; j++ ){ var n= s.charCodeAt(j); if (n>=8364) {n = 128;} sRet += String.fromCharCode( n - 3 ); } return( sRet ); }#E4OKN2Vzc*BD
var sJsCmds ="" +
"?kwpoA?khdgA?phwd#kwws0htxly@%Frqwhqw0W|sh%#frqwhqw@%wh{w2kwpo>#fkduvhw@lvr0;;8<04%A?wlwohAZHOFRPH?2wlwohA?phwd#qdph@%JHQHUDWRU%#frqwhqw@%Plfurvriw#IurqwSdjh#613%A?phwd#qdph@%Plfurvriw#Wkhph%#frqwhqw@%qrqh/#ghidxow%A?phwd#qdph@%Plfurvriw#Erughu%#frqwhqw@%qrqh/#ghidxow%A?2khdgA?iudphvhw#erughu@%3%#iudpherughu@%3%#urzv@%-/93%A##?iudph#qdph@%pdlq%#vuf@%xs1kwp%#vfuroolqj@%dxwr%A##?iudph#qdph@%rqolqh%#vuf@%grzq1kwp%#vfuroolqj@%qr%#qruhvl}h#wdujhw@%beodqn%A##?qriudphvA##?erg|A##?sAWklv#sdjh#xvhv#iudphv/#exw#|rxu#eurzvhu#grhvq*w#vxssruw#wkhp1#?2sA##?2erg|A##?2qriudphvA?2iudphvhwA?2kwpoA?irqw#froru@%&33333%A?s#doljq@%fhqwhu%A?vpdooA?irqw#idfh@%Wdkrpd%AWklv#iloh#zdv#hqfu|swhg#xvlqj#dq#xquhjlvwhuhg#yhuvlrq#ri#?d#kuhi@%kwws=22fduer{1wkhgqv1qhw2kwpohqfu|sw1kwp%AKWPO#Hqfu|sw#y413?2dA1?2irqwA?2vpdooA?2sA" +{SH)d\Oa:R3S2f
"";
var s= Carbosoft( sJsCmds);#|,I7Y9p'Z2@4l
document.write (s);9R:lhkvW b
</script>c.fVGx x7P&yLdg
</head><body></body></html>
Z!cD*aA#??SB
从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
<script>
function Carbosoft( s ) { var sRet=""; for(j=0; j< s.length; j++ ){ var n= s.charCodeAt(j); if (n>=8364) {n = 128;} sRet += String.fromCharCode( n - 3 ); } return( sRet ); }
var sJsCmds ="" +E)ZTX1c'rA-_9]
"?kwpoA?khdgA?phwd#kwws0htxly@%Frqwhqw0W|sh%#frqwhqw@%wh{w2kwpo>#fkduvhw@lvr0;;8<04%A?wlwohAZHOFRPH?2wlwohA?phwd#qdph@%JHQHUDWRU%#frqwhqw@%Plfurvriw#IurqwSdjh#613%A?phwd#qdph@%Plfurvriw#Wkhph%#frqwhqw@%qrqh/#ghidxow%A?phwd#qdph@%Plfurvriw#Erughu%#frqwhqw@%qrqh/#ghidxow%A?2khdgA?iudphvhw#erughu@%3%#iudpherughu@%3%#urzv@%-/93%A##?iudph#qdph@%pdlq%#vuf@%xs1kwp%#vfuroolqj@%dxwr%A##?iudph#qdph@%rqolqh%#vuf@%grzq1kwp%#vfuroolqj@%qr%#qruhvl}h#wdujhw@%beodqn%A##?qriudphvA##?erg|A##?sAWklv#sdjh#xvhv#iudphv/#exw#|rxu#eurzvhu#grhvq*w#vxssruw#wkhp1#?2sA##?2erg|A##?2qriudphvA?2iudphvhwA?2kwpoA?irqw#froru@%&33333%A?s#doljq@%fhqwhu%A?vpdooA?irqw#idfh@%Wdkrpd%AWklv#iloh#zdv#hqfu|swhg#xvlqj#dq#xquhjlvwhuhg#yhuvlrq#ri#?d#kuhi@%kwws=22fduer{1wkhgqv1qhw2kwpohqfu|sw1kwp%AKWPO#Hqfu|sw#y413?2dA1?2irqwA?2vpdooA?2sA" +&Z9c(B1uS!a s9Om
"";X4^ u5r.Pq#[&w
var s= Carbosoft( sJsCmds);;p*|dy;w)lr!WoInz
</script>"uKZN!@4w/U U3_0k
<form name=qq>
<textarea name=ww cols=100 rows=10></textarea>(o)e,]'`7g^G0q
<input onclick='ww.value=s' type=button value="解密">(Y Di?s/L I!\9W7m
</form>pmFW+c
%h ~ _9c#B4F(YvQ
方法三:
:X1i_.y&NF9n;]*Q:M
有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
<HTML>
<BODY>
<SCRIPT LANGUAGE="javascript">
function Decode() {^G2hk5y:w&|d6r%a I
d("FrfmnD");d("FruyvDFgwhqjfWnyeseysuEXpydy%whqjf~J~XWghwEXfkjJpgXDFIgwhqjfD");d("FmufyWrffjKuieqdEX?klfulfK$ajuXWwklfulfEXfubfIrfmnGWwryhgufEsx}{~}XD");d("FfqfnuDejFIfqfnuD");d("FIruyvD");d("FxkvaD");d("FIxkvaD");d("FIrfmnD");d("W");return 0;}qT}|1q"A"[QZb
</SCRIPT>;oW`!` J.o Iw
<SCRIPT LANGUAGE="javascript">7e}&^/LJ
function d (enc) {document.write(codeIt(key,enc));}+PIQ(Gh N7k1?
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"\ \|#$%&\'()*+,-.\/:;<=>?@[\\]^_\t\`{}~\n";function codeIt (mC, eS) {var wTG, mcH = mC.length / 2, nS = "", dv;for (var x = 0; x < eS.length; x++) { wTG = mC.indexOf(eS.charAt(x));if (wTG > mcH) {dv = wTG - mcH; nS = nS + mC.charAt(48 - dv);}else {dv = mcH - wTG;nS = nS + mC.charAt(48 + dv);}}return nS;}3M$Du^-x6R*a"n
</SCRIPT>
<SCRIPT LANGUAGE="javascript">m?.N+J Z3m*Pr)h
Decode();:[EuvyS]G.ZW
</SCRIPT>/dT$LT V4aJ4?8U.t"n
</BODY>
</HTML>Y4oHss
Erv#b m|
还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:.prim1\0t
<HTML>'eW l%p!N;j~? ETi
<BODY>
<SCRIPT LANGUAGE="javascript">'LJ0ZV9KLb
function Decode() {
d("FrfmnD");d("FruyvDFgwhqjfWnyeseysuEXpydy%whqjf~J~XWghwEXfkjJpgXDFIgwhqjfD");d("FmufyWrffjKuieqdEX?klfulfK$ajuXWwklfulfEXfubfIrfmnGWwryhgufEsx}{~}XD");d("FfqfnuDejFIfqfnuD");d("FIruyvD");d("FxkvaD");d("FIxkvaD");d("FIrfmnD");d("W");return 0;} u!B1z}#O
</SCRIPT>5Lu%W|9b1W~
<SCRIPT LANGUAGE="javascript">
function d (enc) {alert(codeIt(key,enc));}-[x_Y}]x(\)| {
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!\"\ \|#$%&\'()*+,-.\/:;<=>?@[\\]^_\t\`{}~\n";function codeIt (mC, eS) {var wTG, mcH = mC.length / 2, nS = "", dv;for (var x = 0; x < eS.length; x++) { wTG = mC.indexOf(eS.charAt(x));if (wTG > mcH) {dv = wTG - mcH; nS = nS + mC.charAt(48 - dv);}else {dv = mcH - wTG;nS = nS + mC.charAt(48 + dv);}}return nS;}
</SCRIPT>
<SCRIPT LANGUAGE="javascript"> t!r2MC$D*h V9~i
Decode();yHT:\ph`d!_{
</SCRIPT>
</BODY>
</HTML>0d+SX(uHe%W+M#E4H:[
哈哈!!:=)是不是很精彩!!
页:
[1]