标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
2009-4-19 21:52
标题:
关于国内某知名大学网站加密算法的研究
原创作者:柔肠寸断 [3.A.S.T]
http://www.3ast.com.cm
" E; R6 b( J! b5 E
原始出处:
http://www.3ast.com.cm
- x# B/ t: q) Q9 R% T- ~
: ]2 z# w1 _" f1 `
看不懂的直接绕过
; j0 H' x4 P4 W% O8 t) Z- e) S0 i; }
加密前为:hwy123456
- A- |! v9 ]6 g" A
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% X1 H6 B4 J: { ^* j" i
5 z u: ^3 T0 g5 F
============================================
8 C- t4 `2 K, |
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 o$ s$ q6 o1 z4 c; d
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
2 z5 ], n& E! t: S% h% G
以下是RSA算法文件
& S' n6 t1 J- T' Q) h* B' \% {
m; d( b/ q! c# w- F1 J
文件名RSA.ASP
: y$ C2 w) N. M$ M
===============================================
9 J1 s! i0 N1 \* i, v& {: b
<%
+ k' e U( q+ G: l/ |& o
Class clsRSA
: @4 P5 b1 e! r; m& H( Y2 z
Public PrivateKey
) `) V `* `3 e$ u. D% Q3 f
Public PublicKey
% _ g+ `9 h% i9 i9 }( [
Public Modulus
! v S( S$ J9 d- Q) T
Public Function Crypt(pLngMessage, pLngKey)
8 [1 D: Q/ d2 l0 I2 W+ T
On Error Resume Next
/ Q$ q) [; `; b3 \8 U4 D4 j
Dim lLngMod
$ U8 j4 ^/ r1 d7 s& d
Dim lLngResult
9 ^. W% O* r( `# ]
Dim lLngIndex
; g! x6 c/ B6 `; |6 d' h: Y, x) v; n
If pLngKey Mod 2 = 0 Then
- S: c* @; m* j
lLngResult = 1
% A G4 ]2 a! }9 L5 |
For lLngIndex = 1 To pLngKey / 2
# e9 ^" Z* D( u* X0 r
lLngMod = (pLngMessage ^ 2) Mod Modulus
$ w6 }/ _' R# G' D7 X3 L0 @& Y
' Mod may error on key generation
" T5 u7 u# u0 {+ l
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 t9 ]5 p8 z& u( H
If Err Then Exit Function
, ]& d- m* S) ~
Next
* ^# h: x+ X# ^ e3 l. q4 R
Else
# D l( \9 q+ G. C
lLngResult = pLngMessage
% X' I( x" z6 z, C9 i5 [; Q% e
For lLngIndex = 1 To pLngKey / 2
4 q( e2 M0 C8 P+ a4 L
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ ` p b( t" q/ W- T, O. L# ~6 x3 R
On Error Resume Next
4 f! n' S5 k. I9 C# c, D' V
' Mod may error on key generation
/ I4 o. l4 `1 L3 {7 [" ]
lLngResult = (lLngMod * lLngResult) Mod Modulus
2 z: ~# Q# M4 w; o) ]7 p
If Err Then Exit Function
& r$ @! y5 ?4 u @
Next
' n" [! @8 @: @
End If
/ m. y3 x( T" r1 l. V) u, { s/ g
Crypt = lLngResult
' n3 W8 w. o9 S4 w" e5 g2 {9 l
End Function
% V! z4 d$ O: r: s
1 G7 W% e6 }, Q! [* ]0 @
Public Function Encode(ByVal pStrMessage)
9 V3 _8 x- W% B* V
Dim lLngIndex
! d6 h+ F9 I( Z1 `& G$ g& T
Dim lLngMaxIndex
2 A1 I" S7 ~ U# q3 Z4 |
Dim lBytAscii
! w1 v. H+ o5 k! g1 E" D7 c
Dim lLngEncrypted
$ i% Y% R- z: o
lLngMaxIndex = Len(pStrMessage)
5 E' D! l, R$ A6 P2 m' Z& c
If lLngMaxIndex = 0 Then Exit Function
: w% o, X4 O8 w C r6 d, z
For lLngIndex = 1 To lLngMaxIndex
- z: J+ ^( f- x0 Z
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 @5 y: L. Q C; H7 o/ q
lLngEncrypted = Crypt(lBytAscii, PublicKey)
# \8 Z6 a( R7 O ]0 b
Encode = Encode & NumberToHex(lLngEncrypted, 4)
% t' P5 M3 V7 x3 l( F! R' Y
Next
2 w0 ~" a* B- ?
End Function
" s1 a) {. s# }
Public Function Decode(ByVal pStrMessage)
6 y* f2 s8 ~7 d) J& p, G, @! M# N3 V ^
Dim lBytAscii
6 k5 D Y! E# c+ e6 I
Dim lLngIndex
# D" p5 t' k& m: a4 M+ z
Dim lLngMaxIndex
* D( w2 f; T5 X% n* h" h
Dim lLngEncryptedData
+ |" M+ q( o4 {
Decode = ""
4 A) a; g) D2 X7 { B# G$ V6 C s
lLngMaxIndex = Len(pStrMessage)
6 T+ `6 I0 Q. x$ ]0 n4 W( ?
For lLngIndex = 1 To lLngMaxIndex Step 4
! K7 ]* K% } b1 F7 k
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
4 I" ?1 n5 B/ f0 I; d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
* O# R1 z: l: s8 O C! ]
Decode = Decode & Chr(lBytAscii)
1 F) Q& ]) s) z) l
Next
' i2 U$ { M( D- K6 Y+ V. l
End Function
. V" u1 o$ z9 |% f- \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
# R! Q+ d" K. f7 c5 a
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
; a$ G: Z9 [6 k5 W
End Function
5 v: t( O) }, m+ A- A
Private Function HexToNumber(ByRef pStrHex)
( P. X: S9 o8 U. q( Q, H& }
HexToNumber = CLng("&h" & pStrHex)
& j* v; |$ b0 @3 u
End Function
# C* j G( W% J- e8 P5 E
End Class
. P- V1 t/ E" z
function Encryptstr(Message)
% \; X' w3 L6 L" g; F
Dim LngKeyE
- u+ ~; `/ ~! Z, B+ P
Dim LngKeyD
' N7 A, }( @4 O
Dim LngKeyN
- [3 w) v6 @2 g; e5 t* L# B
Dim StrMessage
& ?9 p0 \. H* F* `4 i/ J/ o
Dim ObjRSA
4 _! j" }0 S/ p4 B; s$ e
LngKeyE = "32823"
, R+ w3 Q6 C: Y' i
LngKeyD = "20643"
% w8 d9 z1 P, Z( G0 D! P3 }% F
LngKeyN = "29893"
& b: r1 a6 J8 f8 ~/ N3 t8 g
StrMessage = Message
! N3 O, b8 p q( l/ B" U, g
Set ObjRSA = New clsRSA
5 d `- X3 Q, d9 O5 s8 T$ h2 @
ObjRSA.PublicKey = LngKeyE
9 Y, [5 S3 Q1 J5 B
ObjRSA.Modulus = LngKeyN
- E& \4 M$ j; c4 b
Encryptstr = ObjRSA.Encode(StrMessage)
2 ]; A3 R4 v4 m: J6 x3 d! ^# h
Set ObjRSA = Nothing
; v0 G+ M) A5 F! \
end function
9 U. S$ r9 V. @# r0 R! h: v
Function Decryptstr(Message)
! Z2 w v! P/ A% S; ?
Dim LngKeyE
0 @& r& H3 U6 @: P, B" J: ]
Dim LngKeyD
1 ]% J4 S+ v$ u) Q5 A2 c
Dim LngKeyN
$ _: U' Q* g# W+ _. h# [8 V
Dim StrMessage
- B Y) a8 R2 c ~5 o" Z% a
Dim ObjRSA
8 S. N; [) s1 e2 c# P
LngKeyE = "32823"
; V8 V5 J# l3 J4 Y4 V% D1 R
LngKeyD = "20643"
" I q) e, q2 c% T
LngKeyN = "29893"
5 a% i& Y+ P& X" d
StrMessage = Message
8 j1 l9 d8 U, V" w
Set ObjRSA = New clsRSA
+ c5 U/ R; |7 C; X* A
ObjRSA.PrivateKey =LngKeyD
' c& O# H; e$ o& e7 Q! |
ObjRSA.Modulus=LngKeyN
9 {" x6 K; l) K0 Q" F
decryptstr=ObjRSA.Decode(StrMessage)
. A8 P& v; I' S) W
Set ObjRSA = Nothing
; Z8 n4 {# }1 o
end function
$ r% [; N* h: D% r+ c8 v% ?) l
%>
, }( Y }, R# s2 P+ ^' N$ l
===============================================
* K: z) _* u2 D7 K: X. R, d+ i
7 h! w+ J! h' ~4 @" F! s* _5 S
还有一个用于测试这段代码的test.asp
& X6 ]8 F, O, ? T0 y
有兴趣的自己搭建个IIS测试下
, }; m( [ o+ G$ j
<!--#INCLUDE FILE="RSA.asp"-->
) j' K8 }! b( `- g! R* n9 Y$ q0 @
<%
0 O' A3 J: r; ~" m" ^4 }) p! z+ t
function Encryptstr(Message)
? l) Y8 b0 ] ]
Dim LngKeyE
- f4 h u' z/ n4 @; z: Y- r' v# `7 K
Dim LngKeyD
& w+ q( R2 q9 B6 N. ]
Dim LngKeyN
' ]. F+ v, S' E, X5 i+ I
Dim StrMessage
* C- Q Y; Y8 y! B
Dim ObjRSA
+ L% M! H5 Y$ g$ w! K w8 Y
LngKeyE = "32823"
6 U# I" J9 _( R6 C% c
LngKeyD = "20643"
2 x5 w' C' p- n% K) m$ s: }
LngKeyN = "29893"
9 m; t! G0 U2 S
StrMessage = Message
k6 A2 y: \) L1 n# P1 ^8 G
Set ObjRSA = New clsRSA
- u2 S7 V# q3 ?! q* V! m
ObjRSA.PublicKey = LngKeyE
7 ?! J% K9 ?" P4 u$ C: Y
ObjRSA.Modulus = LngKeyN
, A1 I1 h% z5 W$ N
Encryptstr = ObjRSA.Encode(StrMessage)
8 O9 m l/ k9 _' s* J* v
Set ObjRSA = Nothing
9 O$ V5 V d9 `0 a* M$ D4 C
end function
7 n3 h% c7 n- l8 ?7 x( O: ~1 }
function decryptstr(Message)
& P' v! s3 B* N0 z- T" J; N
Dim LngKeyE
) _5 X. R% ^" V' q. V* I1 g
Dim LngKeyD
: z6 d" x$ r E+ A7 q* w# W) `
Dim LngKeyN
2 s6 F! f1 h, a+ u
Dim StrMessage
) V8 }5 B" E# ?' m o
Dim ObjRSA
0 |' W/ G9 U+ ~6 o
LngKeyE = "32823"
, L: I6 M) g* k
LngKeyD = "20643"
4 G2 R9 C) {7 i9 B8 \
LngKeyN = "29893"
8 R$ m+ ?. Z) X7 u
StrMessage = Message
, S. D5 k6 K# e0 f" i# u* m
Set ObjRSA = New clsRSA
1 C% Q$ ^; ~5 P( l6 G4 O
ObjRSA.PrivateKey =LngKeyD
$ m q9 N4 Q6 k- c- }
ObjRSA.Modulus=LngKeyN
@ D4 Q: h( N
decryptstr=ObjRSA.Decode(StrMessage)
[7 a2 a1 m. U5 i- R9 {: T* M
Set ObjRSA = Nothing
: N6 _! z3 z' b. e; ^; L
end function
; k3 p: I: j6 p& U a. ~4 o4 b
dim last,first
7 s5 `7 P6 B8 X
first="!@#$%^&*()"
! d% k) z7 r. ~! \1 F: A
Response.Write "加密前为:"&first
5 X% i" m/ o1 {& ~1 J+ P
last=Encryptstr(first)
+ F |( y/ f, G" u/ p$ @
Response.Write "加密后为"&last
8 l9 U& Q, T, {% n5 w* l; A
Response.Write "解密后为" &decryptstr(last)
; s$ l/ n0 H5 `+ ?8 g
%> ==============================================
: v2 |+ G, X! m$ l2 `$ x, o
剩下的就是字符的对照表了
- c V6 N& a8 |$ L- o4 n
===================字符集================
9 u9 u! u' C7 v
1_____6EBB
l1 L( p/ P/ Z, `, [
2_____5C1F
4 P# i0 t6 s* ]8 \: n9 E i1 J
3_____4D75
) l5 H; Y. ^) v" D) ^! e
4_____26CC
; C" {' S4 ]9 I0 @9 ~
5_____4F88
$ {) c5 u+ m' ^9 |" p
6_____3F4E
2 A' _ o J" ]9 `1 y4 I6 i, L
7_____0A9D
, g/ |8 e8 R2 U6 k1 b3 ^/ z
8_____1A1C
% M e4 f2 g; j
9_____6D20
8 z- S7 h, I! i, i9 |
0_____1089
: F4 U0 ~, p9 u/ X/ A2 M
a_____0F3E
* D+ P( @" n$ h+ w/ T3 ?3 O
b_____3159
6 o( z, p+ j6 B6 D* M5 p) N! V6 s: j: N
c_____3517
! r* h) h2 ^; _8 Y
d_____419C
" H$ D! n" j/ P- I1 S4 f
e_____615C
" V: o+ \2 d6 F4 U, X. }
f_____556F
$ u/ i) \7 ]8 k# ^9 k4 b
g_____2B7F
: k! B9 @, q9 d- \- E% K$ m
h_____0F9C
9 Z2 t; L! q7 \# m, Y, N" Y6 ~; Y# R
i_____00FA
4 `6 r* d$ d" h. _0 t4 M
j_____5A50
3 j% t& h" ]% P) e
k_____2850
1 P/ p' e! S/ I
l_____3E7B
$ }9 v4 x$ \' k. W3 h3 Q
m_____71C5
9 d$ Z# o4 }) _$ E% i. K) Y
n_____1FC8
$ Y" f. i7 b& N+ V4 `
o_____74C1
4 U2 I# F& n& v2 U- O( _
p_____5FB8
& g& k. M4 W! A
q_____6085
/ o; K4 M2 D8 m+ C2 }* B! `& e
r_____3AC4
' Y" P! a0 j6 A. h$ W' H
s_____2F50
; ?& m8 f8 k! I: s4 q
t_____36F8
$ c! K) |% U0 N1 d+ C8 b% s" U* G
u_____7010
3 a; _1 ?. }9 @4 b+ S6 z
v_____0B42
# W7 W% z+ i$ y6 C) m$ |
w_____1C7A
, ^4 \* ~$ h! ~& O) {2 ?4 r
x_____16F8
4 v# a1 Q' u3 B( D
y_____2EE7
- t7 ^( N0 Z+ q- W" D9 v
z_____5CF3
, p( f( g4 r8 W+ T/ O$ [" N
!_____6233
9 y4 x" o/ R9 K/ d/ |9 U0 c+ K* y* x' c
@_____3A45
) F7 ?2 \" |0 `1 f8 e' {* [+ k4 `
#_____2291
. |0 o- v @6 N2 |8 H
$_____5D5C
+ r$ ~% }% w, y* ^+ w; Y
%_____09B9
. n3 ^: e; |* V! e; ^" K
^_____43EA
# X0 z: V8 U0 {! @# z% U% W: P
&_____62B9
" p- M0 T3 m* |, r' Y! z
*_____6301
8 \3 U9 x8 W" T% x
(_____4659
6 N2 \* O% m. G4 h5 M$ ?1 G/ T
)_____5C82
作者:
鱼儿无心
时间:
2011-12-4 17:17
收藏了。。。。。。。。
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2