标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
2009-4-19 21:52
标题:
关于国内某知名大学网站加密算法的研究
原创作者:柔肠寸断 [3.A.S.T]
http://www.3ast.com.cm
8 ?8 F& m* |+ ]
原始出处:
http://www.3ast.com.cm
$ c+ B1 ?0 M% [- e! s9 X0 x* D
0 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 C
Public PublicKey
, h a& m" l* ~/ m" B7 v
Public Modulus
9 O/ t+ x) N: n
Public Function Crypt(pLngMessage, pLngKey)
: B/ J3 q* S5 w( }8 x
On Error Resume Next
' x2 ^1 W+ w1 R1 _1 A! X0 N
Dim lLngMod
' O6 u9 V. F& o/ M5 d! b
Dim lLngResult
; \! A9 o5 V/ O+ p8 ~
Dim lLngIndex
j' @3 z) m- U
If pLngKey Mod 2 = 0 Then
' d6 a X$ p" C5 y
lLngResult = 1
/ n0 w6 U+ B4 l& H% ~: Z7 H7 f# |
For lLngIndex = 1 To pLngKey / 2
0 R5 K% x! _7 q& \- b$ K6 z
lLngMod = (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 s
Else
) n, f7 S! y0 b* W
lLngResult = 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; N
On Error Resume Next
, L' n; T5 f3 u# Q6 B$ ~
' Mod may error on key generation
5 ~4 s: d- m/ I5 \1 g
lLngResult = (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 t
End 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# F
6 l# B) h+ @8 `0 w) p, E
Public Function Encode(ByVal pStrMessage)
2 a: c& |0 e }6 \, I
Dim lLngIndex
( O1 B0 W" i p5 f# ~) H7 f
Dim lLngMaxIndex
% d+ I, a! I- r5 m4 C3 i
Dim 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$ U
For lLngIndex = 1 To lLngMaxIndex
& _2 r2 |! `7 D5 m i# L! m
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
3 J1 c! k( G% _
lLngEncrypted = Crypt(lBytAscii, PublicKey)
- ^+ S( m7 D3 @1 ^* G1 w
Encode = Encode & NumberToHex(lLngEncrypted, 4)
8 i7 n( e. z# ]" F$ x6 U& j5 B4 q
Next
- n0 L; m+ k( \$ s- y# s
End Function
$ x W+ x& m- N! \& y- K
Public Function Decode(ByVal pStrMessage)
' }. k( \1 ~/ \ C
Dim lBytAscii
8 v) s8 T( E& C( H
Dim lLngIndex
0 k' [ |9 @3 U" h* u
Dim lLngMaxIndex
0 e9 I ?5 c! Q3 }) k( c! d H( Z5 f
Dim lLngEncryptedData
& k: Q( }& ^& _( B
Decode = ""
% 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$ M
lBytAscii = 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 T
Private Function HexToNumber(ByRef pStrHex)
: ~, c: T6 Z. D+ F
HexToNumber = 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 o
Dim LngKeyE
" K6 [/ C4 V* K! g$ s
Dim LngKeyD
2 P% m' z- H/ q
Dim 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: R
LngKeyD = "20643"
5 `! O0 `0 Z' R
LngKeyN = "29893"
! |: N6 R# R6 s" R; I0 E$ _9 K
StrMessage = Message
! B5 r7 C. F1 O: z8 d8 F
Set ObjRSA = New clsRSA
: ?+ ?6 J u0 K! l# ]4 a1 m
ObjRSA.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 function
6 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 x
Dim ObjRSA
! J" B& p2 Y1 V0 ?: `( |8 `
LngKeyE = "32823"
6 ~; _; v. n9 Z2 i( W! u' s7 I
LngKeyD = "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. |+ Y
decryptstr=ObjRSA.Decode(StrMessage)
- p5 ~2 F0 o" N$ R, c' a2 D9 q
Set 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 `$ m
Dim 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$ n
LngKeyE = "32823"
/ s5 T7 a( U! R( T! {. s9 s
LngKeyD = "20643"
9 {0 V' R" d) \3 _6 t
LngKeyN = "29893"
% Y) l5 T- z$ b; ]! N' N/ W, X% K! m
StrMessage = Message
/ a F: A' H3 I/ g1 F
Set ObjRSA = New clsRSA
; e, l) T& f* M* o4 Y
ObjRSA.PublicKey = LngKeyE
: k1 t* y$ M2 ~- `
ObjRSA.Modulus = LngKeyN
& G) R9 ~' _+ q8 c( i5 ?
Encryptstr = ObjRSA.Encode(StrMessage)
5 g: F3 W2 F: O. d
Set ObjRSA = Nothing
( G. L2 Z2 j5 _3 c+ W
end function
6 v' c: W9 O: U+ H [4 t/ f1 b0 u
function 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 w
Dim StrMessage
* U+ e3 L- l1 l/ f
Dim ObjRSA
/ H( y7 c* U6 ~1 f# G
LngKeyE = "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 K
ObjRSA.PrivateKey =LngKeyD
+ [4 t; E2 K8 n6 B7 W F( v
ObjRSA.Modulus=LngKeyN
1 d5 l" r; Z. P! R, V& x
decryptstr=ObjRSA.Decode(StrMessage)
$ z* q/ C0 x& d9 |3 U: {( [5 S, V2 O
Set ObjRSA = Nothing
* f+ d4 }1 p/ [1 {/ R: `. h" T
end function
3 s! i+ H& X3 T N
dim last,first
) }2 o* ]/ ?: Z4 |- `0 V; [% {
first="!@#$%^&*()"
. U; i0 b- [: ]; G3 q
Response.Write "加密前为:"&first
! d& w, W; C h/ v/ Z
last=Encryptstr(first)
& k# p1 X- e' H
Response.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 I
1_____6EBB
6 S: v5 e% d4 T3 E U
2_____5C1F
) s" Z; F Z, ^- P
3_____4D75
( G' U' y& g( o9 p# B6 T& x) E1 O
4_____26CC
2 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_____0A9D
0 w5 l' {2 p8 G' H7 O, m
8_____1A1C
* m M, S4 Y ~" _
9_____6D20
/ x0 y+ m* L. h& h4 r8 T
0_____1089
0 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 {$ C
e_____615C
: t% h7 P! O/ O0 c
f_____556F
) y7 A v+ {: u. w
g_____2B7F
8 t" [$ K% N& h: Z" F6 Z% L
h_____0F9C
& w: w8 K1 U5 X8 f. Z
i_____00FA
1 p+ Y* \/ B4 m$ W
j_____5A50
& U% u) I' O9 V4 T6 C% x
k_____2850
8 S8 d M _% _* A; e
l_____3E7B
7 r; z7 k4 v J4 V
m_____71C5
! k" [% l2 W3 q. Y8 ?- D1 C
n_____1FC8
9 Y2 u j3 y1 K2 J6 h& t
o_____74C1
% M G0 K- s- a6 M$ k! E
p_____5FB8
0 T# @, `9 K3 \) V0 M/ x/ w! b
q_____6085
3 f' s' Z( A# F9 ~3 Q/ l
r_____3AC4
1 t" M# Y# a/ T$ \
s_____2F50
4 G* I1 k. V6 Q( e; ]8 i
t_____36F8
' g! F6 `* A% G) U, b
u_____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# t
x_____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