返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
# o$ {( I% n2 t: i) Q; U) m6 d9 R# t
4 u/ B$ C! b( F8 v3 I2 e
方法一:
$ n- K% \: F& U' }6 C. n: P
! \7 I& d/ S/ v7 M+ U6 n8 |( f, X6 q  |/ T1 ^
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:' d: Q1 K$ M# n5 {5 n0 X

0 t  b3 p/ P, n! k& z<HTML>3 U' m9 g. A8 [( _7 A$ R
<SCRIPT LANGUAGE="javascript">
) c& d: D  S* \% `3 e6 m/ Lvar 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 P9 j, d0 r# [7 ], D: A* \' k
var NewWords;" i. Q* E9 s1 t/ X
NewWords = unescape(Words);% p3 Y8 l$ d$ w
document.write(NewWords); d2 ?0 w" l+ F# [; ^
</SCRIPT>* ]1 O# d% k/ W1 z, p
<BODY>
7 q  ~9 y/ K5 k- b' v! G" ]</BODY>
& t0 h$ d4 }% U. z* D* u) |</HTML>
; T7 Z# ]  W  s$ q: Q2 ?7 b7 Y+ J6 h5 H2 S0 u2 i( {  k
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
* ?8 U( F  L# e
" |  t& w% u  ^% Y* G2 |<HTML><SCRIPT LANGUAGE="javascript">) _: k* H  r! n7 F: A( n4 ^( [
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"
2 u" V6 W% ^& _var NewWords;$ n$ p& ~! Y: |. X! Z; ]' `  }
NewWords = unescape(Words);
; b# j6 E. l5 c- ^+ h/ RNewWords=NewWords.toString();
. r+ Z0 t$ U& R" j0 wfunction password(){
: k' C9 ^7 T& o$ P4 ?document.pw.txtpw.value=NewWords;
6 _! u; s! k& I- m# z* t' Q- N}
% ^1 k6 g0 Z: B1 J1 F/ P</SCRIPT>
$ i7 @/ n( `  v' N$ g6 g<BODY>' x( G8 T" t, y+ Z$ [) t6 M
<form name=pw>
$ K3 A6 @9 ?- X6 q' w' S  i2 E' N<input type=button onclick="password()" value="解密">
; ~: j9 M8 H! \<br>
0 e1 p+ ~! O# `/ z: G+ f<textarea name="txtpw" cols="100" rows="100"></textarea>8 x& V7 ]( Z3 i8 {
</form>" a7 Q, f# c; ]( F
</BODY>
3 B+ ^% Z0 O7 s" p/ |# Y( I</HTML>
7 v# \3 M& v4 z" ~( G6 I% g0 F( \* R2 K2 {- }( O. S/ p" l( v
方法二:
1 {. E7 q* X2 W. `7 W: i3 `+ X" x
, H9 U0 `$ i/ ]' Q# `. S% w  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
) c* D5 ^9 U0 n. W6 X' |7 c- o  }, V5 D5 t! Y- g
<html><head><script>2 o5 M1 L( g3 l# |4 j' P0 D
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 ); }3 g" [; i7 @, V
var sJsCmds ="" +' I" w0 z  @5 [) r
"?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" +& b# j  F  k2 x
"";
7 [, S; n$ C. g* Y# Xvar s= Carbosoft( sJsCmds);
+ A: G$ v2 g' O4 P0 rdocument.write (s);  j2 \9 @* o- d' D
</script>
; Y& u% W% n$ F; _</head><body></body></html>
/ _- f+ M% D" Q$ S! Z
3 r+ x3 A" D% _' S* |2 e: i' R" N  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:. q" y  x- H  s! l

1 v0 f1 x8 ~: c# P<script>
! k+ T3 {/ c. E- t& E5 `: C2 Mfunction 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 ); }" K1 @" x( j; F1 J: D
var sJsCmds ="" +, m) m7 |  p, h' `$ [; |$ y8 C
"?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" +
4 v6 x9 [3 `* b"";
  W; ]  J, t1 a; lvar s= Carbosoft( sJsCmds);
8 r: H7 o9 J/ z7 N2 }4 n</script>
6 C  }3 H  x( d' N& F<form name=qq>
8 Y1 V8 P  D$ m<textarea name=ww cols=100 rows=10></textarea>
' ?2 D! X- `( u7 ]) x$ C, ^<input onclick='ww.value=s' type=button value="解密">) D8 B5 ?+ f7 Q0 I
</form>
& |6 R' |% W. P9 `1 {$ O  [' P$ P$ n
$ S& v) n' V; j; I8 M, |: J
4 Y" K; d  G3 N! a! O方法三:# G- }. ?  @  X$ J, @0 i
8 e: o' A4 F# ?: v: N
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:. e2 Z1 _8 A* l) f
' R" A) _4 v/ X  C' F/ L6 v  @
<HTML>
; M  h) o6 h, h& b4 ~<BODY>
, T8 R* y7 f+ r<SCRIPT LANGUAGE="javascript">
" Q( ?7 X% y; ]1 D, _function Decode() {+ x; ~0 G5 @2 ^2 @9 M9 P5 x
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;}
  C! M6 F% k' _, M5 W; s; R; L</SCRIPT>) _# V. I% s2 A" Z
<SCRIPT LANGUAGE="javascript">
! `* x. z, P4 H4 i* ofunction d (enc) {document.write(codeIt(key,enc));}9 p$ H8 y8 {& h; x6 Y' q) B1 r
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;}( s0 D6 t5 Y. B) h- \9 F/ ~5 l
</SCRIPT>5 J0 f; J* J/ A7 d
<SCRIPT LANGUAGE="javascript">; U) A' W, k! h5 {
Decode();8 t$ O: r# O2 T" z
</SCRIPT>
6 q9 V9 \4 I) z; x</BODY>
/ _" I8 ]8 ^7 I# q, H) `* R! x</HTML>' e1 N; j# y2 d8 a' v, s5 q

6 N- I+ {; D; f5 Q& w3 f5 w. F  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
/ S0 U- Q8 w7 }
3 x7 P) q* p5 A<HTML>
1 P" K/ s, N1 r6 r# F" t% K<BODY>
2 R* B+ n6 H& j; }. ?5 {<SCRIPT LANGUAGE="javascript">
8 s8 P7 T9 w& vfunction Decode() {# a8 g0 T4 k  n$ q' ~' w
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;}
  N; [( M9 x3 {. X$ a) _# T</SCRIPT>6 f6 ^3 }$ q; K
<SCRIPT LANGUAGE="javascript">7 v. G" z( H0 k, B" w1 E8 b
function d (enc) {alert(codeIt(key,enc));}
2 [' p! h) P' A4 v0 ~( C/ 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;}, X! `8 W6 |4 X( p" z- X
</SCRIPT>
7 ^2 d- P7 v/ ~<SCRIPT LANGUAGE="javascript">8 j# `8 I. U: j3 j1 y9 A, v/ L  ^& S. R
Decode();
6 U1 A4 I" P) [. S, N) q1 R</SCRIPT>
: I3 S- O7 O/ w) v7 _& f</BODY>! N/ [( m. W/ u, D
</HTML>7 K4 I* i# D2 t4 `" U, d
/ z( d/ ]1 c- ]
  哈哈!!:=)是不是很精彩!!

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