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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
7 v2 l  S3 ?3 G8 l( X& Y
; k: n6 D  c$ C+ l5 x1 m% Q  E% B7 J4 f! H9 J' D
方法一:) g+ d8 J" `$ I, _* `

+ v0 L5 a1 t) w; j  Y& A7 M: C% ?* x4 @4 `5 R, m* o3 W; U
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:% I% X# X) L5 |2 K0 J# m
% B% A: S2 v) j& X) u  @5 ?9 K
<HTML>. z0 z( x7 q$ j  w
<SCRIPT LANGUAGE="javascript">
+ i. A* i  c! E: c/ Tvar 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"
# t) B- k: R) i6 q1 f: g9 avar NewWords;
2 M5 _* c# \- s9 rNewWords = unescape(Words);5 O* V1 B  |; G5 M- q
document.write(NewWords)- f8 ]. \! C: ^# t
</SCRIPT>+ u8 ^" z1 Q, ]9 \# a! Y
<BODY>- g, ^5 O7 Q  o" ~, `
</BODY>
8 u  V$ `$ t0 Z# W</HTML>( ^9 G, B& u9 \; h
$ n* f, Y% V7 _4 m3 _9 s
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:6 q% q! f5 s0 b5 \4 j' m
! P( b) f/ T& V! J$ w" \* }
<HTML><SCRIPT LANGUAGE="javascript">
, i6 o/ W$ W4 }( lvar 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"
$ e/ }6 ]6 \/ V0 z* Fvar NewWords;
, j! C& t4 H% S  K& X5 Q2 a) rNewWords = unescape(Words);* S. T7 h! L% e$ @6 `  Q0 |8 F# H
NewWords=NewWords.toString();8 ?6 n1 i: s" b
function password(){
2 ~* [' N3 m% A4 |1 Rdocument.pw.txtpw.value=NewWords;
" q" C1 d! U/ w0 e) c1 T}
$ @) y$ g: b/ K</SCRIPT>
6 z/ p& }% H/ ]& U' l<BODY>( E; w( \! v' D& O! q; R) s  E! ~3 [
<form name=pw>
/ H/ [! I: C: S! i<input type=button onclick="password()" value="解密">
& \4 a2 I6 V' }<br>  V( T! u+ X5 P( ?3 F
<textarea name="txtpw" cols="100" rows="100"></textarea># A9 y. c# b  E4 p/ T! u+ T
</form>
1 e5 n6 ^9 C! |. V: ~7 l</BODY>
" ?: |& C" R# W5 v! I0 B! w, ~</HTML>9 c6 `- K* `+ B# ?
8 d" s+ Z$ i. F/ u; m- H& P+ @
方法二:& T( J. P& h1 e% ]
4 h  T6 e/ s7 Z! W5 B- Q
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
9 a" H+ D' @. ]7 j( y; C7 @( x, c# g0 Y& ^" }% r, ]
<html><head><script>
0 D$ c( P" i- 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 ); }' V) r4 d0 g1 V- Y; l
var sJsCmds ="" +$ ^+ u7 |, N6 M/ P2 G+ 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" +& z$ X  \- u  V! }3 N
"";
: S4 h; }: G1 s: n5 wvar s= Carbosoft( sJsCmds);
- b& x* g7 [2 h5 [. [# kdocument.write (s);' w! d1 Y; D; S  h  M4 e  c& |
</script># g6 p+ v) y: Q" Q# k$ E. g, a' W
</head><body></body></html>
7 y9 L5 m/ J- h, _: \9 c; A2 }; _3 [3 @5 U, q
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:0 l  ~8 C- `# |. e. v
, K$ F' d$ G$ ]4 c" g+ F) A
<script>7 [1 D: N+ ~$ ~, K6 R1 M
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 ); }8 Q% C, O$ U% n# H; }6 N( ~0 v# K. \# j
var sJsCmds ="" +$ x, N& \8 q1 ^0 q# [+ n+ 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 G) h' Q; s- [; d- z
"";) y5 R6 e* |4 t# W
var s= Carbosoft( sJsCmds);$ E, ^8 c0 r3 ^0 _
</script>/ o$ ]/ o6 X# m1 _- G
<form name=qq>1 u( k$ ~+ O9 W! y, W2 h) {5 r
<textarea name=ww cols=100 rows=10></textarea>/ ~) i- R! y9 p5 i9 ]$ y7 t, r  z  Z5 z
<input onclick='ww.value=s' type=button value="解密">
, _# h2 B; P! [' |5 ]</form>8 M' Z# Q: a9 d8 d9 d8 v( z5 ~0 L

8 p2 v- ?7 g) e1 `" p5 ]; W
  W8 T  s! ?% h1 M; c: _方法三:# }$ C# R4 x7 b) B! M% [
0 A" x( \1 y- O0 A: n; j$ u- P
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
' T+ I  ?" y" b/ m) U. Z- N/ _+ L/ |, U9 L3 ]0 P/ F& m+ e
<HTML>
$ Y* b, ?7 U" p* L; v<BODY>
" ]" n1 N' t7 r; b% K( e<SCRIPT LANGUAGE="javascript">+ [6 u% \/ r! G
function Decode() {
1 x+ L( K4 o2 t3 Hd("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;}  ^) D4 X; b' ?5 t/ Q
</SCRIPT>( K* T8 f$ c2 ?9 O" u
<SCRIPT LANGUAGE="javascript">% ?3 F) R+ C0 z# Y/ B
function d (enc) {document.write(codeIt(key,enc));}
* j/ i* t5 D  s* h$ b9 b: ]! }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;}1 y4 G2 ]7 U; A
</SCRIPT>
- c. F9 K' h, v9 d8 B: |$ z# v+ C<SCRIPT LANGUAGE="javascript">1 [4 B7 L0 d& m  d. a3 D0 Y4 z5 x! t
Decode();
) i& P1 J! @2 E7 L; K2 \$ y8 [( [</SCRIPT>
4 q0 {/ {  r1 _% w2 U. l1 C</BODY>
5 ^. O% a* _% F7 M8 W</HTML>
( q0 p* M; q* e5 |9 c8 I+ j" I  C$ h* e% g+ n
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
, \" ^3 s8 Q8 P: a1 o
& Q  V: w5 ?3 V9 s; g, ?6 G<HTML>; d* v$ v! J. g0 m
<BODY>% ~5 f& L: n; F6 i3 \! c
<SCRIPT LANGUAGE="javascript">2 @  z' N! V+ I
function Decode() {4 e. P, G! F* V& f
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 H& @: S; Z+ C. @8 o7 n4 @2 \  a</SCRIPT>
' S3 i, q; ]" v$ F<SCRIPT LANGUAGE="javascript">/ N, U7 L5 o1 n, H  u6 w8 d2 L
function d (enc) {alert(codeIt(key,enc));}. E+ C& [5 P9 A% G
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;}$ |- F4 n6 d. L  T
</SCRIPT>- \% @7 d8 W) `
<SCRIPT LANGUAGE="javascript">( L* J6 `0 J9 w# b( a
Decode();
/ _  n& g+ L/ N  U* s) [9 k! V</SCRIPT>
5 K2 m# o7 y% E; r6 n. z</BODY>  o  t' @5 @: }
</HTML>1 M) N- a- Y- ?# u

8 j; K0 J( D/ ~  哈哈!!:=)是不是很精彩!!

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