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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!+ N) z3 f& C1 t# m% i, v

8 @7 G; m' J/ _5 Z$ t8 M6 ?, F" y% s2 ~$ e
方法一:3 [! k5 ?& g& @1 b4 _2 S8 b
* o* h) `- {% L0 E% Y# P
- n- I0 u* ?8 R
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:0 S$ R# G8 F0 @/ E: \* T
, g% }6 k4 V5 B& {
<HTML>
2 F( N5 i8 f- O7 m7 \5 [7 M<SCRIPT LANGUAGE="javascript">1 y; t/ S$ f+ X0 I3 y* N$ k; Y
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"
& m( ]) ~8 e8 Z; r: Qvar NewWords;
+ m7 n/ M: Q# E9 R! Z; s9 qNewWords = unescape(Words);
+ b# S% W$ ?3 {document.write(NewWords)
4 g; |0 P& L2 M/ L* R3 V, T</SCRIPT>
2 n: s" L6 S6 G: y  O" C7 [<BODY>
9 z/ L$ g, z* g</BODY>9 I7 P( I! ^7 `+ f/ k- e3 |
</HTML>( n6 {4 i) y9 a2 ]/ `5 u7 u6 T" G

8 d: t9 `5 J( \7 z9 m5 ^5 m; g  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:  P( Q; j( `! ~3 @# q5 C
  U! N! g6 ]1 {# {* M
<HTML><SCRIPT LANGUAGE="javascript">
* r2 c, E. ^( F0 q, E; Y0 qvar 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 N) F4 ?1 T$ d: ^8 V
var NewWords;
4 g$ I. V6 ^5 T; C: S  nNewWords = unescape(Words);! i# t% @& U7 A# i
NewWords=NewWords.toString();4 D; h$ x' F! X7 J( A
function password(){
* v6 V( s, R, Z$ i0 a) R6 \document.pw.txtpw.value=NewWords;9 x7 G( h1 u* E2 O0 ^+ K8 P4 I
}$ ~4 D, i+ o% t
</SCRIPT>9 G0 r; P. z  z) ^6 H
<BODY>) I0 {3 E0 w, W$ q" @+ l
<form name=pw>
, x9 {5 w+ r9 \$ G/ y) V<input type=button onclick="password()" value="解密">8 B% D+ Q' M; p' @0 ~% Z
<br>
: t% H) H) S) L+ W<textarea name="txtpw" cols="100" rows="100"></textarea>
) d* L" Z% _( E+ E% h' f$ u</form>
$ W4 T/ a5 T6 ^; ~</BODY>
0 O+ J2 ]: ~5 r4 j</HTML>
8 E8 ]" u9 U: b3 x% _- S# [
+ y( f/ {4 f2 Z. \; M3 c! m1 M方法二:7 c8 r* ?. k, F* M& ~

! n) L% u4 k. |- _7 _  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:) d; ~' S# [3 l5 e, @1 d7 K; x

7 a, \* h6 ?% c4 M5 r9 J<html><head><script>
; y/ i+ `2 O0 w! Y# e2 N/ M; Pfunction 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 ); }
! m7 t* C! h* ?* O1 G7 {) A8 j9 Tvar sJsCmds ="" +
* L6 P4 {& M0 p* d+ U"?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" +
! P6 ]: y5 ?$ L) @2 q& m"";
4 c7 ]! s' X, e, P" B: Dvar s= Carbosoft( sJsCmds);
0 S& p9 E) h, _& bdocument.write (s);  t- L5 C' v/ K. C4 j2 S% V
</script>
9 ?4 J( @- U' M</head><body></body></html>( F3 }! [9 z( D+ @
% }! R- _! ]& E  }5 L) s' u/ [& x+ P
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:6 c; }9 S2 a( m: [8 `
' p% ~7 H- z' u
<script>' K7 |- {/ ?! ]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 ); }3 y1 |9 f  {( N1 \% h! @
var sJsCmds ="" +! N8 I) F# Y! G; o
"?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" +) X+ j" Y& E, A1 K- ]3 r! r
"";
% ^5 Q- E% R: U. r5 [) B5 \3 lvar s= Carbosoft( sJsCmds);
( n. Y1 E3 G  l. j. s( A* Z1 j2 x</script>- f/ Z8 t% K- s4 P4 X* |, Y
<form name=qq>. ]% Q. _( [# Q2 s8 ~% s
<textarea name=ww cols=100 rows=10></textarea>
5 Q% w4 T5 J! S7 d<input onclick='ww.value=s' type=button value="解密">
9 Y4 ?( j; L( t/ f. F</form>8 w& k% e/ a& N4 V$ ]) K

7 B0 k2 I8 K: {# C2 Y4 z: L5 B( M9 S3 e5 W" j
方法三:2 I0 g$ e! K5 T
* i( i# b& l( q/ x, w& j" h" p5 j
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:! O- f4 B( ?& i# \
' g  K. w& y! [1 O
<HTML>
8 \1 b3 c8 w8 g% l<BODY>: D/ U) |& j& k5 d
<SCRIPT LANGUAGE="javascript">
. r' ?7 p5 f4 Y4 m0 l* W* }" afunction Decode() {
' d7 t6 J3 x& Od("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;}! L& O; l: ?: S5 U+ b
</SCRIPT>
0 w) {: P" U2 ]# u: f<SCRIPT LANGUAGE="javascript">
6 e) q) X1 r  Y/ K7 M& V! R! m: b8 B% Zfunction d (enc) {document.write(codeIt(key,enc));}
( i4 T- B0 j/ M' h" Yvar 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;}
; d/ X: t; J8 ^; _, _$ o, d2 r</SCRIPT>
8 R# L/ \1 ?6 ^2 j7 V<SCRIPT LANGUAGE="javascript">
, W! q4 A, ?; {4 M) z% p" PDecode();& u2 o# ], b7 Y3 i( I- L
</SCRIPT>
8 H5 b% i1 W1 b! b( F$ a</BODY>. \4 w+ a- O) u: `
</HTML>3 P1 z2 p0 ~) R* @. o  e
: o% ^  j. _$ s% E
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
; _2 @* X# N4 A5 ?
; S* m1 f3 d6 ~& t<HTML># K) S1 Y/ Q$ b' W
<BODY>
9 |* {& p* K5 O& D1 i3 N% r<SCRIPT LANGUAGE="javascript">
; Y4 t3 c& S' `function Decode() {  o4 N. d1 h- M5 ^) g0 A) `  J
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;}
* @$ c4 ~1 t2 Y' a4 l</SCRIPT>
0 d* T# K3 {5 k0 m<SCRIPT LANGUAGE="javascript">- ]+ b- \9 o+ v, U: t
function d (enc) {alert(codeIt(key,enc));}' V, p4 u2 E* c) V) m8 ~
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;}
$ k5 {7 H3 J- V, `! F& n2 h, X</SCRIPT>, A% l$ H2 u7 z% b, R( p' v
<SCRIPT LANGUAGE="javascript">
& T2 y# u- c/ W3 [" WDecode();9 _/ z9 E: {. c
</SCRIPT>% A. X' P  S1 N. _' ~
</BODY>5 R/ g3 P1 Z/ |1 j7 }6 a3 |4 K; {9 p
</HTML>8 w7 M2 f- ~% t! u/ w

  P; l" Y# U7 s" \  H( Q) _  哈哈!!:=)是不是很精彩!!

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