Board logo

标题: [原创文章] 关于国内某知名大学网站加密算法的研究 [打印本页]

作者: 柔肠寸断    时间: 2009-4-19 21:52     标题: 关于国内某知名大学网站加密算法的研究

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm8 ?8 F& m* |+ ]
原始出处:http://www.3ast.com.cm
$ c+ B1 ?0 M% [- e! s9 X0 x* D0 h! ]- j4 l: u6 x7 N4 [
看不懂的直接绕过
6 @" n" J# v8 G; t9 `6 `  T# g# o加密前为:hwy123456
; t6 W& ^4 o7 k% L. k2 B3 p加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
+ I/ k* R7 d9 B( M
6 h2 `- |2 z# J& j* j% d+ p============================================
7 f9 J6 x& P; }+ {; ?6 t6 d% q) |' F上面是当时自己校内的心情。现在已经解破出来了,分享给大家' |4 l/ ]! j* A" y6 V/ v  q, r
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法7 Z0 _, G: m, k1 Z) Y) G
以下是RSA算法文件
$ r) v3 B( {7 j; G* I/ F% S4 V' x0 `
文件名RSA.ASP* ~1 C8 i) s+ F
===============================================
. e- z8 j3 i! z% [  J<% 9 C" M8 i; a3 q! |1 ^
Class clsRSA " ?1 R. F  s6 r( w' j
Public PrivateKey
$ ?  _1 a3 A1 E. ~1 CPublic PublicKey
, h  a& m" l* ~/ m" B7 vPublic Modulus 9 O/ t+ x) N: n
Public Function Crypt(pLngMessage, pLngKey)
: B/ J3 q* S5 w( }8 xOn Error Resume Next
' x2 ^1 W+ w1 R1 _1 A! X0 NDim lLngMod
' O6 u9 V. F& o/ M5 d! bDim lLngResult ; \! A9 o5 V/ O+ p8 ~
Dim lLngIndex   j' @3 z) m- U
If pLngKey Mod 2 = 0 Then
' d6 a  X$ p" C5 ylLngResult = 1
/ n0 w6 U+ B4 l& H% ~: Z7 H7 f# |For lLngIndex = 1 To pLngKey / 2
0 R5 K% x! _7 q& \- b$ K6 zlLngMod = (pLngMessage ^ 2) Mod Modulus
: H5 b, R4 o: j  U# S' Mod may error on key generation
6 ^3 w7 T" U# t" ?lLngResult = (lLngMod * lLngResult) Mod Modulus ' V1 V% d+ _5 k0 A
If Err Then Exit Function * x% ]5 E6 R' P! @+ e
Next
# q: r; s4 p" ~& s$ W8 w4 sElse
) n, f7 S! y0 b* WlLngResult = pLngMessage , `* }' g& _$ B, L4 a: o& S7 ~
For lLngIndex = 1 To pLngKey / 2 $ x$ V$ U1 c) w% ^
lLngMod = (pLngMessage ^ 2) Mod Modulus
( J1 N1 e3 y' ~; C2 w; NOn Error Resume Next , L' n; T5 f3 u# Q6 B$ ~
' Mod may error on key generation
5 ~4 s: d- m/ I5 \1 glLngResult = (lLngMod * lLngResult) Mod Modulus & @( ~3 s8 Q* K$ }  T
If Err Then Exit Function 1 s, _# L! M! ]+ e6 Q
Next
" d( L/ e; k* o2 tEnd If
3 N1 U) s! ?4 w. H5 g6 o# {Crypt = lLngResult # Y6 R* ^3 |2 D* d" z& y
End Function
# u' R1 i. V2 r, R- E# F6 l# B) h+ @8 `0 w) p, E
Public Function Encode(ByVal pStrMessage)
2 a: c& |0 e  }6 \, IDim lLngIndex ( O1 B0 W" i  p5 f# ~) H7 f
Dim lLngMaxIndex
% d+ I, a! I- r5 m4 C3 iDim lBytAscii 7 c/ m$ V/ K- i/ B# j0 b
Dim lLngEncrypted 3 I1 h' j  i0 n1 X- R7 E
lLngMaxIndex = Len(pStrMessage) # r% B! y' t( c$ v+ A4 H
If lLngMaxIndex = 0 Then Exit Function
) G  d. {$ M- r- e$ UFor lLngIndex = 1 To lLngMaxIndex
& _2 r2 |! `7 D5 m  i# L! mlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 3 J1 c! k( G% _
lLngEncrypted = Crypt(lBytAscii, PublicKey)
- ^+ S( m7 D3 @1 ^* G1 wEncode = Encode & NumberToHex(lLngEncrypted, 4)
8 i7 n( e. z# ]" F$ x6 U& j5 B4 qNext
- n0 L; m+ k( \$ s- y# sEnd Function $ x  W+ x& m- N! \& y- K
Public Function Decode(ByVal pStrMessage) ' }. k( \1 ~/ \  C
Dim lBytAscii
8 v) s8 T( E& C( HDim lLngIndex
0 k' [  |9 @3 U" h* uDim lLngMaxIndex 0 e9 I  ?5 c! Q3 }) k( c! d  H( Z5 f
Dim lLngEncryptedData
& k: Q( }& ^& _( BDecode = "" % C% A; a% k6 y6 Q9 n' }6 @
lLngMaxIndex = Len(pStrMessage) 5 O- V" \8 |/ E4 B7 s! C! j  \/ e, g
For lLngIndex = 1 To lLngMaxIndex Step 4
, {2 [! C$ G0 k6 ^+ ~lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" b5 J1 E% q& Q; q$ K$ MlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 f% x. A( w: b7 H8 C1 I, k1 g
Decode = Decode & Chr(lBytAscii)
* A6 L3 @" A* T: v. N& d- E$ ~Next 6 [3 w, h4 z& Y1 y9 v
End Function 4 M: Q* J' z4 Y% g  L
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ; l8 N9 z2 j) p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ( j- F2 m0 p$ f  t3 Q
End Function
7 S' |3 Y3 b, r0 w% b  TPrivate Function HexToNumber(ByRef pStrHex)
: ~, c: T6 Z. D+ FHexToNumber = CLng("&h" & pStrHex) ! k3 N* t, B3 s7 P
End Function , e# b, I! ]- L7 S
End Class 9 D. w* ~+ B0 U& a2 M3 X
function Encryptstr(Message)
) Z+ l, B, j* N( c* a( [2 oDim LngKeyE " K6 [/ C4 V* K! g$ s
Dim LngKeyD
2 P% m' z- H/ qDim LngKeyN ; v! h9 z) W5 }0 q* y  W
Dim StrMessage : j' T+ Q5 ^# p) Z8 a& ]4 \+ w5 P" q
Dim ObjRSA 6 i0 n0 C& s! p0 x& ^
LngKeyE = "32823"
7 C1 c( Q; j6 c" F& r: RLngKeyD = "20643" 5 `! O0 `0 Z' R
LngKeyN = "29893"
! |: N6 R# R6 s" R; I0 E$ _9 KStrMessage = Message
! B5 r7 C. F1 O: z8 d8 FSet ObjRSA = New clsRSA
: ?+ ?6 J  u0 K! l# ]4 a1 mObjRSA.PublicKey = LngKeyE / D" ^- g, }% c! H
ObjRSA.Modulus = LngKeyN # e# ^& }6 l$ T7 D, Z
Encryptstr = ObjRSA.Encode(StrMessage) ! _& L. B" h9 D( N0 W, [9 h
Set ObjRSA = Nothing ! i+ G5 Q% d& x+ L+ W
end function6 U( @: W( D# b1 H- J+ S1 _
Function Decryptstr(Message) 2 A/ x6 V: I% G/ b0 @% ^
Dim LngKeyE 8 S) O" i4 E, A, C5 y: A) @' h
Dim LngKeyD . y8 w# v9 }: U3 _  a3 S
Dim LngKeyN 4 `5 H# y) B& `+ n; ]. Q! a# {
Dim StrMessage
; [9 w' u8 H# D3 e0 g  d5 xDim ObjRSA
! J" B& p2 Y1 V0 ?: `( |8 `LngKeyE = "32823"
6 ~; _; v. n9 Z2 i( W! u' s7 ILngKeyD = "20643" 3 L! m4 A2 J, |0 J" x, Z3 v
LngKeyN = "29893" , `& H( u( k) T6 A* j  e
StrMessage = Message 2 R" ^+ Z3 m5 a1 @9 x# R
Set ObjRSA = New clsRSA ; n; P* o8 k9 ]' K
ObjRSA.PrivateKey =LngKeyD , O$ [7 Q) y; p' x. {9 {3 j% `8 _; J
ObjRSA.Modulus=LngKeyN
/ Q! B6 P' l* z9 {$ g. |+ Ydecryptstr=ObjRSA.Decode(StrMessage)
- p5 ~2 F0 o" N$ R, c' a2 D9 qSet ObjRSA = Nothing
/ Q4 V4 l1 Z1 i$ `end function , a* N3 `# @5 Y
%>5 t% d5 E; x: Y* z" B8 W) B
===============================================
; L% Z0 U) ]7 {: z. O$ M$ h4 i8 T/ q: N" ]8 X
还有一个用于测试这段代码的test.asp
  a9 k* |. B! u! Q8 a- E- X有兴趣的自己搭建个IIS测试下
0 P% i" p4 h) ]6 d- y) b- J<!--#INCLUDE FILE="RSA.asp"-->
  E5 q& V2 G; v<%2 o4 P! N1 t9 E& ?2 Y9 `
function Encryptstr(Message) 9 q2 w! S; c2 _5 @
Dim LngKeyE " F$ b5 `2 l2 V
Dim LngKeyD
! t. @- D, t2 X2 `$ mDim LngKeyN , y# ^' i$ `2 e6 C0 R/ @0 S  s
Dim StrMessage . Y. I  X4 r: H3 R
Dim ObjRSA
5 U2 z. H5 s5 M& h- v5 D$ nLngKeyE = "32823" / s5 T7 a( U! R( T! {. s9 s
LngKeyD = "20643"
9 {0 V' R" d) \3 _6 tLngKeyN = "29893"
% Y) l5 T- z$ b; ]! N' N/ W, X% K! mStrMessage = Message / a  F: A' H3 I/ g1 F
Set ObjRSA = New clsRSA
; e, l) T& f* M* o4 YObjRSA.PublicKey = LngKeyE : k1 t* y$ M2 ~- `
ObjRSA.Modulus = LngKeyN & G) R9 ~' _+ q8 c( i5 ?
Encryptstr = ObjRSA.Encode(StrMessage)
5 g: F3 W2 F: O. dSet ObjRSA = Nothing
( G. L2 Z2 j5 _3 c+ Wend function
6 v' c: W9 O: U+ H  [4 t/ f1 b0 ufunction decryptstr(Message)
" t1 K5 E! F" R  c: C+ C3 |Dim LngKeyE - X' b3 Y" U4 _/ x  e; n
Dim LngKeyD
1 k/ l+ g" _& j9 n& d6 f9 ?# @Dim LngKeyN
" _) i; X7 K; F( P$ \$ E  wDim StrMessage * U+ e3 L- l1 l/ f
Dim ObjRSA
/ H( y7 c* U6 ~1 f# GLngKeyE = "32823"
2 ~" K. N9 j" W& ^LngKeyD = "20643" 8 x. d1 C- _- i9 H
LngKeyN = "29893" / F; i: k6 ]8 c5 g
StrMessage = Message 6 C( |' Z- N" i; L9 L
Set ObjRSA = New clsRSA
  y/ h) O  }" S9 V# v4 KObjRSA.PrivateKey =LngKeyD + [4 t; E2 K8 n6 B7 W  F( v
ObjRSA.Modulus=LngKeyN
1 d5 l" r; Z. P! R, V& xdecryptstr=ObjRSA.Decode(StrMessage)
$ z* q/ C0 x& d9 |3 U: {( [5 S, V2 OSet ObjRSA = Nothing
* f+ d4 }1 p/ [1 {/ R: `. h" Tend function 3 s! i+ H& X3 T  N
dim last,first
) }2 o* ]/ ?: Z4 |- `0 V; [% {first="!@#$%^&*()"
. U; i0 b- [: ]; G3 qResponse.Write "加密前为:"&first
! d& w, W; C  h/ v/ Zlast=Encryptstr(first)
& k# p1 X- e' HResponse.Write "加密后为"&last ' b* o& ~0 `4 T8 L
Response.Write "解密后为" &decryptstr(last) ' M& u2 T9 o# J% h
%> ==============================================0 T3 _- D/ d8 n5 U; F
剩下的就是字符的对照表了
6 c/ W* ~8 a. @, z* Z===================字符集================
% ?! \- Y* R8 Q! n7 I1_____6EBB
6 S: v5 e% d4 T3 E  U2_____5C1F) s" Z; F  Z, ^- P
3_____4D75
( G' U' y& g( o9 p# B6 T& x) E1 O4_____26CC2 y/ ~1 s3 T/ l: s2 e- H
5_____4F88' N' s/ u# a0 f1 Z4 _; z8 N4 ]$ i
6_____3F4E/ }/ v* Z  c7 x
7_____0A9D0 w5 l' {2 p8 G' H7 O, m
8_____1A1C
* m  M, S4 Y  ~" _9_____6D20
/ x0 y+ m* L. h& h4 r8 T0_____10890 D! h+ `* L) G4 L9 b0 X, I
a_____0F3E$ U6 {  ~* K( l5 v3 ^
b_____3159+ D4 ~& M  B9 d& c) u5 D
c_____3517/ ]" q& T$ z' V! J7 R' S2 x
d_____419C
  |* G% \* S2 {$ Ce_____615C
: t% h7 P! O/ O0 cf_____556F
) y7 A  v+ {: u. wg_____2B7F
8 t" [$ K% N& h: Z" F6 Z% Lh_____0F9C
& w: w8 K1 U5 X8 f. Zi_____00FA1 p+ Y* \/ B4 m$ W
j_____5A50& U% u) I' O9 V4 T6 C% x
k_____28508 S8 d  M  _% _* A; e
l_____3E7B7 r; z7 k4 v  J4 V
m_____71C5! k" [% l2 W3 q. Y8 ?- D1 C
n_____1FC89 Y2 u  j3 y1 K2 J6 h& t
o_____74C1% M  G0 K- s- a6 M$ k! E
p_____5FB80 T# @, `9 K3 \) V0 M/ x/ w! b
q_____60853 f' s' Z( A# F9 ~3 Q/ l
r_____3AC4
1 t" M# Y# a/ T$ \s_____2F504 G* I1 k. V6 Q( e; ]8 i
t_____36F8
' g! F6 `* A% G) U, bu_____7010* {+ a1 b1 X; I2 d4 Y# a
v_____0B42( x. l3 D+ S( X7 \# m' N" i
w_____1C7A
$ ?- ?  H% c# C/ x. I2 B# tx_____16F8$ x9 U- d$ A* H0 E* ]# G; Z
y_____2EE7
+ S$ l" z$ ?  \z_____5CF3
0 T6 f. P. ~4 T7 z3 L5 V!_____6233+ Z( Z4 N  y3 y  W5 l* r
@_____3A45
  i& q- H! ?% n( ^  _0 \#_____2291, u1 K* `1 M: P  Y  Q, `
$_____5D5C. ]8 g# R, d! J; `! }
%_____09B9
- R* A4 J( H2 c" U^_____43EA
' P. l5 n2 Q3 X* r! L: Z  X&_____62B9
, w# [+ |' m+ Y7 B% s) o# [*_____6301
/ z) ^" q( S7 z9 H/ V1 j9 g(_____4659/ ^# y, @$ N/ n4 F- u% D- r
)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com./) Powered by Discuz! 7.2