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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
. M3 C1 C$ P/ {8 J7 p
1 I, `# l( s, N& {6 v
1 Z8 w" Z  N( r( g方法一:: H# V* c; v) G' x+ b/ S
% F+ K, ?5 ~8 H0 T
; }7 Q5 r5 C5 k# p( D# e/ h
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
/ i: x; y6 l/ H, z0 H
% K$ e- X' c. x0 j<HTML>
8 n# q$ S, E: @' i& A<SCRIPT LANGUAGE="javascript">+ l' I9 z$ }2 g+ l& b. E) T
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"& w" l# o* F2 Y  F
var NewWords;
# }* e  N/ D3 l7 O8 sNewWords = unescape(Words);7 N, I' ]- }, k+ ?. Q- [
document.write(NewWords)/ U# h7 b7 q( p' x! X
</SCRIPT>, d# H" g" ]- R3 I
<BODY>% L: C8 i. S9 s3 Y. ?" `" e- f$ M
</BODY>- A5 o, y- M  C
</HTML>
& |& }" b% S- d1 ~, f7 X
9 A( c& p. q. t0 |! V1 z8 e. y) _  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:' h6 ~3 I! a: \& m
2 @: N; h! l, I+ e/ \1 @% @) G
<HTML><SCRIPT LANGUAGE="javascript">: r0 n9 v) @7 |5 O
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"
' e5 N4 Z) D8 fvar NewWords;
' @4 T, t& D- u4 Q; sNewWords = unescape(Words);. L" _, {' a# _6 k
NewWords=NewWords.toString();  `# b( \( X2 J& o* u, R5 B' b
function password(){0 u  ]4 b* L  t
document.pw.txtpw.value=NewWords;
" _5 i/ X0 F' W7 ]* b, V}
% c+ d- l+ m7 y5 b0 ?+ Y9 f; Y</SCRIPT>$ g' G; E) M0 W5 s' h2 }( Z
<BODY>
( o2 m/ u# y: K/ R* j( h6 g<form name=pw>
) _0 l- ~# c7 R" }2 d<input type=button onclick="password()" value="解密">
) z  Z" |) E. G0 F7 e# T' F<br>
- `5 J6 N9 v! N- o1 e<textarea name="txtpw" cols="100" rows="100"></textarea>  ~! n( {, o' t1 i( H
</form>& u' o( i. b" u# ^& F0 D+ K4 A* C
</BODY>: E% X+ z/ g0 C0 ?' `
</HTML>
3 N9 v- \6 M- b- q* y# S) b+ w# j% R! U' k
方法二:
$ z) {) N1 p; a2 e) j- D3 }( k# {2 p
0 h( q/ R& g. z4 g7 p  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
# R- F, Q% t2 u7 k+ l- T8 [7 R- S! s9 i- ~/ a9 I, ?" Z
<html><head><script>' B5 n) E# x5 E3 P
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 ); }( @' [0 R5 B, |5 @# m
var sJsCmds ="" +# A3 j4 P* X( r- O! ]
"?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" +7 U1 [- R/ q1 Y4 \. V
"";, `, j9 u: z; K+ g$ }
var s= Carbosoft( sJsCmds);. x/ N+ j0 H- d2 [
document.write (s);6 b* Y! E- u2 |2 B
</script>/ A7 S! ]/ j, P
</head><body></body></html>2 }9 \  }) k$ V; z+ C
! B( A2 }. Y. J$ v4 r
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:4 v0 ^2 D# r# I% k1 |2 s, o, A5 B. w
) c8 d  ]3 e2 N, _/ z
<script>
( j( b+ p% T9 C" n1 L' R* E+ Rfunction 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 ); }
- ~+ ]$ J$ F- q7 K, }var sJsCmds ="" +
- T& x! \( N7 l5 o+ \) S"?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" +7 G# O) l) Q; @
"";
, \: P) ~5 d/ E2 U0 L; S. }9 Tvar s= Carbosoft( sJsCmds);
8 e! N% G9 |( C2 U1 Q0 z</script>( g( N3 ]) ?8 |% b6 W& R/ u
<form name=qq>2 C, I7 S- H; Y# ]$ H  a
<textarea name=ww cols=100 rows=10></textarea>
3 M) b+ q1 e+ ^<input onclick='ww.value=s' type=button value="解密">+ x- e3 x3 a0 N
</form>
5 v( b2 T# ]$ @$ [$ \( u
2 d! F4 \0 e- \3 F
) d+ }; l: w6 M& S5 s, V方法三:
7 k1 p  V# z  V9 t& l4 l" O) B/ E. y; ^- I  M
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
+ v% b% G; w9 x1 G7 C
+ E0 _) g7 ^' s" E! i: S! z6 \<HTML>/ T! Y  V/ c# N3 k0 H$ j9 k/ \3 B: t
<BODY>
+ B2 V. B) D, z7 r5 ~* N! |<SCRIPT LANGUAGE="javascript">6 f. k1 F# S/ K: E& f
function Decode() {
8 ~$ ~9 T# W1 p  Yd("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;}/ b. E! w. D3 V2 x( D) `
</SCRIPT>
: Q  w1 P1 H* }<SCRIPT LANGUAGE="javascript">/ D6 ~1 \; A7 }) y! _- B; j
function d (enc) {document.write(codeIt(key,enc));}
3 D- T% M& e2 q0 X8 B2 i0 j. L" \% kvar 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;}, ]7 E8 V+ x1 N+ U& B; J; {
</SCRIPT>, m1 ?# c. ?( r: J& G. N! F
<SCRIPT LANGUAGE="javascript">( }7 a- b; a& w/ I6 `
Decode();* a& X. s7 ~  y% x
</SCRIPT>
2 H- m5 I3 N7 C7 {) g+ h4 c8 J4 E</BODY>
# A9 ^' w9 a3 r0 s# ?8 l</HTML>
: s6 I" q( y! u7 o* J' R9 E9 v# W8 J" W* t" A1 O  k
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:8 H* v. g. O4 Q: e4 C6 O2 t8 B5 J

( J1 I* D( M3 G* X1 p  M- v6 K<HTML>8 J% G7 f# e* ~/ x; h1 Y. H/ K! |
<BODY>: p1 F2 P! r) E; h+ |9 c
<SCRIPT LANGUAGE="javascript">6 N$ `6 `! v- w. e: P
function Decode() {
7 i7 j' J% ~* ?! M" }* r% k* ?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;}" `6 b! ]# X. H$ ^* U1 z
</SCRIPT>
* m8 O* j6 H4 [" w<SCRIPT LANGUAGE="javascript">
# M: l( K  a1 Ffunction d (enc) {alert(codeIt(key,enc));}
# b  f$ c% M& y! S& qvar 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;}! T9 d9 @3 K$ Y9 E- w& @
</SCRIPT>$ D9 S4 J! q, o9 P1 y* R
<SCRIPT LANGUAGE="javascript">0 x/ X% E$ Q  ~% \* J
Decode();5 b$ E) _( s, B1 Q
</SCRIPT>
0 V! |$ B# [% b: l, J</BODY>- V4 D  k; I8 h2 A; i* W( @9 r% S
</HTML>
1 m3 f8 Q1 [; K
$ C" r; V' n# v9 ?# E  哈哈!!:=)是不是很精彩!!

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