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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
) _. N- U* T$ E5 Y. T$ D
' S2 ^8 B' D2 O5 a8 _  N
# M0 G/ `8 `( _, W# y! [' I, G+ E  _) |方法一:" M$ C3 k, Q" a( ^! V

0 _- ?( m+ `; a- p
4 S( p! K9 g7 F- t0 m5 o4 h  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
, \3 i; z7 H  x1 A7 T: T
  A% b, {& J  w<HTML>- I7 z# g. \6 s7 B  x5 s  \6 W
<SCRIPT LANGUAGE="javascript">9 s' g& F7 c$ V% 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"
1 V" k% z' l% q7 b# K, S7 wvar NewWords;) O. ^% s$ j+ Y3 k1 d. x' z( \
NewWords = unescape(Words);+ \! w! @9 ?0 Q4 e( U9 Y3 n
document.write(NewWords)
# I, W0 \+ W7 T8 Z( q' w2 P; {# m& e3 c</SCRIPT>4 u- ?6 x$ {" ^" n9 b/ K, F
<BODY># Z4 e, i: P. {/ s" W3 Z$ m: m
</BODY>
' S  c' T' V" H+ s) v</HTML>
  N1 n2 F6 z8 x5 q& v1 ~
8 }4 b/ C5 R1 d5 q' Y  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:6 `) i7 u" y4 V* O, ^! a2 u7 D5 \

# J0 T4 @/ `* O. }/ S# l<HTML><SCRIPT LANGUAGE="javascript"># _6 _- n* W; F7 g7 m5 d
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"
) N2 ?+ H0 b& D2 _9 F: nvar NewWords;+ v) D. z( U) p7 ~: G; T) l
NewWords = unescape(Words);
3 g2 W3 R3 v  WNewWords=NewWords.toString();
/ _/ ]# R. [+ S2 y3 ffunction password(){
9 i; h! [8 S, Mdocument.pw.txtpw.value=NewWords;1 c2 Y8 k. K2 X/ g' ?
}
0 t3 i8 `" I% \& Q$ q! q</SCRIPT>
2 g  A' j4 n6 V- i- A0 Q8 m+ B<BODY>2 q2 @/ C3 y" |9 u% W
<form name=pw>
# u) [* g0 }, y* }/ x6 ]9 }! ^<input type=button onclick="password()" value="解密">
# P' Y' t3 [/ T( }8 V0 {<br>
2 ?7 E4 J  t# U9 T5 d4 z# N3 v<textarea name="txtpw" cols="100" rows="100"></textarea>% j, o6 h+ s( B2 b" F( Q- m( I3 l1 c
</form>
4 O# X$ h2 D* u+ v3 e0 a: m) P</BODY>
: \0 r9 b% |. L( E( h& G8 c5 z</HTML>
/ ~. x& T* f2 Q" \# D! i% s% ~  j% u& {3 _
方法二:+ `6 P( f3 ^6 |" x( T2 w
9 Y. A! q$ A, I0 u! D3 ]- l
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:$ N7 r9 I: P9 L, n6 W; h

' z4 I" y: r! C% \<html><head><script>  \' L" |7 l6 C( c
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 ); }
7 v1 f. H+ I9 u- x+ _1 O9 P( w% @var sJsCmds ="" +
" ^) e+ y0 T+ Q; 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" +* E; x! q- |) F- H) U. m% I
"";( v1 {/ m% F6 E" \; ]( o# n6 w
var s= Carbosoft( sJsCmds);0 n' N2 o* D1 w/ `. e& Z) h' ^  q3 G
document.write (s);
' a' ]- F8 x8 {& t% O6 B. B</script>7 J& m) |5 d- ~+ p! u0 M
</head><body></body></html>- i1 F, C$ ~% V' G6 ]0 |2 T
- m7 L4 M+ G: X  S$ o4 E
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
" N1 R9 \' w* s! b9 o3 t$ V! z3 A8 W, _. M( Y
<script>
" o1 h4 X; C' o' 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 ); }3 }" D/ i6 G5 ?7 J# n4 ]
var sJsCmds ="" +7 ]0 G- R& y, C+ h2 R5 Y/ X' 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" +
! ]" w- q+ ~; n+ k) \- Y2 Q"";( u2 L3 `/ W: d6 j
var s= Carbosoft( sJsCmds);7 t9 Z6 m" g; N* G" d
</script>
# O9 P0 g" c  }, B<form name=qq>$ Z0 T- N& G: M" |7 G
<textarea name=ww cols=100 rows=10></textarea>0 A# A1 ?8 H) Z0 G7 z8 k
<input onclick='ww.value=s' type=button value="解密">7 z7 \& _) }/ [, Z8 j/ S0 I
</form>
- I1 Q8 U+ @: |3 y( M& g
) G* z2 n+ o4 J; c9 m7 G* h7 E2 ?
方法三:
# x' A0 ?  X2 r, _% l
& _6 o0 I1 H+ w9 B. x  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:3 V/ g4 O; e) ^# F/ Q2 k
# O5 R+ R% g/ O2 n  k* a4 W& n/ B
<HTML>+ v# ~! Q  r# `" ]. s) L
<BODY>% {6 t3 R/ C' l" G8 G, S; G
<SCRIPT LANGUAGE="javascript">
: b  [* @: q1 r$ H1 jfunction Decode() {
: r8 O- s! M' @2 M" Gd("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;}/ m1 J8 Y# _( `2 U9 P" Q
</SCRIPT>
- S. a5 v' j6 Z2 a' {0 i0 P. K<SCRIPT LANGUAGE="javascript">1 ^3 V& p6 Z" m2 @' `# A! ?; R
function d (enc) {document.write(codeIt(key,enc));}
) A3 ?$ C6 Z: Ovar 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 K+ k* g; P" n# [& ]5 R! T</SCRIPT>
- j9 I" P" q* y2 G' d! J* l<SCRIPT LANGUAGE="javascript">
) y) ^! P0 h- o$ wDecode();
1 A# I* x; x: g: \$ h</SCRIPT>9 S6 X- d' Q' `# g3 g
</BODY>7 o2 m% U% J6 c/ E- K0 S
</HTML>
6 U2 K" _4 W6 v; M# E
3 h8 P* K+ m: w* S! @  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:: w5 G. C2 {. x( z# m
# {( T3 B6 {0 v3 v1 W# H
<HTML># o! v9 @! U! }
<BODY>* E' w2 v9 v: y5 F( o( k. f$ x
<SCRIPT LANGUAGE="javascript">2 Y! D7 r- e: q$ a
function Decode() {
! T8 p7 _/ L0 r7 r+ G1 i0 td("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;}/ i2 Q$ x5 P, J' ?; t* f
</SCRIPT>' S1 F# `5 b! S$ k/ X0 R
<SCRIPT LANGUAGE="javascript">
; l* e3 z0 h0 e" Z+ Lfunction d (enc) {alert(codeIt(key,enc));}$ e: E4 r9 h" c' ?' S' T6 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;}
. L& p+ c/ f% t: x+ I2 b" k</SCRIPT>  E$ ]' }. o3 m8 {8 j
<SCRIPT LANGUAGE="javascript">1 c$ W* H2 K. M6 h0 y: e" ^
Decode();' U, U& Q# \/ s2 t! o9 x- D5 r
</SCRIPT>
7 n9 m4 ?+ ?( |/ n5 v0 A</BODY>0 V! P1 A- c8 A# Y5 l/ \) M: h
</HTML>/ U+ P2 O$ d. W$ y: d

+ I6 e0 F8 v) m+ U# E+ A! w  哈哈!!:=)是不是很精彩!!

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