标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
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( s
Public 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 {. w
Dim 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) X
lLngResult = 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: Z
Next
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 C
For 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 @* Y
If Err Then Exit Function
" _1 J, @9 ^9 R
Next
) S7 _. _" v! C+ L+ P4 `
End If
* b' w6 [% o! g
Crypt = lLngResult
5 h" U B9 ]; J& W7 d' `2 ]8 B
End Function
0 `7 O4 S7 H/ L6 L' M. G0 w) X/ x
r0 F2 l- V4 x& J( l$ E$ ] V
Public 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 J
If 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: m
lLngEncrypted = Crypt(lBytAscii, PublicKey)
- j z0 u l$ P4 @; h
Encode = Encode & NumberToHex(lLngEncrypted, 4)
( G- @/ m7 H' W# s& R& s
Next
: G- q7 N# t. D! i) n
End Function
, L. h; c6 U+ R
Public Function Decode(ByVal pStrMessage)
$ |8 P' t) L$ H6 Q# K& n
Dim lBytAscii
% G+ K* j7 f! Y; Z" |# y
Dim lLngIndex
: J/ [$ m Y4 T& F% R. I" C
Dim lLngMaxIndex
& i9 P1 ?8 b N, R/ D
Dim lLngEncryptedData
9 {3 a: p+ _. e7 S, H7 `
Decode = ""
j4 I: \2 `& A5 [- n
lLngMaxIndex = Len(pStrMessage)
0 H5 N* m4 I5 q. B
For lLngIndex = 1 To lLngMaxIndex Step 4
7 q6 O! i c- D
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
$ {. p( k; e4 P7 J. q
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 }3 U3 g9 H, S, A+ \
Decode = Decode & Chr(lBytAscii)
2 E5 `/ f9 \/ ?2 S. A
Next
3 F5 i& a% c% d. c7 ^6 f" e7 {) Q
End 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 q
Dim LngKeyE
# W; ? y1 g7 N) D! F
Dim LngKeyD
: K* z, d d/ d1 ^2 N
Dim 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. a
LngKeyE = "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 d
StrMessage = 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$ n
ObjRSA.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 \( D
Dim LngKeyE
4 y/ p) \4 M* ~# D6 J) s- R+ P, U4 f
Dim LngKeyD
4 j8 |. J5 f; N; h; e
Dim LngKeyN
, ?+ T" K8 C/ ? P7 v V, {
Dim StrMessage
$ m3 E& s$ n* a- k6 y
Dim 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 I
Set ObjRSA = New clsRSA
9 K8 c$ f8 y7 ~; v" i
ObjRSA.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 a
function Encryptstr(Message)
5 U5 y" Z8 c# }/ O6 b! f
Dim LngKeyE
5 Z9 X% j5 k* ]/ r" d3 V
Dim 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 j
LngKeyN = "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( l
ObjRSA.PublicKey = LngKeyE
& M' ]+ Q0 [2 y$ u* `" w% P. v
ObjRSA.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" o
Dim LngKeyD
( D7 n/ c) e% @4 f5 r) s
Dim 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 t
LngKeyD = "20643"
* U1 F3 i2 e G, B) b5 V; f; h+ ~% F
LngKeyN = "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 L
ObjRSA.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 N
dim 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 |/ h
Response.Write "加密后为"&last
# L0 G+ h! k0 T- }5 K( U
Response.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_____4D75
2 n$ U2 y1 N* C
4_____26CC
1 Z- I5 |% x, |: s+ {% D Q5 `5 p
5_____4F88
. r E, f$ k; r, _% Q
6_____3F4E
0 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# u
a_____0F3E
0 d- I3 a4 \9 Y4 i; o) I. X+ P
b_____3159
- B2 c1 p2 t; ? w; U3 s5 _" y" Y
c_____3517
& m0 P: ]) k$ L( ?. A: j# b
d_____419C
# x) y, |" h: T( M
e_____615C
1 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$ |, y
i_____00FA
0 a: |* j, `+ K5 f
j_____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 H
n_____1FC8
# T: r5 k6 s6 J; J4 i! C, n. C
o_____74C1
: q! p( h4 g. f7 T; u
p_____5FB8
/ A; V+ C; Y8 Y; R0 k. p
q_____6085
1 N, t j+ d( \) |9 P
r_____3AC4
6 k7 P6 [ S9 T2 g4 W
s_____2F50
! g/ `7 Y- c2 {$ y1 {6 K2 e5 K/ a
t_____36F8
1 l/ x5 }$ [- b; L6 D7 u6 F
u_____7010
& t1 X: ]4 a+ N' X4 W- R# ^* ?
v_____0B42
7 @1 H+ _, Y; B. }5 k, N
w_____1C7A
* ~3 J9 `0 `" X! L
x_____16F8
" ^1 K% a1 I( m3 x( M
y_____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
#_____2291
5 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 |, }
&_____62B9
7 i, e7 C, _' Q) {% {( l& H/ @
*_____6301
4 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