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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!3 A7 q+ M7 f0 y5 q' O

! P3 y, H2 h9 |/ \( h
3 g' F4 d) O; o) D. d$ r方法一:6 E1 p% x  f7 R7 i- k# v4 d

/ T+ }* z3 [/ D% w$ u* P9 i# U$ _  L
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:' c. u+ R/ m$ c/ c! T+ N
8 R: E$ `% P) c# p, @7 n6 }
<HTML>7 `7 }( l7 {+ ?7 l; J3 N
<SCRIPT LANGUAGE="javascript">" [2 f3 ?8 ?/ P9 f. f# S# 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"
3 z2 t+ P* r. i2 Mvar NewWords;
$ Q# a; j' _6 c. ^2 y7 i/ sNewWords = unescape(Words);
1 f2 C8 `  d6 ?* Ydocument.write(NewWords)
" }0 n# H# T# f- {: f; G</SCRIPT>
  o( l9 o5 s: r<BODY>
9 b! A8 V2 _+ @( K. I</BODY>/ Q* G0 `+ f* p8 Y
</HTML>; p2 d+ |9 w( c. p
. `* c# M' x$ d9 R4 g
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:. i2 r5 C$ A% L# m) M% @! w; A' g; }
% E+ u7 x7 Q/ R( _3 p  B3 i# ?
<HTML><SCRIPT LANGUAGE="javascript">
8 Z8 m' Z, S) [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"
; L6 b3 s' ?( I0 O' Q3 e. U  xvar NewWords;6 H) U9 J8 D) q/ {% E( k
NewWords = unescape(Words);
( R' M: U& {2 h. F- X- ]/ QNewWords=NewWords.toString();
  M) ~6 R# ^; d8 ]/ ?2 M/ Efunction password(){% L0 f  `' E) v/ E) U( `
document.pw.txtpw.value=NewWords;- p9 t/ `# u0 q* t# s5 d( V9 p
}
- d. f1 q+ N5 ]9 ^</SCRIPT>
4 B# S+ O1 Y: S$ n0 }% K<BODY>, V$ p1 {' h2 u6 f) f0 A0 i
<form name=pw>
" P9 R' P; C0 K<input type=button onclick="password()" value="解密">
, A& x3 ]5 B4 S1 f- Y, U<br>
; O7 ^# O  U# C( D1 F, j<textarea name="txtpw" cols="100" rows="100"></textarea>
+ a( x! Q. H- Q7 A</form>7 R' G( S! P9 G; d/ h
</BODY>
1 v. Y* k. b4 e9 ^8 Z) L</HTML>/ @# Y( M' z$ Q0 K
: j3 d, ~7 }' H8 J. m0 `3 I
方法二:5 u9 N# Q, N5 [/ W
9 L* l9 _4 _  p6 D9 O3 Y7 w" f
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:( s2 M- P$ ^5 e7 Q) }

4 s- ^0 \. V9 y; @, I2 \7 a<html><head><script>$ l/ q$ ^6 v; Q! K& {( k! P
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 ); }
5 U. v4 L  J6 }& k5 v' uvar sJsCmds ="" +
) r+ S. P8 ?" ]9 R" u, Z"?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" +- J8 n1 e/ i2 b/ c) m0 u9 w, d
"";* u1 X; p2 [- S8 H0 e) I; G
var s= Carbosoft( sJsCmds);
; g. A* @$ B1 }. S. N" hdocument.write (s);& s% g9 j- H1 t2 K% M5 h
</script>
  m' h  o# w# w: Q7 j, ?5 Z1 G# E</head><body></body></html>; g1 t2 c/ D6 U, T4 Q
- A, J9 s' {. T. A' I% A
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:2 ]/ Z+ ^+ M5 J; C

0 H3 U: g0 ?: i<script>* A+ X4 w+ X' j* g9 x  x
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 ); }! b) ]; X- F1 Q6 Z9 ]
var sJsCmds ="" +2 v$ y( k) y$ D+ M
"?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" +
0 X( O: B( m8 }" s% f: Z% R+ e- k) `"";% N% _$ S) k* H  z5 _. d" P
var s= Carbosoft( sJsCmds);/ p8 P5 f+ v  l. R$ D
</script>) |% d9 V! J2 @' f
<form name=qq>
" u3 u- z6 D2 _, @$ g<textarea name=ww cols=100 rows=10></textarea>
! T( F, r  Y, v: F<input onclick='ww.value=s' type=button value="解密">5 {; |% A2 S* j6 R4 |8 h9 {
</form>
' B$ ]# M7 J& Y' U( d, w( `) Z
% h' R* s1 X* c9 L" C6 Q, b' S* H
方法三:/ p( c6 f: ~: _3 N- v: c: _
6 I, I! R7 Z8 R5 x" e5 g4 J
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
. u+ }8 c- \9 z  I. {( S: @' y, W5 R+ K4 n) Q4 x% `/ W
<HTML>
5 G' p! D" e2 G4 L<BODY>
( ^, t5 W. R1 C8 I. Y<SCRIPT LANGUAGE="javascript">9 I0 p6 [. _( S2 w# W3 Y
function Decode() {+ T( {2 s, E8 N5 f8 I) W4 U
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;}$ |9 b" x- Y% _# V: H8 N& z
</SCRIPT>
3 X9 ]% J& v: X& w# f$ _<SCRIPT LANGUAGE="javascript">- \! n9 C2 [& [) u" _9 E8 ]
function d (enc) {document.write(codeIt(key,enc));}% b0 S+ f: H) C5 I: s
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;}
2 {6 C: S  s7 d* N8 v' k5 M" c. Z</SCRIPT>& m, O# b# F. H
<SCRIPT LANGUAGE="javascript">
" ~' `3 X) I+ n- R! LDecode();7 E* C' Q' ?/ Z; m+ G: I* k$ U. J& _
</SCRIPT>
& e, F, |2 d& R& m</BODY>
) n3 Q1 V% B  U</HTML>
# T1 b6 y1 L. i- W
- T3 A5 H- j% Z  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:2 g4 n, p* b+ i: K0 ^, X! p" H
- X5 Q3 A" \- l/ D
<HTML>3 D* i0 g8 B5 L0 L5 X1 z3 l
<BODY>
/ H/ K8 q* T5 h% ?* ^. W<SCRIPT LANGUAGE="javascript">
2 s% L' S" J8 t$ {3 p) ~function Decode() {
: h; x; \. I% O+ y; 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;}9 M0 H( i2 `2 g0 B
</SCRIPT>4 u8 U8 G2 i# I* ]( q8 J6 c
<SCRIPT LANGUAGE="javascript">
, P% ^7 d' f: P3 j7 R0 q( A2 }1 yfunction d (enc) {alert(codeIt(key,enc));}
0 L4 o4 [  S$ h" 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;}
& R" \  X' P: Q, X$ U, l) G</SCRIPT>$ P8 C3 T0 _8 J( Z" ]
<SCRIPT LANGUAGE="javascript">- f: x. o4 M+ p: ?/ R7 q
Decode();) ?0 K$ O3 Z# y, v, a/ N2 |. M
</SCRIPT>) r# o) _) [6 n5 J' z7 R% k! V3 X
</BODY>1 K. L- a& S8 l* h9 |
</HTML>
! U% B- e: ?+ b3 H9 _' L/ @
* e8 g: F4 |) c  t! [1 e. e# v  哈哈!!:=)是不是很精彩!!

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