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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!& k% U* [* }9 A7 q; @

8 `7 N: U) H1 i8 z$ _. K$ q
: ^5 K' c0 v$ Y0 q方法一:
6 K. e1 k9 C5 ]0 J" m: f& J
5 @0 V4 }- ]" H9 W, b7 ^
7 i( u+ l0 c8 Q1 |% J  \5 `4 g  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:. `( B" h5 m: D! _/ ]

- ]8 S& g! |6 G0 Z. F6 p<HTML>
8 P7 r3 r; S2 ]+ \/ D7 v  C<SCRIPT LANGUAGE="javascript">
. c) i- e( k& U6 k% svar 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"2 d8 d2 N  i; ~0 L
var NewWords;" o- ~3 o8 j* v2 u
NewWords = unescape(Words);
; t4 G8 M: k' `: Xdocument.write(NewWords); T3 q8 h/ @- j; J' V
</SCRIPT>; ^  k- _' F. Y; z3 ]6 L
<BODY>4 E# i1 S" [* i, i
</BODY>$ \. S) z9 [4 E. G
</HTML>& g$ O6 B! g! z/ D* C0 @4 j

. B! Y8 w% a6 ]8 g, J% t  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
! Q+ O* f/ _" G: ~0 `7 ]( d3 I* D# ~& W9 e! S
<HTML><SCRIPT LANGUAGE="javascript">. E' a  U3 @9 N* T, |4 U, C
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"4 F& W' U- o( |
var NewWords;
7 a" b$ g# r! B" L, a) KNewWords = unescape(Words);
. O$ ?1 f+ s: u, U# T7 {& f; C' r5 ~6 gNewWords=NewWords.toString();0 d: M0 e: H- w& |
function password(){& Q7 f/ k9 f9 d5 m
document.pw.txtpw.value=NewWords;( l/ Q$ Y* a# O" A; b; K* V6 c6 L% M9 i) M
}
* H: w. D' X$ S</SCRIPT>
: W9 s1 r) D8 S, y, a: Z<BODY>
. k; W) p" {% o! h$ P) ^  Q1 J<form name=pw>7 b8 [. R; o& }) A( q
<input type=button onclick="password()" value="解密">8 F5 v7 g4 R# Y1 X
<br>
6 O2 h  y2 T3 k4 Y' m2 F5 W<textarea name="txtpw" cols="100" rows="100"></textarea>2 p' c% L3 a7 A. |( m5 O! W' q* r2 Z
</form>9 _9 [' x) F$ {% \1 x
</BODY>
: ^' B1 Z$ h8 |1 x1 q( P8 A</HTML>
9 T0 K1 d  a8 T/ d4 |: C% E5 M! C! o  K- W2 x- c$ P  |  a
方法二:
" p8 B. \5 p: k4 j* \1 e
  F$ E' u* f) s3 g1 Q  Z2 a6 B+ X  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:2 U" q2 Y3 e" a' M) N% f
: K0 b7 G0 t2 x
<html><head><script>
; q# V' e/ E/ {# u+ O. cfunction 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 ); }
* F$ {4 J# o' Gvar sJsCmds ="" ++ j7 i# {  K+ H8 e: v+ o' k5 k
"?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" +
* y3 r! b! I4 d8 u% i1 F"";
0 |' e( m2 X0 uvar s= Carbosoft( sJsCmds);" \7 f$ I& c4 ?; F) D, T+ s) S
document.write (s);- s3 U$ {: y3 K7 r
</script>" W0 t- X- b  ?; M
</head><body></body></html>
& v9 s' D1 N( D  P2 F. g% p, @5 h# K7 W" ^2 W: v9 d$ y
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:4 F! c2 D4 `* r* n. [/ q. f

) F/ M  v% _7 o  U& v8 \7 M& w<script>
  Z/ I8 {  {( B8 S* ?5 Efunction 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 ); }+ ^: I& f) o! {" m/ m' Q! v
var sJsCmds ="" +( B9 U8 r% ]) f
"?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" +
0 g2 r5 k* O. u"";
. A! S$ R+ {" u9 ~6 pvar s= Carbosoft( sJsCmds);$ z* _) r0 E7 Q+ T$ b# j$ p
</script>  r$ e$ W, p" |8 G% I0 Q6 p' Y, a8 p5 _
<form name=qq>
" S. t* B3 h9 H- u, O  @<textarea name=ww cols=100 rows=10></textarea>
( ^% i: n& A6 @& C<input onclick='ww.value=s' type=button value="解密">" ~" ?  s4 e/ O) e" I2 C- K0 [
</form>4 r# s( Y7 r, ~! E, r
- k, S# |( x# J2 N
: X; t) _; w4 C' O: P
方法三:
2 N) R  \% h5 q; k" K5 L! f, C- Q2 G  O
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
" E# b% C( l$ n) U* Z$ L; K5 ^
" g$ V- m2 z' D/ m! c3 P( L<HTML>( O# b' F  D: e* h0 X7 r5 g! z
<BODY>; l% ~. Z; P1 [% U9 c: o
<SCRIPT LANGUAGE="javascript">
8 e( W/ {, g; G) o: k4 b( u8 x) vfunction Decode() {; P) Y* z1 V% s5 {7 R
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;}
* X& y  J7 J" [( K$ _</SCRIPT>
' l1 Y, G0 p& l" R2 z) Y+ G<SCRIPT LANGUAGE="javascript">
6 |/ I+ ^  Z4 n1 `& h; T+ A0 E- \9 dfunction d (enc) {document.write(codeIt(key,enc));}
6 Z5 `0 ]- m. j9 g  fvar 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;}
/ M% A  \7 T( l/ `' x2 b, N% z& [</SCRIPT>" e  [: X/ s5 P  m& u6 g
<SCRIPT LANGUAGE="javascript">8 b0 r1 E8 a$ W1 U6 |4 l
Decode();- Q; l4 O( M2 B3 B
</SCRIPT>- S7 `3 H3 M+ O0 o' u6 w
</BODY>
! y  Y' o# k5 t</HTML>
2 K, u/ N$ Y: }7 g. \- p4 `( d' Q) C0 L1 z! a" ^
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:4 e+ U- e2 ]5 |* l
4 S; y% X$ v; I& Y
<HTML>
% M3 D. L1 C# ]; s<BODY>0 e5 z6 _( l' R4 S
<SCRIPT LANGUAGE="javascript">
/ e: V  E! Q& M" S# bfunction Decode() {" ]$ [, v* k1 [* h
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;}# Q; A" r1 Z0 m& y
</SCRIPT>
# `. c. x# b; p& H4 R; u( }% w<SCRIPT LANGUAGE="javascript">4 k" V7 _% d/ v4 C6 A- v( M
function d (enc) {alert(codeIt(key,enc));}. q( |' ~+ U! A5 n
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;}
. J3 z9 ~3 ^- n* L</SCRIPT>
) c* Z& s! K8 _2 p2 q7 p* @<SCRIPT LANGUAGE="javascript">
8 J5 V& m6 L6 XDecode();
# x3 m/ w0 I5 P6 \: v2 I3 X' _% U* h</SCRIPT>
: b4 z) d' C- j8 U* ]8 k( Y( r3 t$ T  d</BODY>
! K4 T4 {; z/ G</HTML>  m4 J: `/ Y7 z; t$ _6 w! C

* m+ p6 L4 X  h/ L5 w  哈哈!!:=)是不是很精彩!!

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