获得本站免费赞助空间请点这里
返回列表 发帖

网页制作中页面的加密和破解

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
8 a& n  i% q2 s6 j; ?; m) ?- E2 u! \/ \0 j1 ^6 j2 O6 o" w. O

' }6 O8 i6 K1 t* v2 g方法一:/ A: }6 }+ N0 k

' H; m) ^: i: T6 x
0 G- O( Z# I8 c- G) t2 t0 u  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
& u; e- M  ]1 _  Q  u4 x
% V4 [% s, @1 }1 d5 K# n<HTML>
) G, a% y7 r, T2 P$ S* J<SCRIPT LANGUAGE="javascript">+ S$ g: E" \+ K0 z! s/ B2 n
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"
( ~" B- {; e) o  |var NewWords;
6 o7 ]1 ?/ {* c$ N. LNewWords = unescape(Words);
/ `9 f/ \9 S3 s( u! b+ b6 _3 Rdocument.write(NewWords)8 c, P* d! M. a2 ?1 K
</SCRIPT>$ O" D' q7 j$ b1 ]: w
<BODY>& p: a% n! ]& }
</BODY>
7 }6 B9 W$ G& S7 ?4 `</HTML>( m1 ]6 B/ @; Q
) L! U' R* D8 ^' W% C
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:) r0 o) u0 T3 r! y2 H
7 ]" P7 k4 w4 ^( B. d, n
<HTML><SCRIPT LANGUAGE="javascript">
$ U: I0 d8 d8 F" b% zvar 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"
6 f5 x2 d  V7 G$ N" lvar NewWords;* U: u! B) g7 r4 J2 J  T. v
NewWords = unescape(Words);: p( B1 w$ M9 D/ Y' ~
NewWords=NewWords.toString();
5 A' [/ Z, W- p0 l% }2 i0 jfunction password(){
/ b' `4 {3 l' w2 }9 s6 z* U. fdocument.pw.txtpw.value=NewWords;3 [0 t2 m( M4 t% d4 i
}- H( t5 o2 @; f0 s* x6 }% B6 l8 [
</SCRIPT>
7 Z" D+ Y  J& c6 x<BODY>
7 q& w2 k- C3 }<form name=pw>
3 R& j& Q8 `$ `& e% k# m. ]2 ]7 Y<input type=button onclick="password()" value="解密">9 R" t: M0 M9 G- u% S
<br>2 N  }1 F0 N+ Y( }' {, }
<textarea name="txtpw" cols="100" rows="100"></textarea>
3 @4 f! l' O, i, v4 E* e) r</form>. _% f9 m8 N  F) ~+ _  H9 D
</BODY>$ ~" R" J" ~+ |  o% u
</HTML>
4 u" P& @" o/ f( U: f' u* M2 G2 E5 `/ a
方法二:% c2 O, E! e4 {" W
% q! Q) L0 x3 B1 i, _7 ?( w5 ^, u5 D
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
9 T5 A: x* _! b( d8 o% K0 V, Q7 z" _8 K8 o
<html><head><script>: c* v$ l" @+ t6 X  d7 ~8 g
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 ); }; j7 C9 D6 v' E: g
var sJsCmds ="" +) k( [5 ]  c  K) y) t
"?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" +/ ?- W) V! B8 J& s
"";  O, U: D7 M+ L0 G3 V
var s= Carbosoft( sJsCmds);/ _$ C  ~$ F( ?% u. m+ k$ L7 [$ r
document.write (s);
1 B. h; {- ]7 W7 R2 U</script>
/ R3 E( q( d3 e& N; _, ^' p& u</head><body></body></html>
1 O; H" W2 \0 ]' y) A$ z4 N  [5 f% p& D% a# d, u
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:5 R9 U( f& g2 U& ^' S

9 V' f8 J4 w+ m2 @! _<script>
  H7 N! O3 ^: \' ~# H; O/ ^' Lfunction 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 ); }
* l7 i" O: S& {4 Pvar sJsCmds ="" +. c& c" M- o& i
"?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" +9 [3 O% y1 [/ \. V
"";
1 ^+ Y- k& Z5 l  l! X$ s+ dvar s= Carbosoft( sJsCmds);" B4 u2 n# d* Y! b; b
</script>
* |. w* X. x* A7 ]% d  l<form name=qq>2 i* d6 N! D; j" C" k. R
<textarea name=ww cols=100 rows=10></textarea>/ ]# g* s+ c  I: _3 \4 ]" K
<input onclick='ww.value=s' type=button value="解密">
* H) J# \4 M4 m: U! H</form>
; `. Z5 R. w8 f2 |( a
% n; I1 b; q% E; v+ _" E0 \
3 B0 N, t4 w6 I6 i# U方法三:
# S2 u/ k) U" |' _% V4 ~% H5 [5 `- A" i
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:  \2 E5 I0 U. T$ N

, H  }0 ]7 e+ {* |1 K/ n<HTML>+ H; |% }! v2 q! |* B1 {& T5 q
<BODY>) x9 @% G1 F: c  O; f% F' `) Y; I' Y
<SCRIPT LANGUAGE="javascript">/ J+ m8 P+ K; \- p% `2 t. w" E, b) f
function Decode() {# a0 j- g" P4 c2 s
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;}& g% v% L$ }, p1 u
</SCRIPT>) A. B! L. X  h7 ]
<SCRIPT LANGUAGE="javascript">
- |" ?! |' H2 E* O0 nfunction d (enc) {document.write(codeIt(key,enc));}
' \/ w9 Z7 L4 |( R) dvar 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;}
8 e2 N- k& s1 R1 D</SCRIPT>1 I7 L0 E1 |) C8 {! y$ G
<SCRIPT LANGUAGE="javascript">
; g9 F3 U6 J3 u: _7 F; `Decode();
' u% d' o* P6 I, O6 `. V</SCRIPT>
: i3 Z! L- A2 m: ]+ o- g: n</BODY>
% w# e2 q1 k# `</HTML>2 a4 H9 O% [1 f# W! F2 d
, k: c2 P5 S" C) A7 _' a* N, K* S$ ?: u
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
4 A* ?5 d- t$ L" a' T; z  g
' ]' y! {% r/ z3 i- a& B+ ]<HTML>
1 c, l4 [" c7 X- g% E3 D<BODY>
% A+ _; d8 d& l% h# E<SCRIPT LANGUAGE="javascript">
5 [) l# U" ^8 e+ [8 J+ Zfunction Decode() {* n2 k* h& L" A4 o4 Z, {# Z
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;}
( s. V- ?1 ?& b+ M. O( P* e</SCRIPT>: {/ Y+ T( G2 _  w7 o& e9 X5 `
<SCRIPT LANGUAGE="javascript">
) C  j% ^6 K+ E! jfunction d (enc) {alert(codeIt(key,enc));}
% }+ t, ], t; zvar 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;}4 Q( @" E7 S/ K% O7 U* J  j  Y
</SCRIPT>
6 W6 O$ n3 Z: s4 _& E<SCRIPT LANGUAGE="javascript">- T8 k# |8 [+ D7 a+ x5 X  S4 s
Decode();3 q) ^% Z5 C1 V! V$ X! Z- H
</SCRIPT>/ t. M. v% e1 c! Y) c/ {1 G, N
</BODY>2 h5 k! B. U* R( p% p3 ?# O! y
</HTML>
' I: c6 C; q# i% \- Y8 X$ U2 ?" i
- ~  _2 e6 k; [  哈哈!!:=)是不是很精彩!!

返回列表
【捌玖网络】已经运行: