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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!& B) W$ [5 c1 W2 y* \- b4 W

- M1 k6 h) \8 E8 z; h9 b7 L3 p4 c" x# _6 ]+ M  j# c, I
方法一:8 O; Q* _# \# @) i, \- ?, G
7 A9 i, E- f7 ?; @

! P" x% ]. R3 b, S, u6 s  s7 \  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:  N% X' _7 U  l# ]5 ^

7 H' l4 P$ y; S, t<HTML>$ b/ D9 F2 }4 C' ?/ [) n- Z
<SCRIPT LANGUAGE="javascript">
3 {0 O/ Y, z9 A3 \6 Ivar 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"6 ^- D( |" n0 E# Y& m
var NewWords;
+ D/ i, q: \( N; gNewWords = unescape(Words);. `. a. T1 V( v$ Y
document.write(NewWords)2 C/ f9 d3 S1 [  u* d0 x
</SCRIPT>' \9 d' \3 c; ~2 f7 U* r% V
<BODY>% R( ^! Z$ f; U7 M0 _9 L
</BODY>
: W% K3 Z3 x- d6 t* B</HTML>$ S! ?' ]( C2 J/ U* j: e( A6 K
6 O' P9 p# i5 |
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
# Q* D6 x# N3 y& d0 B
; z& F$ @% ^. L<HTML><SCRIPT LANGUAGE="javascript">
3 |' V) k5 [1 {2 W2 }) G* Svar 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". f" [$ e" H  V. H
var NewWords;* L. {1 Y  ?% y! j; Y2 `+ m" g
NewWords = unescape(Words);
5 O0 x! A' ]: W' y6 |  E( wNewWords=NewWords.toString();
- ~9 n7 K8 w) }% zfunction password(){
9 W- z; E3 T7 S& m) V1 s( F+ Pdocument.pw.txtpw.value=NewWords;9 c: i  ]/ a1 C9 c1 \: `' r4 j* O
}0 u6 u8 K; I9 j( ]4 v. [/ }
</SCRIPT>' o% F1 ]0 R$ d
<BODY>$ o+ J! U1 b2 z1 |
<form name=pw>8 I+ E* Z7 E( b  n
<input type=button onclick="password()" value="解密">
! s% ]: [4 y! V<br>
/ t2 w0 R) w& k! O) a<textarea name="txtpw" cols="100" rows="100"></textarea>
4 S6 G2 b* G- R" u8 n; D</form>
" W8 x& _. [6 J" l</BODY>
4 E" N7 l# K0 H! Z" k</HTML>
4 z  D+ l' q, ~* W% W& r$ E- D; J! n3 p, G+ s
方法二:
* i" z. y3 s* m
0 X  d) P  Y" K2 h+ _7 ~  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:# I$ M' }- b" |+ c2 A

4 {$ ?$ g6 M1 V; u<html><head><script>; [0 W0 B' h' q' q/ n& a- ^2 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 ); }
9 i7 ?! Q- \/ x, m! T, vvar sJsCmds ="" +7 R+ p( V# i% a8 j3 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" +
  ?3 F: Z9 a8 m& O"";
# u2 r4 o. h- t9 Qvar s= Carbosoft( sJsCmds);
* c- a* Q% z9 d6 P2 Ndocument.write (s);3 \2 K& y  S7 j5 U4 T; J
</script>
7 `8 Q+ Y- ^$ Q7 ?</head><body></body></html>
& a' Q: N; n$ m& ?" G
3 z/ Y8 \- j( r; K4 k" Y  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:( r4 T4 O0 v  v3 T/ j7 X3 ]) y

  c/ {9 y* T& ~1 x* B- U9 e! W<script>, Q) g4 J! X: H% o
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 ); }: z: X+ b5 |5 P& r" ?
var sJsCmds ="" +
8 ~8 R6 B) _$ A8 T3 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+ g* _2 r: b" _0 w"";9 N. m& S% E0 F4 m  n
var s= Carbosoft( sJsCmds);
# x- s; o7 e- M  T2 }</script>
2 l; g/ ?" H1 R4 k5 a9 p<form name=qq>
9 d4 Y) }; E* a2 L<textarea name=ww cols=100 rows=10></textarea>
) z( H# \0 o4 I( N<input onclick='ww.value=s' type=button value="解密">. Y3 g0 z% B. y  F
</form>) P6 d1 B1 j& @( t4 @  M
( ?  n) W2 H1 k

3 R) F6 O/ _" o0 W, s0 L方法三:9 X4 O- ~: j2 ^, a; x

% F/ X/ z' M& t  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
% D5 X+ g! u# B! C$ {5 B5 q* a: V) y6 ~( R3 x/ {
<HTML>' v% T- B/ i+ `# p
<BODY>4 _& C" X1 V) \9 G
<SCRIPT LANGUAGE="javascript">6 u; G! Q' G, F; t  ~7 j1 ?
function Decode() {
: z# L& D' Z  a% L1 g  \+ 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;}! M/ j7 f& p0 Z1 u8 s( j6 a
</SCRIPT>
4 R( z8 b% e* ?1 \( ?0 L<SCRIPT LANGUAGE="javascript">
" m' L! ]. b1 J4 x; G, Z+ \1 k: g0 Afunction d (enc) {document.write(codeIt(key,enc));}5 c- s  u6 K. A6 L" @) {3 @
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;}# ]4 `  \  s/ B* a3 V6 S5 A. q
</SCRIPT>! G+ q, M- J# p4 r, v
<SCRIPT LANGUAGE="javascript"># g: N. w6 L& y3 E
Decode();
2 |. U; _+ F8 }3 B$ P</SCRIPT>6 L6 D. P* N7 T9 N8 m& w3 ~
</BODY>
* g  b  V% W5 [3 ?; W% n</HTML>
: J$ r: q) E8 N, g" a/ Y+ k. H& j- l  v( _1 U9 t1 E" ^; F9 }
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:1 ~; @- q3 [* [- ^

+ ]# M1 {- @8 v<HTML>
! \. I5 G* U, A5 W5 t9 p: _. r. ~<BODY>) P4 R% E) P0 k+ E4 ]3 z( X
<SCRIPT LANGUAGE="javascript">2 y* U1 X5 }" K$ `1 f! h+ b% h
function Decode() {: c# S% b9 Q0 t8 ], 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;}
' Y+ C9 S8 w1 p2 {5 M</SCRIPT>9 ?" U8 C. o) y3 g) l8 B9 a5 w
<SCRIPT LANGUAGE="javascript">+ m+ B; g# P7 Y' M
function d (enc) {alert(codeIt(key,enc));}
+ T1 s) d& }, G) g9 w2 `: ~" nvar 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;}
+ l  |2 e& Z" m6 P; ^5 o/ w</SCRIPT># U1 z( W& m2 y7 A6 R+ v
<SCRIPT LANGUAGE="javascript">
# @0 l1 h2 I  n5 s$ VDecode();
; W) s* g2 m2 s3 j& f</SCRIPT>- K+ ^" \4 c6 i+ p% k
</BODY>+ a# K' b9 @8 L5 I0 U; T- U
</HTML>7 l& c7 g6 R1 l2 w/ a

. D3 f& E; {1 @! d0 Q' X/ ?- G  哈哈!!:=)是不是很精彩!!

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