标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
2009-4-19 21:52
标题:
关于国内某知名大学网站加密算法的研究
原创作者:柔肠寸断 [3.A.S.T]
http://www.3ast.com.cm
( G( p% u0 R* y* T2 Y
原始出处:
http://www.3ast.com.cm
/ `& m, p# _$ T; a3 w' F: [
: z" z! ?+ ^% Y5 u4 @3 p
看不懂的直接绕过
( l! ^1 r+ q; d) o4 K* H
加密前为:hwy123456
) L# z2 R9 t' e# j
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 u; K0 K! L; D2 R
- [0 Q1 ]8 g2 k2 d1 p, K* n
============================================
* a6 N0 g9 ]5 h2 Q# `
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
3 Y* R' N' S" j7 q; O2 y$ c0 y' K4 r: X9 A
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
. v2 G/ j$ L7 P' p) h
以下是RSA算法文件
# F w4 b8 o, r" _ ^+ Q s
! i5 h5 F, H H2 P# H# e9 o8 k
文件名RSA.ASP
. z% y2 j* D! ?. C6 J6 `& A5 S6 k
===============================================
0 w1 q9 b( b+ r, B& L& `- U2 L
<%
% [. t3 x& ?9 ~5 l9 R
Class clsRSA
& g0 T, L' z. I, s' V
Public PrivateKey
/ g. j$ q' j7 K: P/ v1 C! L! z
Public PublicKey
$ [% w& w; l- e6 c
Public Modulus
8 Z0 n, k4 Q9 i$ S; E
Public Function Crypt(pLngMessage, pLngKey)
' ]- E+ _" K+ d
On Error Resume Next
+ Q6 f1 W6 G, A% j9 K! t* `; I
Dim lLngMod
1 H: g& k3 a9 z4 D
Dim lLngResult
- }2 Y& ~) c$ [# T. Z$ F' A
Dim lLngIndex
1 {1 E' n9 N" u6 Q- x i) b
If pLngKey Mod 2 = 0 Then
% x" v: X7 M7 ~4 ], w5 s* K
lLngResult = 1
: F/ R7 s) H+ b/ B
For lLngIndex = 1 To pLngKey / 2
$ W& S- N- j6 H
lLngMod = (pLngMessage ^ 2) Mod Modulus
* L i' C, y5 D% L
' Mod may error on key generation
& d" m: `5 n* d {6 }! ?
lLngResult = (lLngMod * lLngResult) Mod Modulus
9 }# ~+ \1 \& o0 s& {8 Z' m, h4 q4 k
If Err Then Exit Function
2 h5 S# F0 L$ n6 T4 }, C/ [: h
Next
2 w. C; B( I+ a1 j3 `
Else
4 H6 |% ?# r6 u) {
lLngResult = pLngMessage
4 S+ `6 \/ ^5 Z5 q1 } ^
For lLngIndex = 1 To pLngKey / 2
+ X! ^& p% \* o4 E7 A
lLngMod = (pLngMessage ^ 2) Mod Modulus
* [% A5 c* P2 F" s$ [0 h/ C
On Error Resume Next
3 _( \8 r9 }: ]1 G3 m- ^" w
' Mod may error on key generation
) ^1 @& R3 Z2 \; ]7 r
lLngResult = (lLngMod * lLngResult) Mod Modulus
+ }$ ?6 K1 E' @; v& w
If Err Then Exit Function
& o0 e4 |7 a% c: `% G. S
Next
+ s/ C( D* ^& a; q2 |
End If
, f- W- K9 \1 L! s3 X p$ d
Crypt = lLngResult
( d% q1 P D7 G. A- G* t8 K4 n2 @
End Function
* v% u& E# s( J6 o& c
; w" a+ _; x5 X5 \
Public Function Encode(ByVal pStrMessage)
2 k, T; l- R0 K! a% i- w1 l
Dim lLngIndex
" R+ [$ T" P6 K/ J
Dim lLngMaxIndex
+ {5 \- b9 O/ v1 C9 D# p1 J q2 A
Dim lBytAscii
2 e% d6 r6 q- {6 m/ b
Dim lLngEncrypted
0 d% l1 D8 K) N; z
lLngMaxIndex = Len(pStrMessage)
! B3 Q. g5 S0 w! R
If lLngMaxIndex = 0 Then Exit Function
1 d' c! x7 }4 z8 Z0 Q
For lLngIndex = 1 To lLngMaxIndex
- w9 m) ^! H9 Z
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: v) t" C3 d1 p+ c, p# J5 m4 _- |
lLngEncrypted = Crypt(lBytAscii, PublicKey)
2 W: S1 f& E/ x/ E/ |- K
Encode = Encode & NumberToHex(lLngEncrypted, 4)
1 r( e% ]0 R" t$ Z* A
Next
$ L3 e7 ~3 `" V
End Function
" F! W: p g- {7 [ [$ i% m4 B
Public Function Decode(ByVal pStrMessage)
2 H! L! J5 K/ J' f
Dim lBytAscii
3 e6 w6 G/ N7 D/ ^
Dim lLngIndex
$ x. d9 J( u& U; x
Dim lLngMaxIndex
) P V% M/ t) T F U* ^* x' Z
Dim lLngEncryptedData
! Q% f+ \* S6 G. Y- N
Decode = ""
5 _$ i: Y; r9 Z* d
lLngMaxIndex = Len(pStrMessage)
$ W6 p3 k! K5 Y2 _9 r8 Y
For lLngIndex = 1 To lLngMaxIndex Step 4
1 u8 y% Z; n1 y& |& c+ P
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 U5 l* N7 W6 O- \ e4 t
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
9 g" h' u- J& X6 \8 A( w+ `4 L* q
Decode = Decode & Chr(lBytAscii)
' r9 O9 a" x# _" ?6 N
Next
* `7 b% ]4 ?9 d* J" p
End Function
7 B, `# E2 f4 p; e a7 L
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
6 `* A+ ?' j5 t- M5 M! a1 ?
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
9 K( I% ~4 I1 S" P
End Function
6 `, d4 d, Z% t6 u1 b1 j' K
Private Function HexToNumber(ByRef pStrHex)
* A3 Y. a$ d5 f" u1 k" \
HexToNumber = CLng("&h" & pStrHex)
7 ?9 v. C" l; Z: x
End Function
( B; u2 h" o# W( s l! T/ L
End Class
- {0 c/ s1 E! k' I* W
function Encryptstr(Message)
3 w$ u! L+ s2 l
Dim LngKeyE
. M9 Y. W: d- x% W+ q) [! x
Dim LngKeyD
) Q5 @( j; I! N2 }- |4 Y- t
Dim LngKeyN
Z2 i& r1 g l
Dim StrMessage
3 X7 |3 F/ W. H; J1 ?
Dim ObjRSA
K0 w: x, v' L, o4 ]+ s
LngKeyE = "32823"
4 f, ?. b& \, I+ B* O& T. @( j" n# b5 L
LngKeyD = "20643"
; L, d; h. H. L4 ^/ d
LngKeyN = "29893"
7 d1 T' J+ I4 \- S
StrMessage = Message
& m4 G3 I* D$ g G3 ^
Set ObjRSA = New clsRSA
" X7 _; ~# n _( n
ObjRSA.PublicKey = LngKeyE
' d J+ l- W1 N+ W
ObjRSA.Modulus = LngKeyN
J4 M3 E1 n5 k
Encryptstr = ObjRSA.Encode(StrMessage)
" L( M" K% x* {. ]# H8 d
Set ObjRSA = Nothing
$ x! l4 c' L& O: T$ k; B: W0 @1 M
end function
2 r8 p7 O% w5 E8 |( s# `
Function Decryptstr(Message)
+ T. M; w. _; f" v
Dim LngKeyE
6 |- ?' U& M: O6 J/ j5 H
Dim LngKeyD
, ?7 J% n+ ]% F- j5 e* l1 C
Dim LngKeyN
7 O+ Y+ y* k9 b1 h' V& z
Dim StrMessage
( `$ [# X( \1 f) B* I/ g( N
Dim ObjRSA
y8 f1 l4 n5 S& j, @
LngKeyE = "32823"
* y6 M; @! T7 x0 i0 Z) A
LngKeyD = "20643"
0 y! J9 w5 U9 m
LngKeyN = "29893"
8 \2 y! u. Q; a V' i
StrMessage = Message
9 [. W; W# a# i" L* h3 n: v
Set ObjRSA = New clsRSA
5 R, n, i4 @* j: ^ M C
ObjRSA.PrivateKey =LngKeyD
6 w, b2 |" |8 a# I x1 g, }# ^0 q
ObjRSA.Modulus=LngKeyN
( }! m( J& ~) m( S
decryptstr=ObjRSA.Decode(StrMessage)
3 M9 p2 f9 D7 r, }' I3 {; p
Set ObjRSA = Nothing
/ d" z# }9 G) t/ ]3 c) }
end function
A. P! T- ]% z- E8 U
%>
4 X3 \7 e4 |5 j2 R6 Z
===============================================
' o- T. _, b3 p, @, w+ D
; u1 |9 |( A' z. v. S/ e) R
还有一个用于测试这段代码的test.asp
2 j" A# u. o. S3 _7 F
有兴趣的自己搭建个IIS测试下
: z N2 ?! k) ]7 ^% u4 c
<!--#INCLUDE FILE="RSA.asp"-->
" i% d$ \: [# n1 e
<%
* a w* B& F( h7 i6 }8 t
function Encryptstr(Message)
$ l8 o/ v: [# D% f, w A
Dim LngKeyE
: M5 x$ R# o0 A: P
Dim LngKeyD
3 Z) x6 `* e6 Y
Dim LngKeyN
% {0 c7 G( k/ O+ G. X
Dim StrMessage
' ~5 `' Z0 |9 Z) K: Z
Dim ObjRSA
, H0 C9 a: k1 O J9 m$ E
LngKeyE = "32823"
/ r# ]9 E# _8 h* o
LngKeyD = "20643"
( @/ U# J1 W4 i0 q. t/ a
LngKeyN = "29893"
, |# U" A, E$ s
StrMessage = Message
i" K Q- H& Q0 Q
Set ObjRSA = New clsRSA
. u, t' [) Q0 p+ m1 \, |$ C$ l
ObjRSA.PublicKey = LngKeyE
9 y$ F5 T( C( z6 ]1 B5 F
ObjRSA.Modulus = LngKeyN
& I' {' L" J( r, |4 g$ l
Encryptstr = ObjRSA.Encode(StrMessage)
% O, s+ d0 v# _$ t+ q7 k
Set ObjRSA = Nothing
8 b) I. l9 J) D9 k K9 t
end function
- _' t5 d. {# M3 d& U$ Q
function decryptstr(Message)
. i% E" w k! f: K" w, a
Dim LngKeyE
% x$ q) {" g. C
Dim LngKeyD
$ T y6 w) K- [0 s
Dim LngKeyN
! M% d# G8 O4 u" Q( J1 K( d
Dim StrMessage
9 o8 O$ g) N& Z R# v: r9 ~- R) N: Z
Dim ObjRSA
6 |1 V7 d# u3 w! w6 A
LngKeyE = "32823"
$ P4 o$ t6 o6 e! L' N
LngKeyD = "20643"
9 [4 S: }1 O2 O$ x; P, T
LngKeyN = "29893"
: j2 o: c0 ^ U6 {
StrMessage = Message
+ i8 O# P( ]- ~4 ]# ?5 V
Set ObjRSA = New clsRSA
2 W6 e* P" O0 F s" u
ObjRSA.PrivateKey =LngKeyD
& N; ^, z) K4 ^4 Z8 f/ {
ObjRSA.Modulus=LngKeyN
$ C5 d7 _1 m- q. I1 N5 f( O
decryptstr=ObjRSA.Decode(StrMessage)
w+ X2 o/ D; V' `. T
Set ObjRSA = Nothing
) r2 ^& a: B# Y$ i
end function
w- K! v) A- g; V* f: ]; m
dim last,first
3 ~" [) G4 S- a* x0 _
first="!@#$%^&*()"
# [5 |1 `1 B8 ~7 C: M% s
Response.Write "加密前为:"&first
- f: ^1 A. b0 Y+ F& Y
last=Encryptstr(first)
8 s" g+ w5 k; J; z! w4 r
Response.Write "加密后为"&last
& b/ @4 o) _5 Q
Response.Write "解密后为" &decryptstr(last)
. w6 G. ^1 {4 b+ R" N
%> ==============================================
6 }& ^# [3 z' j5 C# h7 z; v
剩下的就是字符的对照表了
5 U/ r8 o# i E3 J7 [
===================字符集================
1 y* F; E& A. w& |4 _6 D3 L
1_____6EBB
0 V0 ^7 A$ [7 f% O& a7 c
2_____5C1F
+ K8 M$ Q4 [/ D' Z0 u7 C1 s
3_____4D75
2 \' K0 L+ X; Y
4_____26CC
2 |- i% k( e4 {: {. W0 d$ y
5_____4F88
: Y' g; n3 _9 x6 @: j6 U5 y6 A N
6_____3F4E
) k; l& X2 a7 d) F' q' _
7_____0A9D
( g' h- \: W( P4 C: x
8_____1A1C
4 N: Z& Z1 E/ ~5 m& y6 R6 N( s. r
9_____6D20
; @/ T& B7 t: n; q" A
0_____1089
: M! h' f5 A# I6 ^
a_____0F3E
; U8 Q/ f& r3 }5 y
b_____3159
/ W/ ]) w; i* ?/ {+ d
c_____3517
1 C* W7 D) U% a0 s3 j0 p# P& v
d_____419C
& @* q: i2 a. V: H3 H5 F" G
e_____615C
1 N7 g. h2 X0 I; G6 q( E. C- K
f_____556F
" V$ B) a/ P7 C; N: S ~
g_____2B7F
% ]( A2 b& ?) E: _ c/ E
h_____0F9C
; @- o" t2 E! h" J3 n: q/ l x
i_____00FA
" f! _& ?4 L# h, {. g
j_____5A50
, C4 j$ p1 ^( d9 R8 B
k_____2850
0 Y% j* n# t8 Q7 Z
l_____3E7B
" Q. i2 [& N& |
m_____71C5
& c7 |; X b: K
n_____1FC8
' M$ [ x5 y7 E
o_____74C1
1 c" V9 V0 Y) D8 V+ Y( V7 {, m8 t
p_____5FB8
) ~8 I- R! C4 P- \: b
q_____6085
) \7 Y0 m2 P/ e' p% e
r_____3AC4
' i. a% x4 R4 \" e
s_____2F50
# z6 b+ J. R" u ?- @
t_____36F8
, i" d p) y1 _9 H
u_____7010
8 e+ r; d, G0 X9 `
v_____0B42
3 f3 j5 I0 Y3 ?# V4 S5 w6 G7 M
w_____1C7A
' ~- X7 a+ ~1 W8 W$ v
x_____16F8
1 t. ~" a: s3 Z
y_____2EE7
: n; J# Y/ F, @& M4 ~
z_____5CF3
* I9 h0 A4 G0 K+ @
!_____6233
. t% k: K4 t/ z R6 x9 [
@_____3A45
+ s& h p/ f7 ~1 N! N7 ~+ f6 V
#_____2291
; }; K0 e/ w' `# r- ^1 g
$_____5D5C
: K" H: c) g) @$ k: A* ]
%_____09B9
. p/ G8 b/ e5 d2 Z$ Z
^_____43EA
X5 V' v* [8 b! ]/ j b
&_____62B9
. Q8 k* T+ T$ p
*_____6301
# t7 c4 I6 t0 n, |1 {' I: j% f
(_____4659
6 o! J* n. v n5 m% B
)_____5C82
作者:
鱼儿无心
时间:
2011-12-4 17:17
收藏了。。。。。。。。
欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/)
Powered by Discuz! 7.2