返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- D4 z5 g/ o' ^
原始出处:http://www.3ast.com.cm
: b+ a& H/ h) N* w% P! k: F8 j$ P; [6 B. a( `, i* B
看不懂的直接绕过* w5 ?  n8 u7 {# d/ b
加密前为:hwy123456% O- O8 |: h: ]# s# ~$ `
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
/ t5 ?- j) K$ D$ l* z) m* h4 |
& Z8 e$ @( G; U============================================0 Y6 m* _" A' i5 z; _/ d5 d
上面是当时自己校内的心情。现在已经解破出来了,分享给大家% ~, D7 E& Z& _, k- l0 G
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法6 o1 ]1 ?" z7 d0 |' w: S0 a
以下是RSA算法文件9 D& F/ {5 K3 d+ Q- Q, M

# G7 Z  ?; o; ?/ Q0 f文件名RSA.ASP' Z2 Q. a) A. S; W; m) d+ v/ W1 D
===============================================
- X9 D9 W$ }$ ?' y: W1 A<%
" e4 M: z7 h$ O) kClass clsRSA 9 c: X; |* p2 U  k+ ]# w6 Y
Public PrivateKey
8 m  ?! k, L$ ePublic PublicKey
5 @; \, V. \- B8 U3 Y( g& A& B1 ?3 jPublic Modulus 9 S& K3 C, L. T; i/ h- l9 f
Public Function Crypt(pLngMessage, pLngKey) 8 d# @7 C% T: \5 |& L
On Error Resume Next
! a* T# O' v8 EDim lLngMod % H0 Z3 I5 k4 |5 k
Dim lLngResult 0 u, w4 {% B5 y+ X! q
Dim lLngIndex
/ T! S, b2 {5 h% GIf pLngKey Mod 2 = 0 Then
6 y# ^; M- v( @8 a: h  e5 t9 _lLngResult = 1 4 Y' ^$ @/ j: q$ d2 H3 Y- }
For lLngIndex = 1 To pLngKey / 2
# Y9 N7 x6 ]$ S9 C! Y1 B3 U, n0 D* ]lLngMod = (pLngMessage ^ 2) Mod Modulus
, k: }) H- _* a% ^* N& N1 l' Mod may error on key generation
0 k6 Z) x1 t; k6 w9 f  W0 }, ZlLngResult = (lLngMod * lLngResult) Mod Modulus . j, j6 q4 ]; G7 |6 Z% D; ~5 }9 }
If Err Then Exit Function
- V% W  y4 N! S; l  G$ m8 o5 f! z; ?Next
. g4 D) e. `# L9 c: fElse
! K9 e! Z+ _  f: alLngResult = pLngMessage 0 Z0 U% X; b" X8 V
For lLngIndex = 1 To pLngKey / 2 ( @9 v- m4 U; j" f0 ^
lLngMod = (pLngMessage ^ 2) Mod Modulus 9 M3 R7 x3 w2 u$ o& E
On Error Resume Next
' l; v+ {# ?  n& }3 @' Mod may error on key generation 3 @, R9 {' ^+ s5 |" a
lLngResult = (lLngMod * lLngResult) Mod Modulus 4 t7 o, r. ]9 e/ V, {
If Err Then Exit Function : j7 _2 c0 p4 S
Next : I  K! ]/ x- \0 F  t; k
End If
1 g" N* ]' s% SCrypt = lLngResult 8 s# q- v2 A, b" P: O) H6 I6 k7 S
End Function# R& s  u' K# a. _! U
2 K9 J2 `2 U0 q+ g  ^- Q6 O
Public Function Encode(ByVal pStrMessage) ' ]- }% v5 i5 h9 g
Dim lLngIndex
2 |  r( I* F; q8 U+ XDim lLngMaxIndex
1 V3 X! O, ^2 Z$ d% wDim lBytAscii 2 v9 }. o9 C* K- D
Dim lLngEncrypted + P5 m, P0 ~( ?3 z  J+ l
lLngMaxIndex = Len(pStrMessage) ( j) |4 X! n+ m
If lLngMaxIndex = 0 Then Exit Function
/ ^5 K, B5 N# m. n* N2 y& ]For lLngIndex = 1 To lLngMaxIndex + ]# D4 @3 ?. ^3 ?- W# n
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
. r6 t6 D. X8 K. P* Y4 ulLngEncrypted = Crypt(lBytAscii, PublicKey) 9 S' Y5 V: B; S: k& T
Encode = Encode & NumberToHex(lLngEncrypted, 4) ; k+ n; Z/ {2 ^1 F+ K1 V4 w
Next & H8 F2 [  g2 K5 J  m
End Function
- w+ u, @' H. \' Q! o" o# j! ~6 _8 ]Public Function Decode(ByVal pStrMessage) 9 i& b# c: B: f- _' e. U
Dim lBytAscii
; D/ m4 O4 V) ~7 WDim lLngIndex / {5 E% ^5 Z& |2 O
Dim lLngMaxIndex % e; _( b2 W! b4 v7 v& i( v. [
Dim lLngEncryptedData 4 f" p& t+ I$ }5 v
Decode = ""
! S5 W, u3 k% n0 y' MlLngMaxIndex = Len(pStrMessage)
1 T" W) B& ?7 z3 J9 u7 ?For lLngIndex = 1 To lLngMaxIndex Step 4 5 W- _1 Q7 b3 r. V6 [! C
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 0 o+ r* m6 p0 d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) : D, z- z& [' J+ v! L- M4 d% D
Decode = Decode & Chr(lBytAscii)
- G" x2 n/ j, TNext : L9 W2 I5 M  C' L
End Function ! G+ ]0 u8 K: W0 E, N1 g7 m9 g
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 }0 b% [* `# c# c5 C4 A% e5 u
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( a0 N- Z1 i9 D, R( j! ?End Function ' T! R) l! q8 u7 T6 @9 i' a
Private Function HexToNumber(ByRef pStrHex)
8 r# O" O* T; N; T% AHexToNumber = CLng("&h" & pStrHex)
$ P% h5 d5 ]" B: p  {End Function 4 ~: Z; r1 W! u: n7 M
End Class
* Q" L: Q0 g1 t* f1 W( Tfunction Encryptstr(Message)
  }" I* ?4 y. iDim LngKeyE ; k1 Z0 I0 o. ?) L, [. o
Dim LngKeyD
  j1 s( C# f3 L6 a1 k- lDim LngKeyN ! T5 H5 ~. h0 H" ^8 Q6 s
Dim StrMessage
) v( ?) G* v2 i. u" ~2 lDim ObjRSA 6 T& V, I+ K/ O- H
LngKeyE = "32823"
: T1 N! W) ^! V7 g  @) L+ pLngKeyD = "20643"
$ H* M1 R& ?7 S4 \1 BLngKeyN = "29893" - H  H3 p5 d; N- A+ A  B
StrMessage = Message
& u; J8 h# ]+ V! d& \Set ObjRSA = New clsRSA
- b. I' Z' Q! t3 uObjRSA.PublicKey = LngKeyE
" x6 \+ \# Y4 MObjRSA.Modulus = LngKeyN
9 k4 l  d" D0 z2 AEncryptstr = ObjRSA.Encode(StrMessage) . `3 o4 M0 I3 v4 E3 v
Set ObjRSA = Nothing ) r! V- Q$ i1 f- n+ U& w0 v
end function
0 _1 \6 C; A! T! v. [5 iFunction Decryptstr(Message)
( g# J/ s. F" O/ I, TDim LngKeyE : u9 A- r$ D. s( V! W
Dim LngKeyD
5 J3 B7 m  b# NDim LngKeyN ( z' m2 _6 `3 l, b5 j$ Q5 i! C
Dim StrMessage ' n6 ?- g. |. Q( o' y4 z
Dim ObjRSA 5 S1 w5 x$ m# T5 r/ r
LngKeyE = "32823"
, X- ?; q( @' u6 u' n. p4 R' pLngKeyD = "20643"
: b- U9 s0 W& v; g& KLngKeyN = "29893" % s' l2 t% n2 R! s7 B; W
StrMessage = Message 0 L9 n4 j+ U( P, v! O6 F
Set ObjRSA = New clsRSA
% m- c. e% H0 v2 V5 n- |' fObjRSA.PrivateKey =LngKeyD
' s: `% x4 I* Y* p9 X) U3 uObjRSA.Modulus=LngKeyN
' C2 I: l0 r: H9 g8 Jdecryptstr=ObjRSA.Decode(StrMessage)
8 m! z( u! Z/ i2 X! ]& rSet ObjRSA = Nothing 8 H. L1 ]% X1 R* Z
end function $ H5 I. ~8 g; T
%>
) s  g: s3 E5 d! A/ p4 s8 W===============================================0 Q1 S( z* Q- J  P! r. v
! W) f, H! a/ D0 N
还有一个用于测试这段代码的test.asp
. }5 V; |$ Y/ s" l4 J有兴趣的自己搭建个IIS测试下  e, T% U# a7 G) |7 [
<!--#INCLUDE FILE="RSA.asp"-->
) D$ M. ]+ Q, J  E' I<%8 b! G% n( K1 o2 ^
function Encryptstr(Message)
" [& S  s1 L3 Y5 B' |: bDim LngKeyE * G$ X9 `1 B& r1 R: U; k
Dim LngKeyD / ^# T4 {/ ^, {6 l3 g& w
Dim LngKeyN
" z. x% e! i# F+ i: q# VDim StrMessage 7 u2 u$ k) s. z  p
Dim ObjRSA
8 s8 J% |3 M( S" i. Y! f+ iLngKeyE = "32823" + O% I9 H  L1 Q0 |  S+ i
LngKeyD = "20643"
& ^4 ^! n( y' ~4 i( x3 {LngKeyN = "29893"
" q& P8 N5 n( CStrMessage = Message 1 W/ T- A: i- T. |2 f9 H; ~, q6 f! P
Set ObjRSA = New clsRSA
. t9 M8 C" A( W9 oObjRSA.PublicKey = LngKeyE # O9 O# |( i4 S( J+ z" j
ObjRSA.Modulus = LngKeyN $ b9 ~/ W) w1 w% h2 J
Encryptstr = ObjRSA.Encode(StrMessage) ! b' K$ X$ v5 J0 p* y5 I' n2 z3 q
Set ObjRSA = Nothing & \, V* ~4 `  o$ g+ B9 W7 _& ?
end function   N9 [$ ^+ [3 P0 F: \1 r
function decryptstr(Message) . D& w& q6 z, N7 B& E$ t; g
Dim LngKeyE
; ^1 [2 k+ r$ `% {0 a# TDim LngKeyD
8 c$ x; t4 ^2 f' n; _; E# V0 }Dim LngKeyN
$ s/ O- X$ c9 E+ hDim StrMessage
! Z5 f" @5 y! x; `  J1 m( ^9 \Dim ObjRSA
8 u# J  o8 J) _; |9 {% M/ f6 t9 hLngKeyE = "32823"
( Z0 `4 H5 C7 \7 e- E' dLngKeyD = "20643" " n: A6 D! p* Q2 F/ `
LngKeyN = "29893" # `. t2 i  K" ?& z
StrMessage = Message 6 e; X6 J* u9 A
Set ObjRSA = New clsRSA
6 q; [& H, J" M2 j  OObjRSA.PrivateKey =LngKeyD
& ]/ }1 w0 ~0 ]ObjRSA.Modulus=LngKeyN
; @- y  T: Y; L( f! ldecryptstr=ObjRSA.Decode(StrMessage)
4 N! L+ s+ ?8 W4 C3 eSet ObjRSA = Nothing ) J* d, O( ~: K- e6 O
end function   Q$ ~" k  _6 f
dim last,first
5 U8 y# c( L$ p5 wfirst="!@#$%^&*()" / Z$ }: R2 s  X7 r  ^
Response.Write "加密前为:"&first 3 _5 r8 |! L+ e, a2 {$ A6 E
last=Encryptstr(first)
0 a- Z* _( W: B+ G! o5 W' |  u: ]Response.Write "加密后为"&last
- M9 R& |6 [5 B& UResponse.Write "解密后为" &decryptstr(last)
8 N6 [+ ^% R8 n%> ==============================================, \1 x8 f) p- j( \1 f% w
剩下的就是字符的对照表了
0 T* Y* F0 ~- E) F===================字符集================, w& [1 v- h# l& z9 r! @0 w
1_____6EBB
: K7 w# p1 O. ^% ]2_____5C1F' |% _3 f! p8 Y1 j% g: [
3_____4D75
# g( N) _9 t1 L" x7 d* J0 T1 z0 d4_____26CC6 z3 s: ~- _! ^- @& j+ j! E
5_____4F88
0 x- D* i( \2 [$ R* j6_____3F4E
7 Y- u9 j2 n) i8 P- D2 a7_____0A9D/ \4 p: b: @1 q0 e. y
8_____1A1C
1 j, `/ B" v/ R& u6 D/ O9_____6D20( k$ a9 t3 D" P2 B
0_____1089
. o7 `- ]" X3 u2 I6 ^a_____0F3E" Y' R2 C" V! k3 i' |
b_____3159
* q5 L- @. p5 y. |" Cc_____3517
0 V4 T% G- v) h3 r! ~d_____419C
  W4 D1 K6 ~4 U# M* le_____615C3 H& t: A1 B+ v- G  _: ~0 ^( B# p
f_____556F
6 p* t+ o2 ]" T4 Bg_____2B7F
) h' V7 d- K& x' k* Dh_____0F9C  C' N2 ?5 J0 C4 l
i_____00FA
6 i% X5 [2 Z  Q0 R# N$ j4 z- a* e5 D9 Wj_____5A509 v4 ^; {' ^2 B  c8 x2 X% M
k_____28501 N* G0 ?, J* r8 ~$ g" }% l
l_____3E7B4 v& ?! g  Q) a+ G
m_____71C53 Z0 ]  X' F' k
n_____1FC83 F1 n$ M$ ?) _3 U( j3 e( P5 C
o_____74C1
* s- F% _( v0 ]; k- |9 ap_____5FB8: v5 E/ }/ P& `
q_____60852 g3 u/ H( `/ r, D+ W" R  A+ l
r_____3AC4
  V4 C, W8 R& A3 A. Ps_____2F50  x: a1 u+ l$ \
t_____36F8( O  O" ?& h0 H- ^  B
u_____7010
9 }  s0 S& M; o/ e- ev_____0B42
( E0 }8 a$ G& U4 P0 Kw_____1C7A8 O8 r# `+ Y0 c" s4 q5 `
x_____16F8
1 x9 d7 H4 @4 A% ry_____2EE7$ y" ?, V( `7 Q: f1 s8 e3 _6 K. ?
z_____5CF3
1 W! \) u' I" w& W, y& s7 A2 A!_____6233
) J& D( p; t) \9 N' G4 N$ B@_____3A45) c% o, R5 I% J; f/ g, h3 v
#_____2291
* Z! u7 \0 ~/ i3 J- ]4 T& ?$_____5D5C' h4 J9 p+ O- B- p
%_____09B9  B3 ?3 v" ^6 ^, ]
^_____43EA6 {: r' I/ N5 N; J
&_____62B9
6 u& h2 |* x8 m; k*_____6301
8 w1 l: q! Z3 ?2 f(_____4659
( W1 L7 Q8 X, Y( f) {)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表