返回列表 发帖

[原创文章] 关于国内某知名大学网站加密算法的研究

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
4 E8 ?: r$ k2 x  O* n原始出处:http://www.3ast.com.cm
; }( s' h' o, {1 H  E8 R
: _: C6 v! L( c8 k$ R看不懂的直接绕过
; p# L& e+ f) N' b" y) Z. Z  o8 j* t加密前为:hwy123456
* g! [7 P7 I  G# H) ?& s- a加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E! s: Q' o7 {* W+ V6 q
9 {  d0 U1 I; P! R& B( y7 W4 e, C
============================================
5 M& m+ T( R6 p# Z8 c上面是当时自己校内的心情。现在已经解破出来了,分享给大家0 |  u  ~8 e; y- x: ~  w8 u& j
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法  d  J2 J) [, h7 z, ~( s9 O% ^
以下是RSA算法文件
# G' Z$ O- N# r, [! z  w* D, l; ]/ C( x# n
文件名RSA.ASP' w% \  V: [4 t/ L2 D5 N$ Y/ ^
===============================================
. M/ {% z/ K# @2 ]8 l( |8 r<%
3 z. E2 G) @" \% [/ [. WClass clsRSA
4 Y, e" N, u# {4 u5 L* k) ^, [Public PrivateKey / Z  z! K1 n- ^
Public PublicKey
' g3 j6 @; X/ c1 T. P  HPublic Modulus 6 Z' Z  ], ^4 K( i
Public Function Crypt(pLngMessage, pLngKey) 8 D3 T- [( x- m- e, M; z  V
On Error Resume Next
& }# o# i# ~1 }* g4 r4 L% j& qDim lLngMod
% ^! O+ h8 _* e) ~; ?Dim lLngResult
8 O7 x" P( G# ~+ r2 u. b+ X" GDim lLngIndex
( Q& j+ }4 P" C6 M1 _If pLngKey Mod 2 = 0 Then
: j4 k; {; {& r+ ~( ^( w9 IlLngResult = 1
( H0 Q$ _# i6 `) f" S* ^2 zFor lLngIndex = 1 To pLngKey / 2
0 ~4 k0 C0 j8 y. k/ ylLngMod = (pLngMessage ^ 2) Mod Modulus 5 a6 y* _. e  \& \  Z2 g! g
' Mod may error on key generation * }: a3 l, t& k3 k
lLngResult = (lLngMod * lLngResult) Mod Modulus , X) Y9 n/ u3 T* w3 o* v7 B
If Err Then Exit Function 0 W8 M* e; P; H% r
Next
& J) A+ T; `$ o  a+ U8 J) h7 MElse
* v- m+ B- m# xlLngResult = pLngMessage ' V, \! J" b9 E4 ?2 W2 r; G( L
For lLngIndex = 1 To pLngKey / 2
5 z7 q* R" ]3 w8 UlLngMod = (pLngMessage ^ 2) Mod Modulus $ d8 S: \& v, y7 q3 m
On Error Resume Next
7 p+ K4 ]* T0 p' O$ `% R9 Y' Mod may error on key generation , `: L8 K7 ?4 I# L- `
lLngResult = (lLngMod * lLngResult) Mod Modulus $ ~# F7 J) o5 n1 R7 T) E
If Err Then Exit Function " l" p0 p  {7 v/ B1 s0 s
Next ( O" }6 C& c% }& a
End If 5 Y' O0 i( W8 ~# ~& U
Crypt = lLngResult
, h7 y# s% A: g/ z; N$ R( s) tEnd Function
! w" u  b( T( G6 L
+ R, U. [% |. y* F9 g; w' |Public Function Encode(ByVal pStrMessage)
( M1 q6 {9 I! v2 fDim lLngIndex : Q" }2 ~( F* a: D& r9 H3 ~
Dim lLngMaxIndex 6 e( P& ^/ S2 @/ H9 d* i- Y
Dim lBytAscii 0 f" p  Q2 P! M# C# X
Dim lLngEncrypted
, x& L0 E% I7 R8 B0 ]lLngMaxIndex = Len(pStrMessage)
0 E9 ~8 D9 `! F- d" _; QIf lLngMaxIndex = 0 Then Exit Function
8 O& W+ C  b: X# U) }" }For lLngIndex = 1 To lLngMaxIndex 9 T$ F2 c2 s" m8 i
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ) o4 {4 Z8 a7 c* _- A
lLngEncrypted = Crypt(lBytAscii, PublicKey)
1 M  l/ X$ R& ~1 @* N" G7 r: iEncode = Encode & NumberToHex(lLngEncrypted, 4) 4 l# K* b3 y. K& y2 I
Next # p. B) A3 W0 q8 p2 g; }
End Function - H& s) q' t+ ^1 u' N9 m6 f
Public Function Decode(ByVal pStrMessage) ( X+ p3 D! ]. x6 q
Dim lBytAscii : A! }# m/ d3 F! s3 e# U. l
Dim lLngIndex 2 \3 k0 v1 p9 K/ x3 T1 W" l, v6 I
Dim lLngMaxIndex
, |2 s* B4 b* \6 h( ^6 D: u) _Dim lLngEncryptedData
2 H$ D- T5 \; g) \8 E- z* EDecode = ""
4 I# X7 y* o, p9 ]& P6 hlLngMaxIndex = Len(pStrMessage) 6 f2 D( S5 ]8 l7 x
For lLngIndex = 1 To lLngMaxIndex Step 4
; n8 J& g7 r6 K; W5 j( k) ^+ N( jlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 v) Z2 p( B: Y- y9 @% _
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
9 o5 ~: {/ B# M: F* r' iDecode = Decode & Chr(lBytAscii) $ }! I6 ~& v9 R* b
Next - M# _% U/ m" [8 G# H' L
End Function ( H$ l% x, ^; P9 M4 y( ?6 U9 a5 U
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)   ]& A" ?+ u0 I+ Q
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
" P$ R8 x) k+ G) D6 K, GEnd Function + F; H4 @; o$ k  B  {' Q
Private Function HexToNumber(ByRef pStrHex) : Y4 S8 r0 n! d7 `8 T4 Y* `
HexToNumber = CLng("&h" & pStrHex)
; x7 }  ]6 \9 B  `End Function
- M, D8 N. \: N0 I( XEnd Class & `% G% C0 \* P& i$ R4 q. J2 W
function Encryptstr(Message) / p! [5 \6 R( X  y
Dim LngKeyE 4 K' {. I, U" u) q5 o
Dim LngKeyD
3 W; w2 n5 P, ?  q# e2 jDim LngKeyN $ C7 s( C7 ]6 ?2 v5 {
Dim StrMessage
: m8 o8 T$ Z/ B) t9 D9 t6 DDim ObjRSA + S( `& [" o4 H( a: `
LngKeyE = "32823" 6 O/ n8 f$ X$ N
LngKeyD = "20643" " p2 t+ M+ P, c1 B! ?
LngKeyN = "29893" 9 C& D1 b$ }+ ?( ~  _2 k) U
StrMessage = Message ) W, [$ t- g: R$ q9 f' g8 Q$ h
Set ObjRSA = New clsRSA
* @, V3 ~$ h- C% ?. \5 AObjRSA.PublicKey = LngKeyE - w  d) Z: c( {* x
ObjRSA.Modulus = LngKeyN
. k# d0 o$ a' GEncryptstr = ObjRSA.Encode(StrMessage)   [" K) {& O! i/ W
Set ObjRSA = Nothing 1 f! P6 T1 A: h$ t2 g7 H# s
end function1 v0 k9 M' j* M* t
Function Decryptstr(Message) ; ^5 T9 d/ A2 }8 A: o( L
Dim LngKeyE
4 c2 X% b' v6 x! c8 l0 b3 X: N$ L, D' B5 IDim LngKeyD % I+ R0 S2 P1 _' C& ?
Dim LngKeyN
8 A4 ^" O) Q7 O* e/ bDim StrMessage
6 b+ }' ^# s. L# G( _Dim ObjRSA
7 O/ G! \# T' e6 }5 }/ {/ }LngKeyE = "32823" ( M& C/ g/ g8 ?3 Z# x2 C
LngKeyD = "20643"
# H# H1 m& H( OLngKeyN = "29893"
1 N- d* t3 [% Q- q& f, q+ K+ mStrMessage = Message 9 ]9 h; H- V& _2 u6 L
Set ObjRSA = New clsRSA
6 o9 a/ s2 t: kObjRSA.PrivateKey =LngKeyD + `3 K, B# v+ j8 @' F
ObjRSA.Modulus=LngKeyN
% o. m5 v* }$ P" o! Mdecryptstr=ObjRSA.Decode(StrMessage)
8 I& U! e3 w. `+ L/ o) p1 NSet ObjRSA = Nothing
2 s+ B7 z. @  f  p) t9 ~& E" send function
) i5 U8 g  R% b9 G  c* B% ^%>: o+ _. s: o  t* U4 r0 r
===============================================
9 R( w+ {+ r' s5 L+ }
6 y& Q) p  b1 ]还有一个用于测试这段代码的test.asp
7 f+ R, [# T$ ~, s! \有兴趣的自己搭建个IIS测试下$ F' z) n& u$ _6 P5 D; @2 ~, s
<!--#INCLUDE FILE="RSA.asp"--> % d, o& B$ n+ c, Y
<%7 _/ H% i  y' ]+ N8 j3 K3 B
function Encryptstr(Message) 7 z* h* l; q: P- X  ~* \1 \
Dim LngKeyE * A" a8 q- B" V% B
Dim LngKeyD
' x# `  X) b( [3 z, @. \& vDim LngKeyN : O: v! a  K4 s. v' K
Dim StrMessage ( e3 c/ a! f& n. X
Dim ObjRSA
+ O! {3 \+ n3 O. m9 v" q# l5 @LngKeyE = "32823" : S& q2 p% u( R8 u0 N
LngKeyD = "20643" - P# @0 n; N) M3 |9 n: e
LngKeyN = "29893"
7 f& c0 V/ D- W7 Q7 l$ T! a; e$ }' fStrMessage = Message
& n* W( \- s6 A  k& r  p; _Set ObjRSA = New clsRSA / }5 C" j6 s0 l' Y3 L% ]
ObjRSA.PublicKey = LngKeyE
4 l! q/ M+ K. L7 ]! y4 vObjRSA.Modulus = LngKeyN : S2 Z6 N) [" `1 l' X0 p
Encryptstr = ObjRSA.Encode(StrMessage)
) K+ {& r7 |, R+ ?! q- pSet ObjRSA = Nothing 9 F5 O+ w4 s: N/ {2 Y
end function
0 |  j9 }6 E! R2 ]- f" F2 @function decryptstr(Message)
- J1 x  ~) W' x; B0 WDim LngKeyE 8 w8 @" z8 A; Y8 B0 ^" d% l
Dim LngKeyD   ]1 G( k4 U" b, R
Dim LngKeyN + e2 y8 ~, l5 d/ r# \8 r1 u
Dim StrMessage ( P3 `  j6 B+ ^0 m/ J& t
Dim ObjRSA 2 K# k+ z+ K$ e1 K+ @
LngKeyE = "32823" ( `6 \5 }5 ]+ D9 E9 b8 d
LngKeyD = "20643" : P5 [- R1 A' ]5 b
LngKeyN = "29893" " p0 l! e; ]6 N! Q5 {
StrMessage = Message 1 H  {1 Z* L7 C" `1 x8 h
Set ObjRSA = New clsRSA
1 U9 Q- t- j, ]. I1 ^ObjRSA.PrivateKey =LngKeyD
# z- A0 t' t( ZObjRSA.Modulus=LngKeyN
; m/ ^3 p- w6 F, u( s+ Y* Mdecryptstr=ObjRSA.Decode(StrMessage) $ Z4 g0 X* E# y( d8 ~' t) Y! ?
Set ObjRSA = Nothing
4 [: Q% r* h" x% A  N+ P: [end function
5 X  f: ~3 l* j/ c( k5 L) }- x8 c; Wdim last,first 7 {9 P. w2 ]6 X, t; _
first="!@#$%^&*()" ; q7 |: Z+ _! m9 g! ]+ s
Response.Write "加密前为:"&first
6 F" R2 L* S0 m6 X1 k3 J" d) slast=Encryptstr(first) / N9 @9 |/ g! K- c8 v
Response.Write "加密后为"&last
+ r0 K/ j* t1 {Response.Write "解密后为" &decryptstr(last)
, n7 u5 A& K. R! Z! T( |  Z%> ==============================================
$ \0 m1 K9 c( z1 U* n8 m剩下的就是字符的对照表了
2 K8 ]0 _5 T% S9 Z9 b0 j/ V. B===================字符集================
/ a" j  x5 c) b; ?1_____6EBB& g( m2 c# i  T# ]0 `- Y
2_____5C1F( ]8 w' s/ z" w! m) F  r1 p
3_____4D755 A5 T' {7 P$ r: [
4_____26CC
$ q9 o% F; w0 Q4 k% c  `5_____4F88  N; p4 b; p' w) W. ~
6_____3F4E
, F" F7 n3 s/ V7 V7_____0A9D. y$ ^* q1 U$ P1 ?- l2 C- D
8_____1A1C& K. T" Q) }; I9 k' E; e; j
9_____6D201 k+ d8 B& m! i4 T- |- P- g, w  M$ o2 L
0_____1089
  _0 q  q0 K0 j/ J; e7 sa_____0F3E& C+ \/ r  m" D! b8 t4 b" p5 {
b_____31592 m3 n0 {3 l) u7 Z
c_____35177 n8 Z3 ]5 M: _1 K
d_____419C
) i4 W+ J6 w/ A* ?8 C" `) U( `8 j6 Oe_____615C
/ @1 Z4 K. [# c( P) B1 L9 _f_____556F
; w* ?# J6 ^2 F0 B1 J+ Z. dg_____2B7F6 q+ M  a, S4 J
h_____0F9C
" b2 t. U0 ]5 H' Q4 t& Bi_____00FA
$ `% w0 _* F. i  ~7 i$ `5 z& Qj_____5A504 e% f( A2 ?! q! Z* s1 A( ~5 Y8 r; k" K
k_____2850
/ {& `# z3 P* `' a* Ql_____3E7B! E( N0 A1 ?( z9 ~
m_____71C58 w9 D. M' {  E* H7 y
n_____1FC86 V7 N/ `' j. d: ~2 {
o_____74C1
; ], l6 V3 g3 `& op_____5FB8
7 X5 z) o  t8 U9 k6 ~5 O0 D$ hq_____6085) d0 O; S# N1 C/ y; c6 v
r_____3AC4+ o+ F0 P3 f. Y8 r2 d4 d% \8 G
s_____2F50
3 [+ u0 l% x$ p2 D: s% u+ it_____36F84 l, Y; d* B7 R& Z
u_____7010
2 v" w8 _+ @3 {% ]2 ]) ^v_____0B42" J+ g  q- M9 b7 U
w_____1C7A4 P% Y% Z8 r8 w) r! Z
x_____16F8
& I8 O4 {0 o8 Vy_____2EE7
; ]" p( w% k: m+ v* w; rz_____5CF3
- I, e2 Y0 M6 f$ F!_____6233
( D% B. F  s5 z9 G@_____3A45
! G' w+ a% a1 X8 |  z/ ^3 @#_____2291
0 F* r( n6 z  E$_____5D5C
! i9 O1 ]8 O* L+ s3 k$ Z6 p5 u%_____09B9
) U( N- e- h) X^_____43EA# ]! b# z( I5 I# t) Q) }. ~4 W) ~
&_____62B9
8 q% ?1 T7 C# r8 _. U*_____6301
& G+ G1 u7 w7 ~, N" @# k* a. _$ e(_____4659. _3 ~% B+ m# ]6 U, h& T9 c
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

于智者同行,你会不同凡响;与高人为伍,你会登上巅峰

收藏了。。。。。。。。

TOP

返回列表