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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!5 M0 S- K4 a* K' e7 a
' W7 `3 z* ^4 [+ d$ l$ h4 n- |# I
/ o$ Z# n: }3 k' s/ ]& j
方法一:; `  i; _! G9 ]1 u3 Y* |: \

9 b( l6 u  ^3 U  g' G7 Y2 i, ?, T) O+ f
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 Q$ |7 f% _' i4 ^
7 w" Q5 _9 `& z- h8 I6 W
<HTML>% g' u6 {' [0 _2 `9 B0 u. E2 O1 {3 ]
<SCRIPT LANGUAGE="javascript">
/ I8 {' m8 J$ ]. `. s) zvar 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 C) n+ }+ N8 K4 F- I8 e
var NewWords;' K9 a/ [9 Y' d2 `) o
NewWords = unescape(Words);/ x' F" i) T3 f& `
document.write(NewWords)0 f8 e- N5 |9 @8 h8 }
</SCRIPT>' U5 m& K  M' i: f9 @8 a' c% k8 X
<BODY>
: v% s* w0 X* v+ T</BODY>& }& y9 T1 Q/ P9 Y, O
</HTML>7 F, k( C$ f+ V  ~8 a* C8 S8 ]
% \5 B, F" V- j- m9 T: [
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:& J& C/ J' ]* I

8 I& l) u# g' O! C, }$ d7 P6 u<HTML><SCRIPT LANGUAGE="javascript">
  B' V+ [8 }+ \0 O, R1 Kvar 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"- c$ r1 C4 C3 d& q
var NewWords;3 p8 G- Q5 C6 Z' w" q( Q
NewWords = unescape(Words);+ [! C8 i2 O: D% H' [3 y' ]: i- e% b
NewWords=NewWords.toString();# V  l3 l  [1 V* e; T( m
function password(){. w" S5 m9 |# `$ G- |
document.pw.txtpw.value=NewWords;
- \0 \! t  l1 y( S}
" I% c  F: C' d+ t, O  Y</SCRIPT># @/ }' V3 e, p# A  \
<BODY>
0 l- K2 _/ c2 f) M3 _1 Q1 ^+ P8 d% a<form name=pw>/ W1 `6 A2 e7 q  M
<input type=button onclick="password()" value="解密">
: ^! f9 i7 f& \7 ?0 J<br>
$ [! W+ v3 t- B: K<textarea name="txtpw" cols="100" rows="100"></textarea>
" V7 |* L7 ^0 P+ ]8 F</form>
0 i' _0 o8 F" K</BODY>8 s3 u& [  e' S! Q
</HTML>
: i% |0 H) k. o& k8 y8 `- M* P6 @) P8 h
方法二:
, `8 \- L3 v' Q3 t) ~
6 u6 Z" o& I  L- F  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:9 ?- ~$ T+ P7 A0 [6 Y0 @
, ~, x3 c+ S- s4 @4 |/ G8 \2 t
<html><head><script>4 _/ M( f3 Q5 W7 f& b
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 ); }, i; V1 O! P% z" t: x( L# J
var sJsCmds ="" +; R6 d2 `& _- n8 @$ U8 x2 n8 d
"?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" +
; |7 N/ |; |( G3 b/ j4 d"";; a% k1 w; e* k% x
var s= Carbosoft( sJsCmds);
9 A$ X$ e8 q+ T- O. F! |document.write (s);
  l; }5 r$ v0 ^- w) q) L</script>- Q7 z8 T2 Z2 d2 g: i) N
</head><body></body></html>+ s, k3 E5 H3 K. _

1 M% n) h5 ?* G4 T: W  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:- `* J4 z! @& I2 S# m; a: N

: [! @+ W3 O2 M; N! ~% J5 Z<script>1 }& E' v) A6 D, p5 q
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 ); }
* w: U% h& L1 Z8 B8 N: Avar sJsCmds ="" +
9 L' B( x+ v: e5 E7 r/ K"?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" +9 A/ R8 y% `' ~
"";$ }- V( q  X) ?# S$ D& K$ {
var s= Carbosoft( sJsCmds);
& [, m0 u& g* s0 Q% \# i# B</script>* B" [' _2 W1 Z" ?% }, r
<form name=qq>
3 v0 J( f% Y. O<textarea name=ww cols=100 rows=10></textarea>1 f+ A! m6 s6 J  E" w, a
<input onclick='ww.value=s' type=button value="解密">
5 W& M. |6 n  h  {5 O! Y</form>( J# ]6 \/ J7 r. B7 c

3 i. {( `. ~1 u" u& I7 y" C& r; s5 B
方法三:1 Q) Z+ J6 n6 G

& m$ ~' u- J$ X; T' b% X. D* ]" M  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:$ o3 \6 v1 k$ ]2 l$ f: L

# e/ [2 d+ Q" Z& o: J<HTML>
  w: n( w5 j, o1 X* I. A% Z<BODY>* ]' K2 k& ^: k+ B( J" j; V
<SCRIPT LANGUAGE="javascript">
" D) h' A$ Y" @( r# Lfunction Decode() {
7 E3 S( p3 y8 ~# i4 Xd("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;}+ k7 y& b, |& n3 V# }9 e: W
</SCRIPT>! g+ t+ @( n' \: u
<SCRIPT LANGUAGE="javascript">
9 r! |: Z2 T+ B, o/ R+ Yfunction d (enc) {document.write(codeIt(key,enc));}
& e# c6 v* A: n. _: Svar 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 `7 C+ v6 j9 D8 e3 m$ |
</SCRIPT>9 q& p7 C. s* ]$ k
<SCRIPT LANGUAGE="javascript">* q. E9 w/ f2 r2 {) p
Decode();
0 h# K! |6 L& k- P6 u: Q4 b</SCRIPT>
2 D3 ?9 F' B; m3 K# p4 C; ]+ {6 _</BODY>+ y) H) f9 p7 Y, h
</HTML>) ?4 U6 M& S' r, ~. C2 K1 q

3 p+ v2 o* b3 J* b# N5 w5 A% ?  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
+ B5 D+ K! V! e3 Z2 ?; [9 S3 t6 T1 P' f% n. I
<HTML>) [/ h. w8 J0 M6 ~
<BODY>1 t) y/ ]! U) t4 e' @. g% B
<SCRIPT LANGUAGE="javascript">
: ~/ k" O  G$ e; |2 K3 `function Decode() {
+ d6 A1 l; u2 A% Y* v* ]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;}
: I2 P4 A8 Z; s$ [" h" t7 F+ W</SCRIPT>/ ~/ N4 r" ~5 z# [
<SCRIPT LANGUAGE="javascript">
1 g* b+ S6 I+ q$ ?3 o. n' c( Rfunction d (enc) {alert(codeIt(key,enc));}
- F4 M+ x1 `% n# O! ~! Ovar 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;}
( L8 P- ]- h8 g* Q' J  Q6 h, M</SCRIPT>
, t4 ?" H( @8 h: R) E1 N1 H<SCRIPT LANGUAGE="javascript">
* y7 ^! n: k3 ~: `Decode();  S8 L3 I# ^7 l- a( q6 j! _
</SCRIPT>
4 O* }7 Y) p! O1 e4 e</BODY>. z! w2 b* I) u* ]' {5 I
</HTML>) W/ |0 S, d$ \

7 F2 a! g3 A4 J! e  n- I1 @  哈哈!!:=)是不是很精彩!!

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