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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!6 G4 a' P3 v! j/ \9 [

; Q2 t1 y) Z$ R  \" |( z4 d" N* ^! r$ u) S$ f6 C, C
方法一:; r7 U& W8 ^/ P! ^
/ P) {5 S# U, z* T: J  p

& |1 Q7 ]: O6 q* d  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:
; E, m. J' N% X# s: V5 @+ F6 O6 u8 E; }( `* B' \+ }
<HTML>0 a# w0 N$ a) K+ z8 M1 I
<SCRIPT LANGUAGE="javascript">3 A  a/ ^4 ~5 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"  v1 j, {+ s* ~3 r! D) t
var NewWords;% J2 E3 ]/ Y3 [' F9 \
NewWords = unescape(Words);
& i3 W/ z, r0 h, F0 H# r: mdocument.write(NewWords)
  S- g5 Y% J) z- F: S  t# U% S</SCRIPT>8 k6 \' E% f- w7 _
<BODY>
' g4 o% e, ]0 a9 @) ~( @</BODY>: i; u/ |9 m  m* s4 |/ _
</HTML>1 a& N, f9 M1 S, X9 V* ^. W" U
, A0 m; p. R* ^
  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:
* v; H2 i6 ~) w, |+ }3 A' q. J( A# z' k4 M, W& d6 y/ p* e
<HTML><SCRIPT LANGUAGE="javascript">
$ Z8 @' s: R% C9 R2 I0 A. I0 uvar 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") Z! ^1 ]8 s" Y( i
var NewWords;
2 f8 Y& t" Z$ BNewWords = unescape(Words);, O8 g9 `/ n8 \8 Y  S
NewWords=NewWords.toString();
) s& h* r% V" K! D6 {* a1 ?" rfunction password(){
4 f. G1 N1 J2 H& U* \2 idocument.pw.txtpw.value=NewWords;' Q' s  s( F+ F7 V4 Y/ Q& ^
}0 M/ B: H( e  F  S) J
</SCRIPT>
7 l% `- `" h/ }<BODY>8 Y' s5 C& a2 R  J8 T1 i- m& v
<form name=pw>
  z' d# j/ |" {<input type=button onclick="password()" value="解密">
/ j6 B( h/ j1 P  J* x: e<br>
+ o  n6 z: M9 a: ~: o; D- L7 C<textarea name="txtpw" cols="100" rows="100"></textarea>
  M# @' u! `- ^0 V9 f' q! z</form>
" ]' G) U& c% R</BODY>4 G) u1 p7 j1 y! [2 \- x! `1 o
</HTML>: B: r. B, ~2 L: }- z; i2 X' _
4 C6 s4 z  e- b
方法二:
3 [2 n, v8 S2 U3 Q2 C# g& o+ j3 ]+ U9 L! {( `
  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:5 L1 Z5 l1 C" o8 r9 ^- y. z2 d3 g
8 k6 A; y) p# u4 n
<html><head><script>4 K2 ^1 H! D) w; n, 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 ); }8 w) Q! F, Y9 Z$ m6 e, t3 U! g
var sJsCmds ="" +$ g% Z. G8 x6 d! r3 K* I* }$ b% ?
"?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 U, @) Z  E6 q
"";0 t: T1 [! k  N8 m2 r- ~4 _) V. X
var s= Carbosoft( sJsCmds);) |# h' S0 _) B
document.write (s);& ?' ~% I9 [$ Q# R) m4 t; v
</script>9 g4 r! \. R" w
</head><body></body></html>8 }" p' @7 x# W0 G9 `, o

* Q' C2 u/ z0 b6 H$ @" P  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
3 b3 V& S5 l# Q3 G. k+ l5 D1 Z: h9 l! u$ b# e# q4 `& f
<script>
! h5 ]! ]  p* x; O% e3 C7 Kfunction 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 ); }0 N* v2 y% K5 }" C  s# ?' q' j3 G5 R% Q
var sJsCmds ="" +7 B$ s& s( ^% ~! m& b/ Z+ n
"?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" +& |, K7 H& I4 c! H! v
"";
* ?5 C  K& J& m+ `/ B, Z( ^( Hvar s= Carbosoft( sJsCmds);: i" p* R7 t2 y3 j2 ]
</script>
& ]2 P  m  m# N* t- B<form name=qq>" a" {# u' s9 b  N4 h; y
<textarea name=ww cols=100 rows=10></textarea>6 J- F% }8 d$ ~6 H
<input onclick='ww.value=s' type=button value="解密">6 o9 t% v  K5 O2 u/ ]8 T
</form>
) |, @2 x) W5 |0 L7 h/ x, ^7 \' r2 s" Z! D9 ]; x
4 [2 m/ f$ `, c6 n4 s( n
方法三:4 i! ^& O7 u6 b; o1 v8 e
: Y4 G2 Y3 j( e5 Y+ }
  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:1 ]' X- P) t, k2 T
3 A- l- K: r  K% y; h
<HTML>
: f& |$ I0 H3 b; T' c# C, j* m" e<BODY># X8 f/ [3 O$ a$ A+ e# A
<SCRIPT LANGUAGE="javascript">
4 T' w+ R, o. z1 c* r! Ffunction Decode() {
$ S' z7 }( p7 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;}
- g0 q& e; c- e2 M! x8 y</SCRIPT>) V0 v6 c  Q8 t! w- X! r
<SCRIPT LANGUAGE="javascript">6 y: D1 p8 C7 M* t# ?! m# I+ {& U
function d (enc) {document.write(codeIt(key,enc));}" k0 F) z' ~6 s1 d0 h1 ~# o
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;}
' R+ M! R5 ]( u</SCRIPT>
% D1 T- f* o9 ^* T1 n  x<SCRIPT LANGUAGE="javascript">
# C! J; h+ {# [4 w2 t$ eDecode();
. N9 d5 V$ s& s0 {* d$ e3 t</SCRIPT>
. C# u5 _  }: n</BODY>: h* Y- r9 p$ P; I8 q6 a1 k% e( c
</HTML>; u5 B9 r* b; t0 u' |' ?
4 a7 R$ p  E7 Y8 T  K, o. t* o& \
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:
' U& `8 n0 k  M3 w+ `( L+ w+ O! B5 ~8 s" ^. j
<HTML>* g  e; w% ]3 Z! c4 h
<BODY>; U# b- k6 a' C- F
<SCRIPT LANGUAGE="javascript">/ k$ ~7 e+ S7 c
function Decode() {
4 |% W8 x7 _! X$ V  l3 i/ e( q; \8 Id("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;}. O- g  r4 U8 |; G2 L
</SCRIPT>
! b: ]! x& Q& c5 Z5 Z<SCRIPT LANGUAGE="javascript">
& z7 t. ]2 C8 g7 W6 q& }function d (enc) {alert(codeIt(key,enc));}# ~, t# J1 n8 J% W% N) R# ~
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;}0 g6 Z" v6 D, Y0 t& ~) @; c& Y
</SCRIPT>
7 U0 ~  p+ P6 ]& H: G9 s<SCRIPT LANGUAGE="javascript">
$ `' W1 w: @- b9 H! qDecode();; @5 y  Y+ W! v) E) |
</SCRIPT>, A' e) w7 g. h$ s/ M% O1 M
</BODY>
" X. U  o# a9 X( Y( b4 J- j</HTML>: ?0 J: i# j$ d7 \6 s+ u& v( y
" D4 x* w9 o( y: {4 |& [
  哈哈!!:=)是不是很精彩!!

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