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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!; H1 {4 t$ g+ j5 d4 \/ w6 O1 [

) {  \1 g/ m, U( X, a- V4 O' O+ g  U% C5 r5 J) f) U
方法一:- }/ c5 f& ^0 ^7 s4 d) k9 N0 O
1 O- j, ?$ r( w7 {

5 K& ?  _" @" w* m) H9 m! y% x  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
- q' U6 ^8 c6 E- F  J/ t6 T) x& z3 y/ l
<HTML>) @, q4 |. N6 H. m
<SCRIPT LANGUAGE="javascript">
1 h  a( J, d8 N% I( @! d) L, uvar 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 ]# a$ o0 k& {4 H0 T3 K) Avar NewWords;3 K9 j6 N, W7 D* G, h! _  B# ~
NewWords = unescape(Words);) H3 ^& g  {+ @
document.write(NewWords)
; F/ Q- o1 r; f5 N% K3 p  o% d4 q</SCRIPT>+ u- J) G0 u( R9 ~# i
<BODY>5 i0 {! c/ x4 L
</BODY>
6 o/ Q& K& Y& i</HTML>
( e9 z5 C* K+ t) X
( T- D8 ]' Z) \' {: D  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
+ P5 ~) g9 C* N* ^/ P! z
. x2 J1 O  g3 X. ]1 ^9 w<HTML><SCRIPT LANGUAGE="javascript">% D4 V% C( ~9 M. M- n
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 S3 ?( ^( S/ J5 `* |; T
var NewWords;
/ o1 K0 U# Y: H  W% b0 C8 HNewWords = unescape(Words);
" N* P# p$ o1 {* tNewWords=NewWords.toString();
! a$ T* {1 k5 g( k/ _: s+ i( mfunction password(){
/ Q0 ?/ K6 \3 @2 ~  Jdocument.pw.txtpw.value=NewWords;1 f9 S; ]( ^4 W4 M% K0 `9 Z' j
}
; D' }% e' ?. P; A</SCRIPT>
' O/ w; _, T! v7 F) X+ @6 }. n<BODY>
9 X% ?2 U$ n1 C3 R' y/ H<form name=pw>
* Q  g* O- q! `8 v/ F<input type=button onclick="password()" value="解密">: _/ B: ]/ X. z# t8 S
<br>
8 i- O# {6 D+ v( L<textarea name="txtpw" cols="100" rows="100"></textarea>1 [/ A% X9 a. N/ N
</form>: a  c" w+ z  w$ n. @: z
</BODY>2 a% c& {8 L4 R. L/ y
</HTML>! f/ h) E* w8 o  Q& g7 _
: B, M! {) o# F) t4 D- n
方法二:
/ E7 x. E" b  O& G6 H& L/ o2 N% {/ e+ g5 P5 ?/ }
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:* E- K8 \6 `1 X2 C5 j& s

4 I( S/ a# e9 o, p! a9 O<html><head><script>
+ Z5 w: ]" c+ M* c8 i+ D1 t- N0 b* `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 ); }4 b9 L' \% p, w* X
var sJsCmds ="" +6 r) W. i# ^) |* ~
"?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" +
6 Z: [6 i) ]8 o. M"";
; j$ G7 g0 V3 C9 M* @4 A+ Zvar s= Carbosoft( sJsCmds);' p! j* @- {5 a3 q* o2 c
document.write (s);4 u, t/ W8 L2 p5 K- L9 K2 _
</script># E- a/ V6 h; Q9 F
</head><body></body></html>6 @: O) I, H& `0 A' |+ Q; ]' I

1 Y1 }( Q2 v; D( ^  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:" \4 @, ], S4 V" K/ p3 {$ p

. h1 }8 H- _: X$ a<script>5 S3 C. X! u1 @5 R$ z5 Y
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 b! R  _2 j6 L# w# ?9 I2 T
var sJsCmds ="" +6 Q9 D( V$ L" a9 e4 @: f/ B1 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" +
% o  j0 G. E9 r& W"";
1 l0 x0 G$ v& T& j. }. \/ Z: y* x) hvar s= Carbosoft( sJsCmds);8 U/ g% g& `; p; w3 [- ~
</script>( l. J. j0 l* {( `# `
<form name=qq>
' K' @5 r8 p5 M8 H<textarea name=ww cols=100 rows=10></textarea>: J. M. u$ V9 i6 {2 k
<input onclick='ww.value=s' type=button value="解密">
9 {2 C2 l5 b; {$ o8 o- I; ~</form>
3 V( x! O( ^  }* d4 o! j
% p! ?! P6 _6 C  y5 D- a1 @# U+ q4 m* ^0 A$ W0 l
方法三:
  \6 Z1 ]$ c& U1 g0 _  N2 H) p4 o3 h/ @/ E$ a1 _- q7 E7 g, {
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:, l$ ~4 F% {6 l) l6 ?# b
8 C! t3 U. I& j; f' F* Q7 M
<HTML>
1 D. ]3 w  [! y' e. ^<BODY>
/ [! g; H( G, H! ]! a6 O1 ~! l<SCRIPT LANGUAGE="javascript">! s$ ?+ \( w) d/ K& M0 L; a6 E% f
function Decode() {
4 p% X; g* f8 y# T. y  w- Z/ M; ad("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- C! y0 v( W</SCRIPT>
6 {' b* H) O, B8 T<SCRIPT LANGUAGE="javascript">
4 f: d2 x* \% }- J) h4 Efunction d (enc) {document.write(codeIt(key,enc));}7 @4 _/ Z1 O3 l
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;}
' U8 j' Q+ d, N/ E2 g& h  w0 i</SCRIPT>) v4 W5 U' Y. a) x
<SCRIPT LANGUAGE="javascript">
$ b3 c5 J3 I0 }+ N# q; |1 |% VDecode();. _, \( \* k6 L# T9 ?- f" w
</SCRIPT>  r% U( m7 X! r5 ~1 t: @( n
</BODY>
% h  S% c! |8 O* q' y4 {; O</HTML>  W) N2 V. T3 s  t7 E+ G7 I0 c
6 m4 D- q: v: R# U5 g
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:  g& J; c, G3 f

3 f5 }; k7 S% k% H& M; L5 z<HTML>
8 O. S# }; [3 {) R8 Y<BODY>
( A; a* u8 e9 U$ p<SCRIPT LANGUAGE="javascript">
1 |4 g0 x3 ~9 T# h. u) w" T/ n3 Dfunction Decode() {
; w4 V5 F/ u1 W2 E6 G0 R, W4 Xd("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;}; G7 P* h" m/ ^4 n& @
</SCRIPT>0 e  J* _- h" x' v. @
<SCRIPT LANGUAGE="javascript">1 z6 @1 z, \5 g; S7 x
function d (enc) {alert(codeIt(key,enc));}
9 [8 k9 O8 o/ d: O  p, bvar 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;}
2 {. ]+ r% y$ k" q. e</SCRIPT>) }/ g+ ?# ~" ~% Y' ]- c4 M
<SCRIPT LANGUAGE="javascript">
5 m6 a, |6 B' v9 T2 `/ w( z! oDecode();' Z* z# f# L4 t) |' Z# a+ D
</SCRIPT>
: R" x1 D; _$ {, h% _</BODY>
5 j- T. x; i, Z' a: {; x</HTML>
/ r8 ~! Z8 A7 S+ N
( C" ?: h. f! d& X/ O  哈哈!!:=)是不是很精彩!!

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