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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
7 h2 v9 N" W5 D9 ]5 T, }* w
: Y  _7 ~: D) N; R  @+ M6 v2 ?7 `# H! M- q" d* S8 \/ W* T' @
方法一:
  _% ]3 P0 }( c* S: s6 c
: P4 |; C# y0 W5 A: P# T
' B3 L/ V0 m6 x- g" h/ i$ u) Z  B9 O  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:8 k* q, u; k" A6 z

" U' A) A: L$ E: j) L$ s<HTML>
3 B5 E# N3 F. X8 H, h' P2 C. D<SCRIPT LANGUAGE="javascript">) H6 t) l/ M0 |# b2 e
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"
* r+ ]6 w- @$ [) r: I& L2 Kvar NewWords;. u* {) r# \0 o- T% S, `
NewWords = unescape(Words);0 D0 x  s% @& k! m$ N, g
document.write(NewWords)& s. L' S( B" h, q' \8 j* K
</SCRIPT>
' B5 b9 b# y; N, U# V. \$ i" ]$ S4 v<BODY>
6 G6 ?) d6 V$ Y! V4 ?</BODY>9 c5 M- }! f2 }! l
</HTML>  H% d% a+ i: f- B6 q" ?

& U% {9 f0 _7 C, y6 \  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:3 x8 H# b* M$ W: g* ^) ~) Q1 {
" ~. J1 i3 u8 K3 ^
<HTML><SCRIPT LANGUAGE="javascript">6 ~% I6 R" t, 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"% V( s% c7 e- {
var NewWords;0 Q  ?  f- T* v
NewWords = unescape(Words);+ g. W& O) P! ]
NewWords=NewWords.toString();0 I, w+ @$ I& d1 j
function password(){" k6 C4 `6 I4 s+ ~  c. Q$ G5 ?, \
document.pw.txtpw.value=NewWords;
6 N2 u0 ?7 T9 C$ R6 e+ j. u, k# {}
7 t3 v1 J- R( ~</SCRIPT>/ b. k4 A; T3 ]3 i- I& V; S
<BODY>0 }) _; U' [. c& W, z( j
<form name=pw>% n3 g. |3 [8 n( i9 B$ t
<input type=button onclick="password()" value="解密">
& W% i4 ]4 y) t<br>
3 k7 p4 [; s* F; f<textarea name="txtpw" cols="100" rows="100"></textarea>
5 ^1 F- o1 k' p4 r6 ]* |  P</form>
9 o6 E, k) G6 X% g% U</BODY>
5 `4 _9 a4 z5 \) m) ~</HTML>
4 ~4 @) N& I" @, }2 L$ H9 R& I' Q1 e
方法二:3 V' W  z6 s% {) A

  b1 U1 j* C* w0 S; Q  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
/ [) O, H+ h: s* P) |" p+ d& W  ]' D0 y( w/ C5 ^" h& p  a7 k
<html><head><script>9 b% `" e& h" L6 V. B" B5 F8 `
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 ); }* M, t5 P1 x5 l% n; `( `4 w8 `
var sJsCmds ="" +! ^0 E& i# B" i' ], r$ P
"?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" +- T6 Y. F( U& P( a
"";' ]+ V- `+ l4 @4 R3 f
var s= Carbosoft( sJsCmds);
2 ^" N8 ?9 l: `% `& z; o: J; rdocument.write (s);
% W- d  M' ^' _$ l$ v. s' ~8 C</script>0 q/ B' D1 O1 B# |) |- @
</head><body></body></html>
4 K# y! `$ l3 K' t, y6 M
$ o, A7 ?: e9 x" d; Q  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:' `. ~! H7 L6 P, g3 P

6 g" M4 f! d! a7 H8 Q  B) t<script>
( v' P; D) X9 h7 T3 x7 gfunction 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/ {1 C- k. ]) i4 wvar sJsCmds ="" +
" N& [& y+ z  s. {9 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" +: l, C) S7 p6 R' v" l! N$ M! `
"";( K9 `/ ]: @$ z# S
var s= Carbosoft( sJsCmds);
$ x/ p. ?; T1 z0 Z/ s: ~% }0 S2 s</script>
9 |% `! U1 g/ T9 K3 V<form name=qq>
/ D( u. d1 r7 y4 L6 B<textarea name=ww cols=100 rows=10></textarea>! t7 r# U0 u" ~) i, L+ J
<input onclick='ww.value=s' type=button value="解密">
7 x9 h; P+ l; e4 z5 x+ g7 W1 l' ]</form>
8 U7 |) p* b. |& D/ A3 x
5 T, _% V1 M. c) L/ `, z
, ?1 B0 R5 e3 q. N; x+ u4 D方法三:( N" y! f5 {' x  P* `1 ~3 R" C

( I. I0 ~' O/ j+ f# V  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
* ^) r6 `1 l2 s) M1 U+ p6 q) z. M8 v4 I/ X4 F
<HTML>
+ S+ {4 ~$ u  S/ t) P<BODY>: A2 A8 R4 P5 ]
<SCRIPT LANGUAGE="javascript">7 e4 W6 B  z  ^
function Decode() {
$ o, Q& Q; ]0 z1 X9 q! m* G7 j. 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;}+ v6 s! p- R# S( i0 h
</SCRIPT>' D. z/ W9 v9 h1 k
<SCRIPT LANGUAGE="javascript">. `. {/ z; u. v/ s2 o9 \
function d (enc) {document.write(codeIt(key,enc));}
5 [) n- B, T' Z  p5 G  f# vvar 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' n2 k! h/ _: z- g' H1 O
</SCRIPT>
. `2 ^8 Y7 O8 }, {$ n<SCRIPT LANGUAGE="javascript">
1 J$ _% G* {; Z: B1 h0 c' FDecode();
4 d- a2 D' i5 K! v  U: l</SCRIPT>5 E4 k  f8 y3 b# S
</BODY>0 y" P4 }' o7 \4 A  f0 n8 [
</HTML>' n4 z5 F7 F" B8 M3 _& Z* `6 c
  M+ {- R& s" s- Q6 r$ _0 [
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
  F: d! }7 B* h2 P/ X/ w4 f- B% C6 |8 F! N
<HTML>
7 K; x8 ?% [' f0 M<BODY>
4 u4 Y1 {, h. W$ f0 R5 m<SCRIPT LANGUAGE="javascript">
. a5 [( @# J/ Y% \function Decode() {) p" f6 |$ W5 w2 J
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;}; O# O% o; ~1 S1 c
</SCRIPT>
; Y$ z5 s, b% [3 u/ n<SCRIPT LANGUAGE="javascript">( l* m( L+ U: J" O* h" i
function d (enc) {alert(codeIt(key,enc));}
% J! }/ p% r8 k, yvar 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;}
+ z3 q/ p8 \7 d% m' W2 W</SCRIPT>$ N% ], F, A% E% t, B; _. i
<SCRIPT LANGUAGE="javascript">
/ S# q" q: J1 e7 M" IDecode();% b8 ~* }4 V7 i7 ?
</SCRIPT>) \, \+ u9 v) w# a; m
</BODY># \3 C& G: |7 w4 M! G  X0 B
</HTML>7 n- x3 u: ~' i) T

6 V% Q" W5 a+ ?  哈哈!!:=)是不是很精彩!!

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