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

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

当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!
' {9 n. k8 a, |- T
/ H/ S- }" r2 O. N) n" l1 B* n( H+ w; Y9 ]! B
方法一:. A; ~0 g( r( l* n6 E
, \9 f& b7 J2 a& T7 t, p) f, x
# L) p- ]# e  d3 u+ A% z
  有一种加密的办法是采用javascript的escape()函数,把某些符号、汉字等变成乱码,以达到迷惑人的目的。解密这种代码的办法是采用其反函数加以还原。下面是一个经过加密的例子:, D, v9 e2 Y  |

7 t- K4 K4 X# d  h$ S<HTML>
* a0 @: P5 _# E$ Z+ B+ b<SCRIPT LANGUAGE="javascript">
1 E0 @& k3 Y/ K2 A- Pvar 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"' u$ D3 w: M  t( C  v
var NewWords;7 V/ n1 r1 S% L' m1 t6 Q
NewWords = unescape(Words);5 Y, ^8 U3 V% F9 s
document.write(NewWords)
- T$ `* N+ i" j- x</SCRIPT>
. L$ o. K/ ^& j! N<BODY>
, R& [% m/ j, b6 }</BODY>* {6 n  B% y# ~1 H# m
</HTML>& B* o) N5 E- ~3 s9 Q) |

& R1 A7 ?/ }+ c; b8 a  这种文件最好解密,一看就明白,关键是unescape()函数起了还原源代码的作用。要想看到加密前的代码是什么样子,可以用下面的办法:5 P2 D# ]5 r# W8 ^. B6 v+ m+ f

3 M  A5 P/ _! T6 N! j; |<HTML><SCRIPT LANGUAGE="javascript">( a! ]5 s2 y3 B
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"* [8 [5 I5 ]5 c/ {( g
var NewWords;
9 Y" }: N5 b+ X- R' n5 W9 xNewWords = unescape(Words);
4 x4 [+ M  G9 S' `+ W; E! |  cNewWords=NewWords.toString();
. g% U; P9 O- N8 |  sfunction password(){7 _8 u$ h; t+ A: ?7 F. M
document.pw.txtpw.value=NewWords;
; `! H$ k. A8 s$ c7 O* @}% H. i6 o, c: L
</SCRIPT>$ L6 c) M4 l, o  O' v' F
<BODY>+ Q- u4 d) n# B9 N+ O
<form name=pw>- v% w$ i4 h7 H7 b! G
<input type=button onclick="password()" value="解密"># a4 c4 H' I% K; R/ [5 t& g& I6 e
<br>
; G( `: T7 {0 j/ ^4 \- y( E$ E: m<textarea name="txtpw" cols="100" rows="100"></textarea>
  R1 e% |! G& I( v) W  x3 |</form>
( f/ E* f/ g3 S</BODY>
; I& q% C! ?. ?3 E! ~' f</HTML>8 F0 t7 P3 L5 z3 f0 _( }5 X% e
& i6 @1 n7 F  Y8 Y* x' k, w* o
方法二:2 F0 `" h, C. h' U, I+ v

' s9 V) p7 s$ I7 O# a( S3 c  有一个软件叫HTMLEncrypt.exe,它就是把源代码进行加密的软件,这个软件的加密的原理是把字符转换成Unicode代码。下面的例子是一个分帧的页面:
& g8 x5 X+ p% n3 J% P9 D% o7 R! ?3 ~( G4 [1 P' {% [
<html><head><script>
% m' B# A- L% i8 Sfunction 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 ); }( U( Z* B2 D) ?6 f/ F
var sJsCmds ="" +
; @, i9 w( R) F. a"?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" +
5 d$ k) [& O( a8 C"";, m: {+ R) f+ G+ H+ V: G
var s= Carbosoft( sJsCmds);! `, |0 [! E" V7 _6 Z0 C2 N* K
document.write (s);. w' F5 m. k+ A  M& d
</script>
9 z! {& e! \. ^: {9 t1 e+ D  e0 e</head><body></body></html>6 Z$ }4 z. C- X, i- |- P0 s
" H9 r3 Y4 |2 y8 {% h/ u
  从上面可以看出,浏览器解释这写代码前,进行了还原,从而可以得到破解的方法如下:
6 ^/ M+ j. |" w- v" e' k' h7 ~/ l4 X/ ?, `' Q5 K
<script>
; r8 t1 d, B% y" ~7 _. lfunction 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 ); }1 R/ M+ n! h( I" e( c+ n
var sJsCmds ="" +
6 _' z, s- Z: }4 \% X, 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" +$ ]- V4 Q- S4 T- @
"";
1 Q' {6 F, b8 V% Dvar s= Carbosoft( sJsCmds);
& U; x0 h/ H: t</script>( ?7 @; Y% @% I  |( A
<form name=qq># \7 e: G1 t9 G$ F
<textarea name=ww cols=100 rows=10></textarea>
4 Q* {. Y4 }( A. d9 y: @1 |<input onclick='ww.value=s' type=button value="解密">
) F9 s# b& a. G/ |8 I6 s# z! ^</form>* c! z4 B/ Y9 z% B9 M) o) C0 l# }
* t1 F1 H9 b4 z/ c. X& f8 D

8 @- \' x# A4 d: A方法三:
5 ?% `% v) r1 S9 y
6 b9 r8 v' T( ]# m4 V  有一种加密方法是每行单独加密,还原起来比较复杂。看一个加密过的原文:
8 |4 y; l2 p% B) v
$ i! o3 V) E' T1 O: O+ i" X& J<HTML>; W8 B5 ^, ^  r* F" q( P; v
<BODY>
% I* M- O) g1 N" s$ j<SCRIPT LANGUAGE="javascript">) q6 P& P9 r, J/ v. J
function Decode() {
4 l* Y4 a+ M5 \: ^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;}
$ |8 r. P3 Y7 @2 V* H</SCRIPT>4 H3 G1 X/ W6 \9 V, f1 U% |
<SCRIPT LANGUAGE="javascript">, w7 {/ x! w! C) n
function d (enc) {document.write(codeIt(key,enc));}
+ G2 q( \0 [4 e9 mvar 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;}
  `, R1 C+ h: y) {5 M</SCRIPT>, `6 ^; e- S  q) {2 @
<SCRIPT LANGUAGE="javascript">
( t1 M3 k* C2 ]  B# ~Decode();* {4 {: ^1 x  C
</SCRIPT>
5 q+ W/ A5 `1 E4 C. v; n5 d( Z3 j</BODY>) w' |  ^( ~/ q' V' L! [# @* Z) z, ^
</HTML>
4 j, z$ s- V9 s1 c' r* ?% m3 P6 A% T7 |$ |
  还原的时候,也必须每行单独解密,用下面的方法可以看到源代码:4 k8 h) V7 `. o5 o! l1 [9 v4 F
# j3 z8 J0 R+ [- @
<HTML>. S) t% I3 I0 y7 J1 g- }
<BODY>8 D9 [/ j9 ^5 E1 K( y  T( A$ x7 g
<SCRIPT LANGUAGE="javascript">+ n+ L! u8 a+ }0 h
function Decode() {/ y# [$ W) ~# N7 b! k+ I7 d
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;}
- A8 T6 D1 z0 @% ^0 _2 }- J</SCRIPT>
* f& K5 S, w) j1 w<SCRIPT LANGUAGE="javascript">3 N3 C2 n+ A) e0 C- I
function d (enc) {alert(codeIt(key,enc));}  ?) |0 R, P. H1 V0 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;}- m: J* f6 q, s9 p# M* @- \
</SCRIPT>  L5 G6 \" A8 ~
<SCRIPT LANGUAGE="javascript">
$ c- P) d8 {: Y- |+ v; A3 }) n! KDecode();
" i0 B+ s& o  _$ \, [; R</SCRIPT>% M3 y: \1 C& o* G' d- n# o! I
</BODY>! G5 k3 N, p. g/ h/ s# I! }* k
</HTML>
. d8 @: |- ~8 h7 W& E, a
# V; o5 r8 j* n* A' `' Y) b  哈哈!!:=)是不是很精彩!!

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