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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!6 [, G! \, Z7 K

) }7 H9 U/ F6 M( b2 Y6 p- d+ D- g
  Q6 R7 U* x7 e6 Z  ~! Y方法一:
2 p9 J" Y) V8 w9 f4 q4 ^
) N; s* C' D8 `& o
; g9 _0 b. Z5 O/ u  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
+ @& P- U, R4 ^' m; I( W9 i3 ^5 U5 w  ?7 E- N2 b; t
<HTML>- F, J" j" x4 n1 M" [! c
<SCRIPT LANGUAGE="javascript">
0 s9 g% w* ]$ Nvar 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"
8 a& p7 H) q9 j* o9 s% |) @" c( i; Yvar NewWords;3 U: D6 Z/ L' c+ k
NewWords = unescape(Words);9 A' S, @' m; F: `. z  x( Q
document.write(NewWords)+ y; l0 H. M9 t
</SCRIPT>
/ A) ~9 T" P7 g  F# P<BODY>% s: w( J$ G6 E
</BODY>
+ ?1 a+ u/ n0 I- Y8 s: D& o9 |</HTML>
# r* R5 }8 U, v& J; o9 l
. H, C9 ]! A* U6 f) W9 H  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
7 U- W/ W7 q4 a" B
. _3 z! L$ a$ _<HTML><SCRIPT LANGUAGE="javascript">+ b3 j7 z- l1 s4 u
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"( Z1 W( p, ]2 ]" p+ I' i' y
var NewWords;
# S$ [2 O/ M9 QNewWords = unescape(Words);
2 s+ T9 f1 o* l8 q" s: TNewWords=NewWords.toString();, t6 u0 {+ C! B8 B
function password(){
0 T* N4 Q, s' R, v2 V; ddocument.pw.txtpw.value=NewWords;/ K# Q( ?6 {/ z3 p" w
}0 D2 U9 \$ n" j" F# c% d0 o) m5 ^
</SCRIPT>, y( A- v( d- W, w
<BODY>9 g. m) v5 }7 E# @3 W* t8 F
<form name=pw>- P  a0 e$ Z( \# r0 p5 }
<input type=button onclick="password()" value="解密">, i4 ?  J3 i6 i' w4 z" s: F0 ^( @
<br>) h* r2 `1 e3 \7 g, e) w- ]
<textarea name="txtpw" cols="100" rows="100"></textarea>6 v& L: {* f- F: j" ~
</form>  S. N! @5 q+ n1 j
</BODY>  U% e' V, D$ M8 r
</HTML>
9 T7 j. i9 V: B# ^! Y
' q; I  d: c/ x方法二:1 F  f/ k2 }1 `% q: ]4 b. o) g* W8 \
! A/ t/ Z7 g5 G; R
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:+ |( D+ Z# J# {- c0 H

) D5 n+ a# Q& E* B$ B<html><head><script>
! X! }* B5 Y$ k% Lfunction 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 ); }. d4 b% Z% \/ y6 L) ^* w- D% W7 M! x
var sJsCmds ="" +
4 K  r# z3 D: u"?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" +
5 \1 R1 H1 J( F9 K. q"";
+ n' D/ N( \' \5 Y" V& ]var s= Carbosoft( sJsCmds);% Z) O8 O3 E1 {2 T8 L! ?( S
document.write (s);, y& t, [4 s3 G- T& @
</script>  V7 H  W* a( _8 C( _* n! [. O5 d! H
</head><body></body></html>  Y* Y# _, V, u8 u# a  e- |* p, W. q

# m6 A- }7 \" S6 R9 Y# A# I  y: G  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:1 Z# [- \8 p8 \

- n' A0 i6 t; `' r( t9 _<script>
4 b6 l$ k' k6 I, ]% J% ifunction 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 ); }
( z, g3 n0 U0 A0 T2 N; Uvar sJsCmds ="" +
: W' q; ~! D/ U/ H"?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" +# k+ n0 Y2 R1 Q+ F$ F
"";1 \' e+ O" ]9 H" A3 P6 |
var s= Carbosoft( sJsCmds);
5 S. ]! ^7 z. g0 h# L</script>0 e! n3 M6 B( A5 l* A0 U
<form name=qq>
5 p2 ]/ c; f# E3 ]  J7 \: U$ H<textarea name=ww cols=100 rows=10></textarea>
: K9 v5 U2 F8 u3 ^<input onclick='ww.value=s' type=button value="解密">8 o( A2 M% e/ D( i& y" I
</form>  n0 y! Z! Q7 G6 ]8 P4 s3 L; D
5 P; i) b( H) m9 M: g5 y/ M9 I

  v5 o$ M% {% e+ Y+ x方法三:
# w5 @3 ^4 f' u: x: A
- b; O% j1 ]' k$ [1 Y. p# p  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:2 Y. s9 I6 U( i

+ u6 T* a' D7 J. S8 X4 h<HTML>
$ n5 m- ]( {, |$ l3 j<BODY>
( `) K* M+ R* ^: @* ]7 i- ]7 u<SCRIPT LANGUAGE="javascript">, P- p. U+ c2 m+ i; x# Y" T, ~! f
function Decode() {
( Y& P  B# E: C( Q9 H: jd("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;}4 A7 [% P9 w- K. a0 u9 S9 e! ~
</SCRIPT>9 G1 f  V' H: U. K+ n0 u0 O
<SCRIPT LANGUAGE="javascript">
5 r# ?& B/ U! j: _9 |2 O/ g) @function d (enc) {document.write(codeIt(key,enc));}
, t7 g3 s; i' _1 [/ P7 xvar 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;}
6 Z2 b" g2 T3 J9 e5 ^4 }9 |" Y</SCRIPT>: ^& J5 V) J* U9 l
<SCRIPT LANGUAGE="javascript">
% a$ e" h, a+ J# ]5 x$ f! p2 MDecode();2 ]! [; n9 i% Q" S
</SCRIPT>+ d% c& n0 z' {
</BODY>
* N6 z" v, _. Z1 [</HTML>* f" a; `& e( ~" a
- t/ H3 G* }# i- e3 `4 x) Y, q
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
' Q- L+ b8 z/ z/ W8 J% \# ~2 M; _; W9 Z6 _9 l
<HTML>; t* @8 f5 j- _5 g! f6 M/ z  u" Z
<BODY>* |; T2 t. ~3 h( ^
<SCRIPT LANGUAGE="javascript">
( M+ R, N+ Z! `- s' z" Jfunction Decode() {
' c+ Y1 g- }6 O/ v5 r1 D( b, ~2 ^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;}1 Z+ v  d" b) K# g% z' r/ A
</SCRIPT>3 Z0 i. k1 j6 z2 @
<SCRIPT LANGUAGE="javascript">
' `5 C/ r) S. {function d (enc) {alert(codeIt(key,enc));}4 t+ V. Y$ J( E' u. U+ J# E
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;}
" y: f, T7 ?- J</SCRIPT>
8 r9 z5 {, Q; y6 ^5 E  F<SCRIPT LANGUAGE="javascript">7 i- ?! E; r. N" F- h
Decode();: A9 I. {4 @3 q
</SCRIPT>+ P8 U. b) L/ X! W4 o4 m. v
</BODY>
% Y" b" P8 X& F0 J& A3 S</HTML>8 s- B9 D1 R3 N# k3 I
, O0 M, o! {6 L8 H
  哈哈!!:=)是不是很精彩!!

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