Board logo

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

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
# l* b+ i, ]+ c原始出处:http://www.3ast.com.cm+ S! F/ e  c$ v0 N. x/ Q" Y/ U

, o( _. N/ v& i4 s" W5 i看不懂的直接绕过7 s& ?0 x. b: k6 l1 R
加密前为:hwy123456
- H$ f* O* r# H5 B加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, z0 P$ I- j) S  Z; ?* g% F& J" c
$ _0 G7 d4 F, C  J0 V: w
============================================3 I; S0 P$ `1 E
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" P( z1 u; o+ k
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
  g5 I$ k  E3 a0 M/ g& b& x以下是RSA算法文件6 ]! \. C( l2 K+ S1 ?* I- P

& D- N3 O1 ]1 e* K' F* K文件名RSA.ASP
) s- e" Z. w1 B% C. V===============================================' ]# w& L4 K# W& U* _
<%
6 c* ?2 ~  z9 v7 w/ ]Class clsRSA
1 b, D$ |' U2 H! Q" T* V( sPublic PrivateKey + l! ?3 i# _. J. ~, i' y7 I
Public PublicKey 9 i! I- l6 A2 b$ n9 J2 _
Public Modulus ) V/ a* A- L4 ^
Public Function Crypt(pLngMessage, pLngKey)
. ?% c0 |! N, g$ x; J; ?. @# ^On Error Resume Next
. g1 _$ ?0 a& \! S+ n; \5 {. wDim lLngMod * r) }' x7 u' P+ ~4 _9 P- Y
Dim lLngResult . h5 k* K  a$ C( D1 K1 B0 f2 o
Dim lLngIndex
, ^8 v5 h3 K3 O6 k/ @If pLngKey Mod 2 = 0 Then
+ B/ ^# D1 P4 f) XlLngResult = 1   K0 s5 U6 V- L* I4 Q
For lLngIndex = 1 To pLngKey / 2
" y9 b: F* d, c1 c4 M0 _% @lLngMod = (pLngMessage ^ 2) Mod Modulus
/ Z9 z: a4 D+ [6 H' Mod may error on key generation 2 u5 f; L! O+ {
lLngResult = (lLngMod * lLngResult) Mod Modulus / K" o8 [1 M0 \, W9 \5 C2 |
If Err Then Exit Function
$ f& i9 F# ^& [4 z( H7 h: ZNext 5 [0 z1 g% q$ a1 q1 d& K
Else ( y; x" Y& u) y# z$ U; k6 B+ Q
lLngResult = pLngMessage
) U2 e3 f9 F" Q  U/ |" q0 l7 CFor lLngIndex = 1 To pLngKey / 2 ' e7 [3 i9 e% Y9 i
lLngMod = (pLngMessage ^ 2) Mod Modulus
: J: K' O" |5 c$ V" }On Error Resume Next
- }  s6 I2 [" b  v% d$ a' Mod may error on key generation ; ~/ u* _+ N9 P; I  o7 C* ^
lLngResult = (lLngMod * lLngResult) Mod Modulus
5 n: p8 j5 j; l! ~% y  @* YIf Err Then Exit Function
" _1 J, @9 ^9 RNext ) S7 _. _" v! C+ L+ P4 `
End If * b' w6 [% o! g
Crypt = lLngResult
5 h" U  B9 ]; J& W7 d' `2 ]8 BEnd Function
0 `7 O4 S7 H/ L6 L' M. G0 w) X/ x
  r0 F2 l- V4 x& J( l$ E$ ]  VPublic Function Encode(ByVal pStrMessage)
  p) n3 f6 _6 j* j. k) p, u+ D" X; `Dim lLngIndex ; K7 z: m% n9 h9 s1 b7 Q
Dim lLngMaxIndex ) B5 X4 n0 p- ~! F" q  g
Dim lBytAscii
+ p: e9 F$ c) g4 N' Y( ?Dim lLngEncrypted % w: p! _6 q6 T5 F' C
lLngMaxIndex = Len(pStrMessage)
/ a7 z1 m) y  e7 JIf lLngMaxIndex = 0 Then Exit Function ; x) G+ x& n9 g+ X" v0 _
For lLngIndex = 1 To lLngMaxIndex 1 x4 [  X! f6 N. f
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
- A! T- I* N/ g2 y: P: B: mlLngEncrypted = Crypt(lBytAscii, PublicKey)
- j  z0 u  l$ P4 @; hEncode = Encode & NumberToHex(lLngEncrypted, 4)
( G- @/ m7 H' W# s& R& sNext
: G- q7 N# t. D! i) nEnd Function , L. h; c6 U+ R
Public Function Decode(ByVal pStrMessage)
$ |8 P' t) L$ H6 Q# K& nDim lBytAscii
% G+ K* j7 f! Y; Z" |# yDim lLngIndex
: J/ [$ m  Y4 T& F% R. I" CDim lLngMaxIndex & i9 P1 ?8 b  N, R/ D
Dim lLngEncryptedData
9 {3 a: p+ _. e7 S, H7 `Decode = ""
  j4 I: \2 `& A5 [- nlLngMaxIndex = Len(pStrMessage) 0 H5 N* m4 I5 q. B
For lLngIndex = 1 To lLngMaxIndex Step 4
7 q6 O! i  c- DlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
$ {. p( k; e4 P7 J. qlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 }3 U3 g9 H, S, A+ \Decode = Decode & Chr(lBytAscii)
2 E5 `/ f9 \/ ?2 S. ANext
3 F5 i& a% c% d. c7 ^6 f" e7 {) QEnd Function ! F' S9 n- L9 q; u% y
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ' j' P3 U7 p9 M( b; G
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 9 ^4 O, K! v2 k8 Z
End Function ! w6 C5 u7 h7 L) Q" V4 ]0 `+ P
Private Function HexToNumber(ByRef pStrHex) ; n' p9 h0 R4 Q
HexToNumber = CLng("&h" & pStrHex) . N/ u8 J5 [- g0 ^- @9 ?4 B3 T% [7 ?1 M
End Function & w1 X) |5 `: B  l/ F" {7 }
End Class
* B: f" f$ }( |7 L' ?) ^. Y- ~function Encryptstr(Message)
5 s$ W' j: q( Y  qDim LngKeyE # W; ?  y1 g7 N) D! F
Dim LngKeyD
: K* z, d  d/ d1 ^2 NDim LngKeyN 4 L3 e, p7 Q7 T, l1 H! M4 I/ D$ B
Dim StrMessage
. e' Y: J/ Y4 h3 \; d4 ^Dim ObjRSA
% q' N+ x1 }4 E0 n2 B$ a. aLngKeyE = "32823" ! }$ v. F- `( i9 o% K" k
LngKeyD = "20643" 2 q* M7 [4 a8 H! ?7 x7 u& S7 b
LngKeyN = "29893"
# c2 O6 B; r; g8 dStrMessage = Message - x( v$ o! V( K2 l+ \6 `- Q
Set ObjRSA = New clsRSA " {2 l5 J- D  p! n; ?7 r% V' s
ObjRSA.PublicKey = LngKeyE
6 L. i5 H" i+ @% G! l$ nObjRSA.Modulus = LngKeyN # N0 U6 U8 U3 w- k
Encryptstr = ObjRSA.Encode(StrMessage) 9 }. [4 S2 d- a7 E
Set ObjRSA = Nothing   q. k2 W1 V1 A0 j7 ], s2 L
end function
* @# B1 {8 z2 x* L( H# b& x" ~: o2 _4 ^Function Decryptstr(Message)
! b6 u8 K0 v1 A5 \( DDim LngKeyE 4 y/ p) \4 M* ~# D6 J) s- R+ P, U4 f
Dim LngKeyD
4 j8 |. J5 f; N; h; eDim LngKeyN
, ?+ T" K8 C/ ?  P7 v  V, {Dim StrMessage
$ m3 E& s$ n* a- k6 yDim ObjRSA   b+ T# g. {0 w0 y4 R
LngKeyE = "32823"
% \/ t3 Q6 c' @LngKeyD = "20643" 7 V) R7 S: s- |& K  F; N
LngKeyN = "29893"
  h  W/ F  u! J' N0 O# _& n  [StrMessage = Message
. b) [2 L9 d' S; h0 z  {# Q9 ISet ObjRSA = New clsRSA
9 K8 c$ f8 y7 ~; v" iObjRSA.PrivateKey =LngKeyD / e4 u" m+ _0 d  g) r
ObjRSA.Modulus=LngKeyN
; {( N4 u- I# T" i3 a9 [! ]decryptstr=ObjRSA.Decode(StrMessage) # g" j& v- t: n1 [: p+ p. Z) B
Set ObjRSA = Nothing 6 Y$ K4 h! e0 i
end function 8 g  B, J. Z+ I: ]
%># n* i% t8 T2 z! c: e1 L% n
===============================================
' ]8 y4 _/ Q1 I* m/ d5 ]
  B! I* t( `2 T% V/ q+ h# p! e. W还有一个用于测试这段代码的test.asp% }7 d- w0 d) Y7 q  Q& W1 [7 V) m
有兴趣的自己搭建个IIS测试下
1 B# W# B1 b, E  m9 g' Y<!--#INCLUDE FILE="RSA.asp"--> 3 @* Q  i2 d' i& S, D
<%
) }; R' P! @2 s6 Z. x; b; ?2 afunction Encryptstr(Message) 5 U5 y" Z8 c# }/ O6 b! f
Dim LngKeyE
5 Z9 X% j5 k* ]/ r" d3 VDim LngKeyD 4 w* A- `- O, S) D
Dim LngKeyN % I2 B& R# ]. K# U
Dim StrMessage 1 N' J) }+ c% M/ t
Dim ObjRSA   o1 k, s: m3 v, ^: O$ I
LngKeyE = "32823" 8 W0 O3 w  _8 z9 E+ \8 ~$ E
LngKeyD = "20643"
( X* I. h, A( l8 jLngKeyN = "29893" 5 I& r: ?1 b* I4 e
StrMessage = Message $ z) ?5 O& U* A% q/ \& ]- F
Set ObjRSA = New clsRSA
7 ~4 V  E8 y% i" y( lObjRSA.PublicKey = LngKeyE
& M' ]+ Q0 [2 y$ u* `" w% P. vObjRSA.Modulus = LngKeyN
# Y: X, y* p6 I. i% \Encryptstr = ObjRSA.Encode(StrMessage) - z( H" O  T( p0 j
Set ObjRSA = Nothing ( l5 i. u% z  p+ j
end function 0 F: X& R2 W  L$ D( b2 y
function decryptstr(Message) 0 C; e# Z( }! s9 R' c
Dim LngKeyE
3 ~1 D  n% G$ ?4 k4 _2 Z" oDim LngKeyD
( D7 n/ c) e% @4 f5 r) sDim LngKeyN 0 F6 x, Q( X1 ]9 U0 `3 v, B2 X7 T2 W2 h
Dim StrMessage 7 f5 g- @9 }+ ^5 ?- \% H
Dim ObjRSA
& O8 w$ E" S* X; ^LngKeyE = "32823"
, R. C- y/ ~5 r9 Q. n/ v" m0 tLngKeyD = "20643"
* U1 F3 i2 e  G, B) b5 V; f; h+ ~% FLngKeyN = "29893" 7 X* S/ V3 g; c, N; Z$ w
StrMessage = Message 3 w, ]- X' ]7 @, \# l) I  C  \! {
Set ObjRSA = New clsRSA
" M# h" z8 X4 `+ o2 A9 LObjRSA.PrivateKey =LngKeyD ' d, a. B6 a+ P  m1 p" p  E
ObjRSA.Modulus=LngKeyN 9 o1 [- @0 a: O/ S/ d' r& Q6 V
decryptstr=ObjRSA.Decode(StrMessage) 6 ^5 g3 g+ V/ s9 g% g
Set ObjRSA = Nothing ; I5 D6 t/ m" y9 f: d, d
end function
: T' T" |; J0 r9 Ndim last,first 9 m$ U! C4 w( u: T5 r) j+ W
first="!@#$%^&*()" + r! _0 u/ C7 `
Response.Write "加密前为:"&first ( ^" S! b+ s7 x; Y! }
last=Encryptstr(first)
# ^- g- t$ E+ d7 |/ hResponse.Write "加密后为"&last
# L0 G+ h! k0 T- }5 K( UResponse.Write "解密后为" &decryptstr(last) , y$ z: m+ z! U3 j% i
%> ==============================================" P# H8 f: k1 ^1 i* y5 \
剩下的就是字符的对照表了
; d: ?0 b* X: H9 u9 I$ u) I===================字符集================* g$ H8 [! w2 s% Y* B
1_____6EBB/ n9 `, n4 p+ @7 E$ ]$ w4 }
2_____5C1F+ T0 ]- B" W- N! m- X
3_____4D752 n$ U2 y1 N* C
4_____26CC
1 Z- I5 |% x, |: s+ {% D  Q5 `5 p5_____4F88. r  E, f$ k; r, _% Q
6_____3F4E0 W. q+ M; W" @( Z& s$ o1 G; i. z2 j
7_____0A9D- e* L0 Z. k3 k' D: R
8_____1A1C% X9 p% z) E1 Z, a5 ~* s" z0 s
9_____6D20: h% N3 }5 ]& q4 z/ c
0_____1089
- |/ i, k  ^5 z# ua_____0F3E
0 d- I3 a4 \9 Y4 i; o) I. X+ Pb_____3159
- B2 c1 p2 t; ?  w; U3 s5 _" y" Yc_____3517& m0 P: ]) k$ L( ?. A: j# b
d_____419C# x) y, |" h: T( M
e_____615C1 M, R1 T6 O' Q7 Z
f_____556F: Q# v( ^* \0 n: E; g" b) B) [9 u
g_____2B7F, Y# W4 _( }# U0 V8 _/ p
h_____0F9C
# N' w5 G& y. j6 v) [* S) l$ |, yi_____00FA
0 a: |* j, `+ K5 fj_____5A50
* S& u) `2 N# m2 O4 Z0 _k_____2850
, T# W# v  {/ t; d8 L* V) ]l_____3E7B; Z5 j$ S( T- A; C; Z: X
m_____71C5
, c" `7 d$ N8 M0 Hn_____1FC8
# T: r5 k6 s6 J; J4 i! C, n. Co_____74C1: q! p( h4 g. f7 T; u
p_____5FB8
/ A; V+ C; Y8 Y; R0 k. pq_____6085
1 N, t  j+ d( \) |9 Pr_____3AC4
6 k7 P6 [  S9 T2 g4 Ws_____2F50! g/ `7 Y- c2 {$ y1 {6 K2 e5 K/ a
t_____36F8
1 l/ x5 }$ [- b; L6 D7 u6 Fu_____7010& t1 X: ]4 a+ N' X4 W- R# ^* ?
v_____0B427 @1 H+ _, Y; B. }5 k, N
w_____1C7A* ~3 J9 `0 `" X! L
x_____16F8
" ^1 K% a1 I( m3 x( My_____2EE7! M) D3 P% L/ L1 R
z_____5CF3
8 w6 l; E% p' h2 I6 Y  D!_____6233
/ ^4 K) `6 u  @6 B@_____3A45+ u0 M# Q. m9 o, u
#_____22915 s' z. E& K) v
$_____5D5C
+ f9 o: w6 A' N! c- Q. E& N%_____09B9
. Y" k+ s7 E0 x2 C7 B^_____43EA
; E/ @  h+ W1 |, }&_____62B97 i, e7 C, _' Q) {% {( l& H/ @
*_____63014 q3 n) f0 o( M7 Y0 [- x  b6 X
(_____4659
2 S0 y2 ~% Z( W5 k- Q)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




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