标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
2009-4-19 21:52
标题:
关于国内某知名大学网站加密算法的研究
原创作者:柔肠寸断 [3.A.S.T]
http://www.3ast.com.cm
; f! B4 G( {1 k2 j+ H; w9 P- `) s
原始出处:
http://www.3ast.com.cm
) `6 i/ N/ ~/ p3 J
; h) ]& e3 _# ]( ?
看不懂的直接绕过
6 L9 n# V" ^* w2 f
加密前为:hwy123456
8 X5 b# x; U b: A- c9 m% `: ]
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
" e3 C# z3 t5 ^0 I; {
3 F# C: ~7 Q2 O- n
============================================
+ _9 Z/ n7 W4 F2 j- Z$ s# H
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
; w( o. m' K% h% J4 w
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
9 L) ]" Z& G% E
以下是RSA算法文件
+ L* H% C- X* v( X/ X
; T9 H, ]9 Y! S K
文件名RSA.ASP
* q, H5 }* Y& Y* D$ D
===============================================
1 P) y* @6 N# v/ S- [, ~) M8 L
<%
! ^6 u$ J1 k* N0 G! P- S
Class clsRSA
4 G0 j+ j2 m% |1 W/ o4 U2 H
Public PrivateKey
8 ]8 }$ y/ ?5 x- c! \7 Z( F
Public PublicKey
+ w9 M" m9 [0 I" o$ U! z
Public Modulus
2 w; q$ i) L- ?
Public Function Crypt(pLngMessage, pLngKey)
6 X6 M8 T+ b. ?& b0 F
On Error Resume Next
5 A6 {# h4 ]8 v: W: }( M6 x
Dim lLngMod
- b' p8 l! r0 Q* g. L2 _* G5 a
Dim lLngResult
7 B/ g. ~3 E. ]- N% H7 M2 j0 {* C
Dim lLngIndex
( X4 {& x7 n9 `6 |* j
If pLngKey Mod 2 = 0 Then
" F) H8 j9 H0 l: w3 q. b/ K
lLngResult = 1
& H( d. |% x; E$ I8 H
For lLngIndex = 1 To pLngKey / 2
1 D: l# C9 @! {/ r% x/ {& M
lLngMod = (pLngMessage ^ 2) Mod Modulus
3 y6 W+ z6 {/ T
' Mod may error on key generation
3 y; k' g7 }- \4 H& M9 Y7 P! c' m
lLngResult = (lLngMod * lLngResult) Mod Modulus
2 D# r# x3 h ]0 R& v& I
If Err Then Exit Function
& m& }6 a+ v% t: R/ S! D8 L
Next
) @. ?+ U; t7 ~* G
Else
: \& x0 }7 v1 v8 I0 U( A/ d
lLngResult = pLngMessage
2 R& |+ x% ~- I$ c
For lLngIndex = 1 To pLngKey / 2
* A L S4 }; `2 H" n+ o+ Y6 c* H( g! K
lLngMod = (pLngMessage ^ 2) Mod Modulus
' d/ Z, W" w: W1 b
On Error Resume Next
8 p+ x# \$ p% K8 w$ m
' Mod may error on key generation
4 W' c, ^4 I2 u1 d9 {4 @4 x$ l8 ~
lLngResult = (lLngMod * lLngResult) Mod Modulus
, H' I) @% C ]% a! H
If Err Then Exit Function
- ?) M6 z8 {7 g$ l
Next
3 ]" k" c7 |. M4 E5 r1 ~3 [
End If
) Y! {6 r s8 O% \( Y _2 N d, d
Crypt = lLngResult
5 H# B2 |; d! @5 ~
End Function
$ ?% Y/ A& k# ?2 @, g O
; o0 e/ G) }4 s6 c; {
Public Function Encode(ByVal pStrMessage)
F6 u- {: }- Y
Dim lLngIndex
7 t: B+ y O+ ]- j8 L( ~1 L
Dim lLngMaxIndex
9 q% N2 n" h1 E' w& P9 k, z
Dim lBytAscii
) z+ ^0 r* A7 D/ s! L, Z
Dim lLngEncrypted
& E2 a4 ~+ x0 P0 o. I. G
lLngMaxIndex = Len(pStrMessage)
4 ~/ `/ ^# \5 |# s" q$ i
If lLngMaxIndex = 0 Then Exit Function
* J# J' d1 d0 k X: M5 R- S
For lLngIndex = 1 To lLngMaxIndex
+ U' N* \* A/ D! K/ g# n
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) n) g/ O5 k% r5 G7 Y. ~2 q
lLngEncrypted = Crypt(lBytAscii, PublicKey)
" W% `2 N: U* G6 y" S
Encode = Encode & NumberToHex(lLngEncrypted, 4)
4 R' R/ ?/ D+ D
Next
) K2 ~4 |2 Y, G) G
End Function
8 r7 Z# D7 ~* b7 N
Public Function Decode(ByVal pStrMessage)
! r ?! S+ @& X+ F0 x
Dim lBytAscii
7 G; i0 p9 c& |/ c
Dim lLngIndex
* L& |1 x) `% k$ H- v1 S
Dim lLngMaxIndex
! n3 ~/ r& v; F- i
Dim lLngEncryptedData
0 d P( ^" Y4 ?9 k" R9 s
Decode = ""
V+ V5 D& w8 P/ U: ?' a9 i
lLngMaxIndex = Len(pStrMessage)
+ d7 ~( c; X) \& o/ _
For lLngIndex = 1 To lLngMaxIndex Step 4
( w' _5 |6 d9 K$ z
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
5 Z2 b k6 E* j9 k& a& [7 R: Q: T
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
% A8 a& ?7 c) m8 u! e. C+ w* n
Decode = Decode & Chr(lBytAscii)
4 Z, c/ W. Y) \1 W7 H- c8 h2 Z
Next
; a0 n8 @" L W( @/ ?
End Function
( h* c. @% p: P- z: R; |/ l* s
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
2 Q) a4 P; n. z. F2 ^8 _
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& @; E# B- M9 ]- i/ o* a
End Function
+ j5 t# h( F4 y
Private Function HexToNumber(ByRef pStrHex)
( j7 W' w/ R$ w' V5 v
HexToNumber = CLng("&h" & pStrHex)
+ P. ]% J0 f# ^9 B
End Function
/ C' E+ R2 H9 X) P9 ~* b& e _7 Y
End Class
# o M. d9 `1 M7 I
function Encryptstr(Message)
# f, z6 D. d9 n4 ]5 D' [2 c1 p
Dim LngKeyE
8 L" |" U: }7 t. M8 R, A- R$ g
Dim LngKeyD
% e( p$ P, B( ?8 g S* e+ d
Dim LngKeyN
$ x) v7 ]9 X5 Z5 R6 j- q4 n% r
Dim StrMessage
# _4 D8 g8 d% _9 j
Dim ObjRSA
2 k$ r: v; y1 S0 n8 T+ \
LngKeyE = "32823"
, K7 B! n% o) X
LngKeyD = "20643"
9 e, r3 R9 J1 j; @" j2 B8 I
LngKeyN = "29893"
e0 h7 x' n, Z5 ]/ I
StrMessage = Message
4 ^/ D* Q( N r0 Q: l% t
Set ObjRSA = New clsRSA
% }$ r. t2 U" x( L8 E
ObjRSA.PublicKey = LngKeyE
7 E9 f& u( F8 G; `! t) \5 g% [+ W5 I
ObjRSA.Modulus = LngKeyN
0 i% `; [+ i4 f5 @, y
Encryptstr = ObjRSA.Encode(StrMessage)
+ v' t# _' a8 {! R) f# i
Set ObjRSA = Nothing
) Z7 I/ M2 m4 _* d/ [ I& O8 _9 P0 B
end function
* t9 l, ` M3 J$ D" T
Function Decryptstr(Message)
# s% m8 ]2 [( B5 F
Dim LngKeyE
4 o# h3 v$ ?& q; V8 C. P( H
Dim LngKeyD
6 ?! I, D* x! ?* W& G
Dim LngKeyN
- ]3 _6 p/ k3 u" {5 D/ Y: z7 e
Dim StrMessage
% ~! r6 `6 p M; c+ i" B
Dim ObjRSA
$ |3 {0 Z3 a" G- r
LngKeyE = "32823"
* O1 P/ Q% E( o* q- [: Q$ {
LngKeyD = "20643"
' _ K! t4 g) W7 O' N
LngKeyN = "29893"
4 o# d7 d) @2 c0 d
StrMessage = Message
1 J- l. f. K; ~! W: h
Set ObjRSA = New clsRSA
4 p: t, s" D1 ? t. A. {4 _" H; C" ~
ObjRSA.PrivateKey =LngKeyD
" g6 e5 `) S; y$ J% k6 l. n
ObjRSA.Modulus=LngKeyN
& r! j3 N5 a" ?. y
decryptstr=ObjRSA.Decode(StrMessage)
: N1 P* I6 ]/ u- T
Set ObjRSA = Nothing
H6 M _- w# @/ i( D
end function
: h) j* i% Q* T% q/ I
%>
$ e4 Y' |) e3 g* A" M$ _( B5 r% O
===============================================
8 P8 I: h* g* B* q" q
. |6 F8 L' a9 q% @* ]
还有一个用于测试这段代码的test.asp
% o3 @; Z1 I, G) j* z r, n
有兴趣的自己搭建个IIS测试下
' j3 d( U" e0 @. _/ N( ?" f1 C
<!--#INCLUDE FILE="RSA.asp"-->
. A2 P1 X! B! x# l& b9 N
<%
- ?. f! w n& i' G& c. |' [
function Encryptstr(Message)
1 I C5 N) S, u
Dim LngKeyE
; G7 D- I; N, @6 a2 s4 C
Dim LngKeyD
. K+ M( l+ p( s6 p/ W3 c7 L
Dim LngKeyN
, V1 g6 O8 m3 n; ?
Dim StrMessage
# X3 h) j( |$ z# F, y
Dim ObjRSA
+ i3 g4 V2 Z. R/ A
LngKeyE = "32823"
! o5 |7 ], U! |( u8 a
LngKeyD = "20643"
) b) o2 s" p' T4 J8 ]
LngKeyN = "29893"
5 R* Z0 w- v ?/ ?
StrMessage = Message
8 k) g: j$ _! B p# o3 d; ~/ R
Set ObjRSA = New clsRSA
: N% `. W% J9 a9 K- S4 T9 N
ObjRSA.PublicKey = LngKeyE
, d! j) z' X4 ^* D8 M6 j+ j6 r
ObjRSA.Modulus = LngKeyN
/ g) y0 P/ \7 Q* H# D' B. ~; K
Encryptstr = ObjRSA.Encode(StrMessage)
4 ~& v5 J1 O: V9 H! w
Set ObjRSA = Nothing
" R+ w2 L: w2 A: \: B' I; B
end function
! T7 S n, A; e+ E) ?; L
function decryptstr(Message)
3 C5 H- @. g- s$ d' X
Dim LngKeyE
. E& A8 H+ c: Y/ l
Dim LngKeyD
6 W4 _9 V; k' V
Dim LngKeyN
7 \0 J+ P: }: M% E' X/ F
Dim StrMessage
& N$ O# k9 m: C
Dim ObjRSA
0 A* Z5 W: x1 Q$ n
LngKeyE = "32823"
|& l( [6 {+ T4 c" A1 Q0 L
LngKeyD = "20643"
3 _: D% ]& M5 g7 a5 e1 q
LngKeyN = "29893"
3 H* W [9 T8 ?
StrMessage = Message
7 z+ l# X% f' ^! l( D$ W$ T0 G" h5 [
Set ObjRSA = New clsRSA
4 d! H0 F: y" a$ w$ V
ObjRSA.PrivateKey =LngKeyD
4 r. b! }6 |1 t i
ObjRSA.Modulus=LngKeyN
% ?* b3 V' o/ t( ^% \
decryptstr=ObjRSA.Decode(StrMessage)
, H; o2 l% r8 R+ Y5 U/ I
Set ObjRSA = Nothing
2 `5 F, S: f! H3 n$ f% X5 O. N
end function
4 I2 N: W* l' r6 z* x( I+ x
dim last,first
8 A3 w# A3 |- p0 A& d
first="!@#$%^&*()"
( b" u+ s% }: u( b
Response.Write "加密前为:"&first
W& D% B% ~$ B- R1 g3 n
last=Encryptstr(first)
+ Y3 z% y3 j* h8 Y/ X( I
Response.Write "加密后为"&last
- g8 I$ D- U' q
Response.Write "解密后为" &decryptstr(last)
; S8 c# z6 E( y; v; K5 u
%> ==============================================
5 Z3 b9 ~- B4 T# \9 b7 J
剩下的就是字符的对照表了
: V8 K) d! e. X9 P/ z5 P
===================字符集================
7 h7 ^ D/ o( T, A
1_____6EBB
5 I9 ]' o7 |: G0 E2 P0 H3 V0 x5 w
2_____5C1F
- ?1 z) C' {, H/ ~( A& H7 J
3_____4D75
' X, _! I; r3 \6 Y; z
4_____26CC
# q, I4 U8 }0 {$ O- q' k
5_____4F88
% x7 c0 x% h8 B/ Q! {
6_____3F4E
" |: Y* L, g- ^% n' w' p2 {, ^
7_____0A9D
9 u- X, h1 \ Y8 j" x7 U6 Y' l
8_____1A1C
) c; c: t* V3 c' h
9_____6D20
6 c* d4 ]4 E8 R S- d$ L T
0_____1089
5 _/ o- F; M1 f t( m6 a
a_____0F3E
: s v: E/ g* L; X* N3 b
b_____3159
4 s3 {. v. d: B( @* ?! k+ t2 |6 Q m
c_____3517
) Y0 C1 V; {0 @( A: a
d_____419C
/ ]1 n) q, m5 s/ ]. y3 |; b2 [
e_____615C
3 \# |$ I ~/ o# r
f_____556F
+ W$ N4 v3 ]' B, I T2 e
g_____2B7F
- S! d j& _& T1 i1 L- _1 d! X2 e
h_____0F9C
" u* m5 K& E1 F9 }9 P+ |
i_____00FA
) x, J( H6 N& r4 h
j_____5A50
$ I# o0 d/ a" b* d
k_____2850
) i6 i/ D1 M4 R% s2 d0 z$ I: j
l_____3E7B
4 }5 w3 e# m! U& X: x
m_____71C5
* ^% \9 u* P' {" x: l# i
n_____1FC8
1 Q" z. ^+ O5 N
o_____74C1
0 p/ Z( G+ r9 F% t* q% K" D/ A
p_____5FB8
- F; W4 I; _6 H* x
q_____6085
7 c- Z* y7 o9 A7 N
r_____3AC4
" v$ l q5 F0 P
s_____2F50
+ W; T6 q: w5 U5 Z% j4 P6 p
t_____36F8
& c5 [- \, `/ D, j9 {) o
u_____7010
0 n) M8 \( E$ M, k/ ~5 T6 A
v_____0B42
3 `8 x J" d L! I' P3 V7 e8 M
w_____1C7A
6 n8 c: C2 h. ?7 A3 K! j
x_____16F8
) A5 N" `" P R: `, e; }4 I' {
y_____2EE7
) Z- Q0 i: ~5 A, i0 X) n
z_____5CF3
8 z& u/ g, o: Y% d8 \
!_____6233
G# n( d$ w1 }3 @
@_____3A45
' f/ g8 Y& W8 m: I: j2 F. l+ V% ?- R
#_____2291
, O: o$ P' T3 Z2 P* {0 b
$_____5D5C
* D! N ?: t/ M7 [
%_____09B9
) t: f7 m3 E' d# H0 v
^_____43EA
r7 x7 {! E: T+ b# ^3 V/ k
&_____62B9
& W8 M9 H# g- b# v# @! O3 M, n
*_____6301
# Z! {0 B" H Q* G( M
(_____4659
( P+ d& N% ~2 d$ K* K0 S, k! E
)_____5C82
作者:
鱼儿无心
时间:
2011-12-4 17:17
收藏了。。。。。。。。
欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/)
Powered by Discuz! 7.2