返回列表 发帖

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!" @4 l* O3 C  D$ t) p5 P
' j% K/ N1 u% z0 M
2 _  ^4 J5 p/ g' j4 v  }4 q
方法一:
4 \* {4 X: V, m3 z$ B$ I+ m( `/ t' @0 F; M* F# X
: m" M- o. ?6 ]; V4 q: p
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:( T# h$ D8 B$ \1 K' N
- |' J3 u$ N3 ]
<HTML>
0 f0 p, T' L% r3 I. h<SCRIPT LANGUAGE="javascript">
$ i% v. P$ @0 m4 _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"
! q' |3 X: a8 O; z; O" X) ?: jvar NewWords;) _: D3 a9 ?1 w" z6 G& _
NewWords = unescape(Words);0 s) t" V0 F) T! Q5 c
document.write(NewWords)0 U0 [. q- B1 Y+ X0 x
</SCRIPT>
# q9 S0 a0 o. v/ Z<BODY>
- J  Q' g2 z+ z! z</BODY>! n# Y0 o- b" l* |
</HTML>
% Z# l4 E; {3 J0 S" F9 X/ `& F3 S) b( A' `( C
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:) S8 @1 ]9 V, y% a; N1 q

7 |6 Z4 L& {6 E" V! L8 X6 N9 _9 }; h! }<HTML><SCRIPT LANGUAGE="javascript">) V  G1 E# X+ n3 X# l) @5 }
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 Z& g) I' e9 P! X0 R
var NewWords;
9 u- n# c2 n. oNewWords = unescape(Words);- o* N% Q. u  i$ F9 ~4 C
NewWords=NewWords.toString();4 ]( ?: {$ n4 M3 W! M
function password(){
0 R; Q2 P. \  H# ~2 odocument.pw.txtpw.value=NewWords;
' t0 }/ R9 ~( r; t4 b8 D}
# x- i4 Y* b- B$ |( d</SCRIPT>% p! h9 N' ^$ r
<BODY>
. S9 u* E; X' P/ O1 ^7 y% `<form name=pw>7 y0 a, c' w7 O+ K8 ?4 D
<input type=button onclick="password()" value="解密">* r* A/ U$ o3 c1 J" x, s
<br>
/ Z" K! i# N* Z1 |5 \" P1 `<textarea name="txtpw" cols="100" rows="100"></textarea>
- r# v* m5 i1 L  m</form>; K& ?6 h: A( P2 z: W6 P6 y
</BODY>
6 S- ~& f0 o6 h4 A2 E+ y8 R6 s</HTML>' h( j, i5 b" ?5 |- S9 i3 J
6 Q" d/ T' \/ K3 W! |
方法二:
3 n- @. D. ~: O# k$ X
2 ]% O% `- E$ R( Z- U$ B, |  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:4 S- T! w- t! i) s; R/ H

8 A. G3 B8 \( W" _- `  T4 b5 r<html><head><script>
- k" T  o. [, f# H+ e+ [7 O" Dfunction 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 ); }
, c7 `: |" P8 s/ I" gvar sJsCmds ="" +
2 M. }4 h5 f1 C2 }1 t3 b6 y"?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" +
- \& m' R4 ^0 n$ b$ c: Z"";
3 I' R5 t( N1 Q8 e( M" U: |var s= Carbosoft( sJsCmds);# {, N, r) _9 C6 ?  \6 C8 e# c# l
document.write (s);0 W8 [2 q% h) ~" [4 o$ R& ]
</script>1 |& ?/ w& ?9 V& n
</head><body></body></html>2 Y2 N. V% [1 t) x3 O$ B; r

  ~9 N. ^' b1 Z/ P) ?) F  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:% {6 M: c. D5 K/ k9 w, D, d# c

* k4 `: a/ M3 c' C<script>
5 _' Y. C. n. @8 ^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 w, s# A7 u, C' x+ Mvar sJsCmds ="" +
2 }# N/ {) k! K) ^1 D. I& _9 J"?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" +
  `$ d' v* E( W+ o. H2 F"";) j3 M. k) @# O) s' W+ y- B% ^
var s= Carbosoft( sJsCmds);3 L% U3 p' x  E; h) C
</script>
# S: G+ w3 x- b) E! J6 F<form name=qq>: ]2 G+ V. [1 q. T8 F& N, W
<textarea name=ww cols=100 rows=10></textarea>, e' U$ R; x/ }5 D
<input onclick='ww.value=s' type=button value="解密">
  g" P# L& c' P4 g, j</form>& |9 m% F, M' Z+ y  C) u

9 u3 V# W+ G' h% u
- A! g: {% \: {5 W1 M方法三:
" D7 n" ]! b: }# m
( Y$ C0 ?: {0 `# T  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:- [2 X9 s3 s- i) s7 v& w% R4 `& x

3 \2 k' o1 r6 P2 X* P; F<HTML>
$ q- z" J3 l( }5 j<BODY># `; A; B% {4 p( L( z
<SCRIPT LANGUAGE="javascript">4 Q( j: q  I" W' ^- P) c
function Decode() {: S0 L0 n- s1 F- h
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;}7 ~4 ~1 y) x3 s4 Z6 W
</SCRIPT>1 R. ~" ]8 o/ A' x/ f% B
<SCRIPT LANGUAGE="javascript">
4 Y' p* D6 a6 _+ Y( [: H3 x5 Yfunction d (enc) {document.write(codeIt(key,enc));}2 y# M' L  M0 o- j/ U
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;}0 ^$ d8 x- d7 T+ o" @' M
</SCRIPT>2 L6 W2 R. H9 A
<SCRIPT LANGUAGE="javascript">1 o9 n3 ~1 S; w1 i2 Q5 f
Decode();* g: ^5 }" z0 `$ C3 m
</SCRIPT>- S' \- v: l$ k$ v& e2 f
</BODY>8 X  @2 F( X* s$ D4 L
</HTML>
; B2 c3 O, q2 X2 d4 r8 @- V
" e# U! h$ V/ u0 |1 ?  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:) u) \( W# O) L8 ~3 ]& q

, [/ m  c2 m+ j<HTML>
4 o, c3 a+ t* G9 e<BODY>
  s/ @4 Y/ o2 A5 [% C: ?! g# L<SCRIPT LANGUAGE="javascript">
9 H" a5 n" `" l5 M$ d3 V5 |% lfunction Decode() {0 A/ I- ~, X! @0 Y  I
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;}/ t: ^0 j3 v3 p+ w7 X
</SCRIPT>
! `: N5 g, M& e" z<SCRIPT LANGUAGE="javascript">% A/ B% C9 Q: y, W" C, u  [
function d (enc) {alert(codeIt(key,enc));}
8 L. s; P+ 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;}$ @. U  V; v: _0 n3 e5 }
</SCRIPT>' e1 Z+ m5 m+ j. Z
<SCRIPT LANGUAGE="javascript">
, y* D4 M$ F' \! c6 W1 [Decode();. o8 L) }7 |2 ~. e
</SCRIPT>
% Z! |& t! Z9 a% j0 ?. c1 E</BODY>
: ?/ h5 r' ?# S$ E/ m</HTML>
8 I* S/ |; M/ p% H* g
$ o; Q+ D" n* M+ W! i& l( D  哈哈!!:=)是不是很精彩!!

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