标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
2009-4-19 21:52
标题:
关于国内某知名大学网站加密算法的研究
原创作者:柔肠寸断 [3.A.S.T]
http://www.3ast.com.cm
5 r. \' O6 @. g9 k: I
原始出处:
http://www.3ast.com.cm
6 I8 n% Q) k W m( j
5 }. ~/ P1 N8 L" B' g$ Q. Y
看不懂的直接绕过
1 d) N$ y, H( \2 F, f2 x! }. k
加密前为:hwy123456
9 }7 C. B6 Z1 t# H
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
2 z2 y! a' m& c: x
8 D. n3 O' w! p/ w
============================================
1 Q4 t+ E+ K9 y" T9 L5 t4 x1 _) p
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
( S* u& _9 D2 c$ A- E5 t
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
& s% T% ?& f; n- Y4 ^
以下是RSA算法文件
5 Z0 ` d. ?$ y1 |/ t
6 i; m- H7 f) t
文件名RSA.ASP
3 A# Q0 @9 L7 X7 Z* `0 z3 M
===============================================
& S' o1 p1 ^$ N9 m$ y- K7 {
<%
$ o; i; ^! E0 K4 h* z8 ?
Class clsRSA
% z- y4 l0 e5 w
Public PrivateKey
1 }$ |1 ~5 Y" H
Public PublicKey
4 k7 J, O2 `7 H) n
Public Modulus
2 \6 w) b1 J' f$ v
Public Function Crypt(pLngMessage, pLngKey)
! r8 P* g8 y5 i b( z& G/ C: O
On Error Resume Next
8 W4 @6 I x3 S& ^/ s
Dim lLngMod
( K! {7 E) ]; {3 H) V( s- C& A
Dim lLngResult
8 h" p! K) U; E) b- E9 p
Dim lLngIndex
7 @1 n$ |1 S: _: V% x) F2 A. F
If pLngKey Mod 2 = 0 Then
* s8 u: i4 P8 c
lLngResult = 1
4 w& A; ` N. L1 q8 R3 g
For lLngIndex = 1 To pLngKey / 2
3 `0 v/ S& o/ V4 a. `# B9 B
lLngMod = (pLngMessage ^ 2) Mod Modulus
8 h4 f! P2 j+ ?7 K
' Mod may error on key generation
, p2 K/ p. f8 x' F( A z
lLngResult = (lLngMod * lLngResult) Mod Modulus
4 H# G8 k. C! O
If Err Then Exit Function
( K4 w; C( l1 e/ `
Next
+ R# {0 Y- a- r/ i
Else
$ Q% H$ R( Q1 t; D
lLngResult = pLngMessage
% n% d3 p) b& T; N& s9 z/ b
For lLngIndex = 1 To pLngKey / 2
* h3 h! C4 l% Z1 f
lLngMod = (pLngMessage ^ 2) Mod Modulus
6 }+ p% f* R: D# |" a) ]/ E+ Z7 s1 W0 E( d
On Error Resume Next
, f8 y; e9 w* a% O
' Mod may error on key generation
8 l- J+ b+ U. d! X5 ~ Q( }
lLngResult = (lLngMod * lLngResult) Mod Modulus
! y$ B8 u' Q+ p( b6 l
If Err Then Exit Function
- J& g: i3 B1 I! x& u
Next
! } ?1 v0 F- n* ]9 k
End If
# S. |7 l- q& }
Crypt = lLngResult
4 g1 z8 U5 i6 ^- d a. u( v$ t
End Function
1 J4 i; f* E* T$ _, x: V# X$ }$ o
$ F& ^" p, Y( T6 B% [
Public Function Encode(ByVal pStrMessage)
; l/ d: ~) Y6 U/ c2 M D+ d
Dim lLngIndex
9 g" ~$ [; R% ~# [6 @! S$ ^( u
Dim lLngMaxIndex
" z: k; I: f8 [4 @1 L$ A
Dim lBytAscii
: i1 y/ N! {1 Y: v# Z9 a9 r+ e
Dim lLngEncrypted
. g/ v. |: d5 P- L4 Z1 `6 C
lLngMaxIndex = Len(pStrMessage)
- g8 W& @9 k3 L/ B5 I, A
If lLngMaxIndex = 0 Then Exit Function
" K% I# p8 j9 J/ y- m
For lLngIndex = 1 To lLngMaxIndex
, N9 L( D) P) q( ?4 ?
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
1 q5 R& ~+ M0 g, v- `
lLngEncrypted = Crypt(lBytAscii, PublicKey)
! F) F& V1 Y5 }) A# I+ h8 v
Encode = Encode & NumberToHex(lLngEncrypted, 4)
- I; @4 J; q, i W
Next
* r" o1 G- a3 d% k
End Function
/ Y9 X2 M: ]1 k; m4 n X7 D
Public Function Decode(ByVal pStrMessage)
5 a: r7 ]& C6 a9 M4 y
Dim lBytAscii
2 c* `/ t- x% A
Dim lLngIndex
9 |; E( e, n) A8 x7 g4 R+ i4 ]
Dim lLngMaxIndex
g; B9 N5 R% d; A: Z
Dim lLngEncryptedData
/ N& a K6 @/ N6 p5 P
Decode = ""
8 W5 r# z7 k) q
lLngMaxIndex = Len(pStrMessage)
0 m; s4 i% Y/ [" W7 O1 o
For lLngIndex = 1 To lLngMaxIndex Step 4
9 {+ c+ J o9 H. ^
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
) \% k3 \. n% z- q6 W# t1 p* b s
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
1 p" n$ D- h! |( c/ W3 s
Decode = Decode & Chr(lBytAscii)
; L5 W( f3 H3 R8 |1 Q1 }
Next
7 B% n6 s! _$ d) Z& M4 n+ T
End Function
' K7 l+ i" Z4 t( y7 b
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
2 b" a# _9 e. v- S5 T. `
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
T+ v8 i) k7 i
End Function
/ G. v+ R4 @2 ?: r) h& b; m
Private Function HexToNumber(ByRef pStrHex)
% q6 y+ e" c. X/ v2 O( ?- u& t7 D
HexToNumber = CLng("&h" & pStrHex)
{0 \' G0 Q0 j" J- r ^. x
End Function
" c$ o5 x; v5 T
End Class
: t/ K) p0 n9 M$ p/ x9 D; }% H
function Encryptstr(Message)
) q) P$ I* o5 f5 P2 |" `: J
Dim LngKeyE
6 [, [1 i8 q- _
Dim LngKeyD
1 \0 u F% N( G: y7 V- u4 [' U; S
Dim LngKeyN
2 R0 C) T: D9 a! B9 Z& U
Dim StrMessage
) a: O$ J; \, I8 f" s; r: ?
Dim ObjRSA
5 V/ Q, z5 e6 B1 n3 _
LngKeyE = "32823"
# V Y# K! M4 [% ~- K; J, j
LngKeyD = "20643"
# V1 Z$ O- ~' r# ?: W
LngKeyN = "29893"
: p1 m& S% U# G" m& ?/ j$ h
StrMessage = Message
+ p4 L) }4 g: K. a& J L; r' q% |
Set ObjRSA = New clsRSA
) V# h0 V/ l' X
ObjRSA.PublicKey = LngKeyE
- [( I! [( v" J4 {, B; y
ObjRSA.Modulus = LngKeyN
" }! m& x) V6 g
Encryptstr = ObjRSA.Encode(StrMessage)
+ E4 Q4 ?( W( ]- l- o- D5 p ]: |
Set ObjRSA = Nothing
. p* R) k3 o2 t v" E$ w2 w" u
end function
% f$ U1 r" V8 k# {
Function Decryptstr(Message)
) G9 t) F. k/ @
Dim LngKeyE
" q6 W2 ~$ A7 X4 z8 K
Dim LngKeyD
( f& v; `- }1 T6 u6 a
Dim LngKeyN
7 ?0 l* \4 W+ \" O1 D/ g4 \
Dim StrMessage
/ _! U- z, a! g1 F$ l
Dim ObjRSA
/ L, A" F6 j [ W8 N( |' l
LngKeyE = "32823"
/ w* ^0 X3 D0 U' _: {
LngKeyD = "20643"
/ P" i7 ~- X/ v# h9 o
LngKeyN = "29893"
5 i7 k/ L8 s+ H Q4 N! W- x( P
StrMessage = Message
' I9 n Y7 \1 R* [& s- X& ?$ `
Set ObjRSA = New clsRSA
1 P+ D5 \% G5 |# {
ObjRSA.PrivateKey =LngKeyD
. L6 s L+ q! r; @; u, [3 \* O0 L
ObjRSA.Modulus=LngKeyN
7 I: S5 ]3 U2 ?6 h& O& }
decryptstr=ObjRSA.Decode(StrMessage)
# C" f/ \) L+ s3 Y! g4 f
Set ObjRSA = Nothing
9 |- ~8 @7 E- `( T5 Y' F8 d7 d3 n# [1 L
end function
7 ?5 x& T8 d6 L; U
%>
0 H1 n$ f T0 ?9 ?8 H" j
===============================================
?/ S- j& ]8 J8 O" z/ k& x/ H
" K. X6 x1 {8 n" \' M
还有一个用于测试这段代码的test.asp
' t. c% O1 g) T% W* W' F( W
有兴趣的自己搭建个IIS测试下
7 v W& p0 U/ U; I1 c
<!--#INCLUDE FILE="RSA.asp"-->
2 ^4 N* l0 _5 k. Q
<%
6 G5 I$ R7 g" ^" q3 u5 f
function Encryptstr(Message)
4 B0 p$ I) V/ f* Z3 u% u3 o _' O4 T
Dim LngKeyE
% s+ i m; Y1 T, A
Dim LngKeyD
' F- f, i1 a1 i: |
Dim LngKeyN
# P& V! h0 z1 Z: F
Dim StrMessage
- f' E/ v. Y, H6 L2 V0 u# c
Dim ObjRSA
6 I7 A* M6 Z" q
LngKeyE = "32823"
, d( B9 M7 T+ {) t+ Z
LngKeyD = "20643"
) w, L$ D* I2 W w+ {( m9 ?/ H* T6 z5 C; C4 f
LngKeyN = "29893"
% V" H& f4 k8 A- s( }# E. J
StrMessage = Message
" w) N4 Z) T1 P' ]: X5 k9 t8 G0 ~; U
Set ObjRSA = New clsRSA
* q& ~4 h8 _, u& k3 d/ E
ObjRSA.PublicKey = LngKeyE
$ F: p$ K5 r) ]% D& j u
ObjRSA.Modulus = LngKeyN
! S( g& C9 `3 f) a5 G6 u7 f h
Encryptstr = ObjRSA.Encode(StrMessage)
/ n% i& _- t) Q, {! O3 k: o) x
Set ObjRSA = Nothing
- D+ d% {5 F+ ]5 d9 g6 k$ i, R
end function
1 _5 ^3 T5 ]3 U0 C) g2 ]
function decryptstr(Message)
' `0 i7 y! D, X0 [2 X5 \
Dim LngKeyE
) M4 i$ g. ^0 j6 }" R
Dim LngKeyD
& V+ e8 |# K. A7 _% m9 g
Dim LngKeyN
% n8 q. D! J3 {3 p2 ^# E/ M" O
Dim StrMessage
" S& C2 b; ^4 H0 o' X
Dim ObjRSA
6 G: [& u$ r0 [+ ~1 N! Q
LngKeyE = "32823"
. |7 B- F' M) \: T
LngKeyD = "20643"
7 K" N6 D4 g4 L2 j9 Q
LngKeyN = "29893"
5 s% h3 Q n" R3 _' d9 Z& d1 [1 h
StrMessage = Message
8 v- R" D2 m& e/ l8 K/ ^
Set ObjRSA = New clsRSA
% \( D% A/ Q) D7 A: q; n
ObjRSA.PrivateKey =LngKeyD
1 U( @0 L/ n$ b, |: b
ObjRSA.Modulus=LngKeyN
8 H. x. o" [" n( r9 R
decryptstr=ObjRSA.Decode(StrMessage)
9 q7 X- i5 t4 j
Set ObjRSA = Nothing
0 [+ K% v' z( _4 ~
end function
' T5 ~" H; I6 ~) V3 o& Z
dim last,first
, W. A W. W1 o
first="!@#$%^&*()"
9 \8 i9 c6 a# ?4 I5 ^
Response.Write "加密前为:"&first
) I' Q0 Y* u& S7 z$ _7 p
last=Encryptstr(first)
, J6 I1 ^! z! S" W) c. T
Response.Write "加密后为"&last
9 A w6 Z! ~& l4 J2 O
Response.Write "解密后为" &decryptstr(last)
U' o! @; Q5 R% C
%> ==============================================
/ W: Y7 e( b E/ y) {# R) y
剩下的就是字符的对照表了
& K( J B9 q* E0 h0 D7 M/ K
===================字符集================
! j/ G! z5 H- v- ~6 C3 N4 S' b
1_____6EBB
; \6 Y9 |7 Z- M& R
2_____5C1F
" [6 S% x* K* C) `% A; F
3_____4D75
4 d" w% s R! }; @
4_____26CC
' K% X* I# ?: W9 b% d, o5 [0 {
5_____4F88
4 L4 o5 I7 ^# S6 E, v0 q
6_____3F4E
|$ X& f5 N4 i) `$ H$ i
7_____0A9D
2 @ j; c* y1 z7 h v
8_____1A1C
. B2 p3 s! X% V C
9_____6D20
9 V5 D! p/ f( I8 W5 T& y7 a
0_____1089
, j& Z. J1 s0 Z" H
a_____0F3E
w5 ~$ J+ a5 Y3 |
b_____3159
; @- f" l- l' F- o0 u7 N
c_____3517
0 y2 @2 m+ c# Z' \
d_____419C
- r" Z7 f+ d/ i2 \/ R
e_____615C
, j% d7 b% y& c* i3 f# w4 ?# X
f_____556F
% v& u0 g+ d3 D, ^+ V0 f/ S3 J
g_____2B7F
: w5 `- |9 z; a& q4 ~# M
h_____0F9C
8 e2 K% s7 e7 Q" @( w
i_____00FA
% U- S3 ?% Q2 I& F/ a
j_____5A50
5 J: y$ I! `, V6 H+ J
k_____2850
6 `' `- R7 h2 r, R3 D, n$ C
l_____3E7B
V; P& a* m( y* S
m_____71C5
- A2 p+ @6 v0 D' U
n_____1FC8
: k' R2 t$ Y) ^4 y7 _5 [+ N: t# o
o_____74C1
6 r* [% K4 u, D5 A, Y7 Y3 j% C
p_____5FB8
7 I' t. |2 h- U! X" i
q_____6085
4 Y8 A* a, y0 g
r_____3AC4
0 ^* B* N/ V1 j! g; T" |
s_____2F50
5 h* ~3 m& n1 u0 N* X
t_____36F8
6 q: S* z9 s+ g3 M+ Y7 c
u_____7010
+ Y- {* o. f- g( E9 M$ }" T7 k
v_____0B42
4 W7 h5 D! P* a
w_____1C7A
- ~; u- r) J/ `$ e+ _! G& q6 F3 G
x_____16F8
/ P, k& k' ~( U) T- i
y_____2EE7
9 V6 s; s: N6 b* `! F
z_____5CF3
. p+ U0 f. p4 V( C
!_____6233
* O% o: L: u8 }: m8 ^% V0 `
@_____3A45
; R5 }6 l7 q3 p
#_____2291
) C% L8 a% ]! g2 E9 a
$_____5D5C
& c9 L. x. v! [6 B5 F
%_____09B9
# _- Y. E+ A. m+ @/ C
^_____43EA
* P/ X5 c4 T N5 _$ X0 }
&_____62B9
; a% G: L4 z. @. L6 y+ x( s+ }0 n
*_____6301
3 E( j/ u# R5 q4 O r1 d n& J
(_____4659
6 m( ]' m4 u8 t4 t: l" T+ {! D% ]" q
)_____5C82
作者:
鱼儿无心
时间:
2011-12-4 17:17
收藏了。。。。。。。。
欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/)
Powered by Discuz! 7.2