返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
) {; a: F- k3 p, q6 S* ~  q, G+ [  U: H原始出处:http://www.3ast.com.cm7 h2 }1 p, T0 z! Z2 w
* H% ?" a* r$ `. i! g* q+ P  e! [$ Z
看不懂的直接绕过
$ }. u2 p. |' D+ ?加密前为:hwy123456* K& Y- r' a4 r9 E8 V4 a% K! P/ F. o
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  E0 h; t) `8 d* c1 t: p. I8 j
============================================1 G  ]: o6 n4 `
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" H2 Y( S, H4 _6 e4 \- y( Y
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
* T$ |; l5 e- ~4 Q2 K. |  `* X$ w4 i以下是RSA算法文件+ h5 L$ i. k9 M' h. l" `: G, v- Q. z

' }+ ^# E& f: T" }3 e. {" j文件名RSA.ASP
/ Y5 m8 `, Z' p9 f===============================================
/ f. Z! I, S' c. i" Y( b: r) @& u# w2 `<%
% m% P8 k9 W6 q2 nClass clsRSA ) X: E& Z9 K4 ]4 u; p
Public PrivateKey ) I4 N  r2 T% j+ I
Public PublicKey
% U. Y9 W- j% Q, `( _1 \/ GPublic Modulus " |8 E) O( j" m+ E
Public Function Crypt(pLngMessage, pLngKey)
2 `3 F, }% n9 z' \, E6 gOn Error Resume Next 1 b& U$ I2 p) \$ \" E6 G( f
Dim lLngMod 1 _/ \& E6 |( i4 v
Dim lLngResult
0 m" l* j! H; X5 s6 BDim lLngIndex
8 T: i9 L1 _2 v( z. p: qIf pLngKey Mod 2 = 0 Then 6 M! J3 N7 k" h$ {
lLngResult = 1
4 L4 p- y, K3 b9 _For lLngIndex = 1 To pLngKey / 2 - w5 l- y* m4 S( k4 C6 k1 `# x
lLngMod = (pLngMessage ^ 2) Mod Modulus 4 N2 A* A0 o/ b# t% {
' Mod may error on key generation ' R0 f3 E  f% y/ c) Z
lLngResult = (lLngMod * lLngResult) Mod Modulus $ x% o$ c; Q; T$ _5 w7 v
If Err Then Exit Function 4 n- s) Y, K4 K  {  M, D
Next
+ K; @! ~- f6 R8 }5 NElse ( f. v9 f; |$ w1 t. P' _* w
lLngResult = pLngMessage
- |3 ?6 P: A! y4 w7 g" j7 eFor lLngIndex = 1 To pLngKey / 2 + @, |: [/ i1 L
lLngMod = (pLngMessage ^ 2) Mod Modulus
9 l8 s% y" y1 Y# k+ O0 B) lOn Error Resume Next
9 l+ C# k" A$ j" O4 R' Mod may error on key generation
# y+ ~9 [8 `7 ~1 x3 v! QlLngResult = (lLngMod * lLngResult) Mod Modulus - \8 Q! `, L1 i( q2 H+ @
If Err Then Exit Function ! }. V. E9 _0 F; [7 W, G
Next - @) ^4 ?) }) `' {5 A0 D9 ^
End If " o  B+ ^1 C5 [; Z) L
Crypt = lLngResult
& T2 l5 H0 ^9 YEnd Function- V- R3 H, @; b9 @3 Q; {/ p: G

) [: E6 u9 g7 |% b/ JPublic Function Encode(ByVal pStrMessage) % r7 J( D- l9 P5 x3 H* |
Dim lLngIndex
$ l! \9 @- s( y9 HDim lLngMaxIndex
. F" x! r, b( x% c. }$ e& @* ]0 tDim lBytAscii ! R! m1 [* q, |% J
Dim lLngEncrypted % `% A" E9 _/ H: Z- R2 H
lLngMaxIndex = Len(pStrMessage)
+ c$ L, f  |% v. VIf lLngMaxIndex = 0 Then Exit Function
5 g# ~3 a9 a3 cFor lLngIndex = 1 To lLngMaxIndex
5 Z( c. k9 u) w$ g9 XlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ `# [- x# a* g* U9 b) j- plLngEncrypted = Crypt(lBytAscii, PublicKey)
( p; B7 b2 \" R, e' Q- jEncode = Encode & NumberToHex(lLngEncrypted, 4) : ?0 k5 m# C4 P) I8 v
Next
3 @/ {! O% |& LEnd Function
9 k& g! M$ N9 p3 R+ V7 V: LPublic Function Decode(ByVal pStrMessage)
  Z' k& w" y! f4 f1 u6 s" B6 x' |9 T0 uDim lBytAscii " T# b, C5 |1 X5 v: g  G
Dim lLngIndex 8 d' g. N" N  b$ h, P
Dim lLngMaxIndex
+ _8 v% \7 ~: GDim lLngEncryptedData 3 O: d4 Z' `( x/ [
Decode = ""
! k; V  I4 u9 x+ e; ?lLngMaxIndex = Len(pStrMessage)
) v0 Z% ^6 q$ @/ k1 ZFor lLngIndex = 1 To lLngMaxIndex Step 4
' I6 S( ~6 B, ClLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
0 a6 }: _- S; ]" r* G  ~8 ^lBytAscii = Crypt(lLngEncryptedData, PrivateKey) ! S0 i  S7 Y, ^& p
Decode = Decode & Chr(lBytAscii)
" @* F9 p0 M# r+ @3 V7 xNext
/ ~/ ]$ v3 V! j5 C* A6 iEnd Function
4 @7 ]# y) w& j+ jPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 0 M% H, ^/ A6 y* A2 _! R" }
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) - H. T, k9 h! [# j7 I$ u6 n
End Function 8 g- B. v9 b7 w( G) s
Private Function HexToNumber(ByRef pStrHex)
9 q+ D$ @+ G( y6 Q7 XHexToNumber = CLng("&h" & pStrHex) + Z1 H" a9 Q3 n: W% D; M. w
End Function
" E4 R+ \7 @6 A/ T2 c1 yEnd Class + n" L+ L( K- M1 O5 @
function Encryptstr(Message)
9 o* A) [2 A  u3 \/ A# wDim LngKeyE 2 j% I4 @0 K% T& o6 o
Dim LngKeyD
6 X" S! ]5 `0 z7 o1 ^/ s( yDim LngKeyN 7 D. i* h) k3 r3 W
Dim StrMessage
  P/ z  G5 v$ @! K- VDim ObjRSA
! L4 e, U1 A  U+ c6 j; l& TLngKeyE = "32823"
* p8 ~  K( I  ?' S# XLngKeyD = "20643" ) N8 b8 y  [: v
LngKeyN = "29893" 8 T, }( u+ p* I6 D0 ~6 J* p5 L5 I3 z
StrMessage = Message 1 s4 v. z6 k  v1 F5 `
Set ObjRSA = New clsRSA
+ D, Q' r& b3 H/ q( ~( i. rObjRSA.PublicKey = LngKeyE $ K( |5 E' w* w4 S' I3 G
ObjRSA.Modulus = LngKeyN : {+ H6 R: N8 T, b7 ~7 j: S$ O
Encryptstr = ObjRSA.Encode(StrMessage) * f0 v+ B. ?1 g
Set ObjRSA = Nothing
  c# X- }% ?1 G6 k1 l( d) @end function9 \& w; ~- A" u, K
Function Decryptstr(Message) " X: v4 l0 Z$ |% x% y& ~3 c
Dim LngKeyE , u; q8 E. [  j' [1 }' W, c& @
Dim LngKeyD
! {. P; y2 \8 F7 W* KDim LngKeyN 6 K$ f8 @7 }! ^
Dim StrMessage 8 ?5 e' O  x/ w4 y2 C5 v
Dim ObjRSA ' q; {( W1 u5 I/ ~: a
LngKeyE = "32823"
) F$ _0 B) m) X2 T6 h: q6 w) J% H$ vLngKeyD = "20643" 9 A6 _$ v  L( v
LngKeyN = "29893" ) ~* Q# b$ T- S& u5 _0 \2 S( h
StrMessage = Message 9 h& S5 e% }0 ]/ y7 p* r- S
Set ObjRSA = New clsRSA 0 L& k& }1 i2 V" b6 M$ `3 ~
ObjRSA.PrivateKey =LngKeyD " r: Z% A) _, Y2 D* o5 K
ObjRSA.Modulus=LngKeyN " o0 M! D: _1 E# d! ~- m. ?7 f
decryptstr=ObjRSA.Decode(StrMessage) 9 r1 m3 s  V( B7 a' F6 _1 I, n0 |1 g
Set ObjRSA = Nothing 0 v  ?/ x4 j0 V0 ]
end function & o) ~1 j0 Z- x: T" \( Y4 v
%>9 p5 [4 j( I2 g  Y( \6 a0 h7 Z
===============================================. {) I' T- N$ B* }. t/ r
+ {( R* H+ H9 k/ Y
还有一个用于测试这段代码的test.asp& D/ e+ ?9 c: v1 n: I: C
有兴趣的自己搭建个IIS测试下( B. t' F+ N, |  X% Z6 X5 _: Q
<!--#INCLUDE FILE="RSA.asp"--> ) y# I1 U3 F3 Z4 U
<%
5 y6 p) o/ Z: bfunction Encryptstr(Message)
) _; h. K2 m7 _! T9 RDim LngKeyE ' {$ P: G" C* k2 c. O$ a
Dim LngKeyD
0 c7 b2 L1 w8 L) Z+ ODim LngKeyN
9 Q- u) W% Y2 S' d6 YDim StrMessage
2 K' k! U1 y+ m0 HDim ObjRSA
# W; w, }, h+ f7 r' n$ ]; VLngKeyE = "32823"
) s5 _* k# T- xLngKeyD = "20643" % ?  d/ U, B6 A/ k  |8 P
LngKeyN = "29893" & ?8 l& i- {7 f
StrMessage = Message
6 w, E' u5 e% RSet ObjRSA = New clsRSA
. o, k0 @% Q$ {% t3 qObjRSA.PublicKey = LngKeyE 4 U, r8 h/ M! ^
ObjRSA.Modulus = LngKeyN
* l8 r  {* p! `Encryptstr = ObjRSA.Encode(StrMessage) , U: F5 a% ?& j& Q# [, f
Set ObjRSA = Nothing ! {4 U9 Y1 i$ t6 L) b
end function
7 K- A2 o, o; E6 F0 `" z' nfunction decryptstr(Message)
7 a' e. f) W2 ADim LngKeyE & @: L9 K( Z7 `2 r8 b2 A  b7 @0 J
Dim LngKeyD " e3 d- O- d' S7 ]- g
Dim LngKeyN
+ }3 f* R5 S7 \6 Y3 B! c/ oDim StrMessage & R% b8 a& X5 I' k- t1 @( p. p
Dim ObjRSA 5 |- q5 M& l0 O, O6 U" x' ^
LngKeyE = "32823" 6 H, S  X. Y' Y3 m& y: q+ r. e3 W
LngKeyD = "20643" 9 T/ w- X5 M; {( _
LngKeyN = "29893"   D! P0 M6 w. B; F" k- O
StrMessage = Message " A  x+ Q# s' \
Set ObjRSA = New clsRSA
$ X) k# y& Y4 x: _7 C( p0 C0 S# UObjRSA.PrivateKey =LngKeyD & P" D4 t9 c  }) \2 h  z, ^
ObjRSA.Modulus=LngKeyN
& w+ Z* @. D2 ~* ]3 N  q5 x7 fdecryptstr=ObjRSA.Decode(StrMessage) 4 e0 l6 y$ ~( M8 _
Set ObjRSA = Nothing
3 Z8 _# X, l: ^: l. M6 t; Aend function
4 V9 P' \( Z# `, z+ G0 ^! F) Idim last,first
( e4 H$ R5 ]) M$ x1 a! Q& }  N! Wfirst="!@#$%^&*()" $ M$ C+ R6 Q8 Z  t; h
Response.Write "加密前为:"&first ' B  ]( e' P/ W! P8 F1 P7 [( E
last=Encryptstr(first) / _) w. `" q- }
Response.Write "加密后为"&last
, k2 t7 a" J' G# ?3 F+ eResponse.Write "解密后为" &decryptstr(last) 7 e4 u5 H- N, O" t9 z
%> ==============================================* u! }& [$ g% V4 ?' H; p* v2 n
剩下的就是字符的对照表了
4 p+ ]5 U# X* \+ s===================字符集================
6 z" r7 ]3 G; I/ }- I& V* c4 |1_____6EBB
+ [% Z6 A6 w2 p" N2_____5C1F) }) {" _6 H0 G) c: G! X
3_____4D75
/ c2 j0 r5 j1 _4 j1 T4 V4_____26CC/ n" @* u. V0 b. b( s$ m" V+ T
5_____4F88
& O( n1 M% \3 [# O! Q6_____3F4E
" g1 l0 t) {5 b9 K1 d* u7 A( s7_____0A9D: [1 w7 z6 u1 E
8_____1A1C6 ]8 F7 O9 G2 b+ S( o1 x
9_____6D20
9 j) V# o! U+ B5 c$ J; v- g+ @# h0_____1089, v/ {) Z( o4 P: z: X4 V
a_____0F3E# j4 F4 n( F7 G3 A# L+ C0 i6 @! O8 a
b_____3159
6 N+ z' T4 c, u9 |c_____3517
% U7 |7 o) t; D7 T5 id_____419C; E, L- M7 x: P% I
e_____615C
- E3 g5 K( v* ^& v3 tf_____556F
0 o& m* p* ~& t3 Y; {g_____2B7F
  @$ q2 y) P% Ah_____0F9C
  K0 ]! n8 h, ?% Q) yi_____00FA4 b0 ~: s4 G; K; {1 N
j_____5A50& u% i! i2 k9 u" K5 N2 Q) j
k_____2850
! y1 h+ Q0 J- Tl_____3E7B2 F' l! a3 w2 K: B% f4 _1 l
m_____71C55 R: _) u$ U" y  X' D/ s
n_____1FC8! {9 ]# j2 o" k( ]0 P9 Y) T3 U+ `% t
o_____74C14 ~9 [% Y4 C( T* O2 {3 |( a. ~
p_____5FB8! P) f5 e: ^4 j& w
q_____6085$ C7 `/ y% Y! J$ s2 w
r_____3AC4
( z' q" ~" t0 K1 V; p, z& Xs_____2F50* d( b  I5 f* X4 l, ^, N
t_____36F8+ Y- N( L( p- b/ B3 W1 i
u_____7010
8 H: ?7 C, A: y0 U" Lv_____0B42( H1 K1 ^, k; V7 t* M/ v" H
w_____1C7A
: ?% K, p7 C* g+ w; mx_____16F8) b$ ?/ X  W/ L  S$ L
y_____2EE7. u& ], D8 k8 E& N
z_____5CF3
8 C) W8 B/ p! K2 |: \/ j- g!_____6233
8 l9 S1 t# ]' Y* s@_____3A456 w+ |# s7 A) b: O& J! E
#_____2291. Z! w/ Q& p3 Q! w2 K/ R
$_____5D5C
! |( U$ i0 d7 h8 @; Q) e%_____09B9
- G5 k' V" b; e; n, |, y^_____43EA
  j4 g  L# k" {5 J4 a&_____62B9- c; u$ f6 H& q
*_____6301
& v# S2 b* I8 V5 a(_____46592 e$ X+ P2 x, q; \, T
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表