返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
. s5 W2 d1 Y* d/ L) n- R2 K5 M原始出处:http://www.3ast.com.cm5 H" O* K$ Y6 B" u& I; t
4 ?* {% o9 v% j& X  a! S8 ]/ r5 K
看不懂的直接绕过% Q1 o5 C' D& z( Y. S
加密前为:hwy1234560 x7 p% S- Q5 N" q
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E/ Q+ L/ I1 n4 |3 H! H. W

8 y& n% P4 z$ K4 c& i============================================
: u3 T# A& Q! P9 ?& P7 e% e( M上面是当时自己校内的心情。现在已经解破出来了,分享给大家9 C+ S! ?1 O- o8 Y* i
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
8 E7 u6 o5 ~% t以下是RSA算法文件
5 Y, K  c& x. m; ?  N; `  x: R9 n- i, R# g8 ?3 ?. m
文件名RSA.ASP
" [7 n3 g$ [$ w7 U* c===============================================8 T3 ?  P' z+ |6 {- X% I1 z
<% . ]( \0 u9 I( S
Class clsRSA
! K" s0 j* ~9 GPublic PrivateKey 8 ~2 |' d1 r  s3 U8 c% t
Public PublicKey ' i! }! ?' f' S; H% x
Public Modulus - s1 n, D( ?% T& r0 t% R- W
Public Function Crypt(pLngMessage, pLngKey) 7 g$ y% H2 T4 q2 N
On Error Resume Next
* S7 [7 f3 X( L: R5 _. X6 ~Dim lLngMod
' @6 l3 o- d8 S: ^* DDim lLngResult 7 y/ B. T$ D5 |, c
Dim lLngIndex : d/ B) J3 {8 X5 s1 }
If pLngKey Mod 2 = 0 Then
5 w6 z7 S% t4 o2 P$ F- _lLngResult = 1
; J, H  Z8 N6 v- Q) e6 F7 ~/ P. DFor lLngIndex = 1 To pLngKey / 2
3 L2 o$ ?9 ~% C% Y0 u" |8 AlLngMod = (pLngMessage ^ 2) Mod Modulus 6 b2 R' P  b  }* B: {0 B
' Mod may error on key generation 1 Z# D+ @" L" I9 C  A, g7 b) B
lLngResult = (lLngMod * lLngResult) Mod Modulus ; D* u; k7 c9 A2 i8 l
If Err Then Exit Function
  K) S$ T$ F6 U$ z& Z5 oNext   q# ~7 G9 {; _& Q- ~2 g
Else 4 f! A6 R/ S& t" ?, m
lLngResult = pLngMessage $ A: r9 _6 t  A( s8 C# O! X
For lLngIndex = 1 To pLngKey / 2
$ ^$ F* s& _; d+ U' mlLngMod = (pLngMessage ^ 2) Mod Modulus
' N. A$ |) |9 j6 E. I5 DOn Error Resume Next
( v' K1 A5 X0 K8 A, i' p! L' Mod may error on key generation
% r! A+ a( P1 olLngResult = (lLngMod * lLngResult) Mod Modulus % W! H, J& I# p' y6 Q& L/ F
If Err Then Exit Function & y+ G8 q$ j. ~0 j* {# [& `
Next
) v+ j+ I' Q+ C. r) L0 L' iEnd If 9 Y8 a- e. e4 H1 y9 ^* X
Crypt = lLngResult
9 I" d: C. {9 x! r' {7 F0 T; Q1 yEnd Function7 ~2 a; X$ F1 i

) F8 X' u5 v! _Public Function Encode(ByVal pStrMessage) ! R$ r8 z8 D# `* M1 C9 i' C& B6 T3 Y2 l, m
Dim lLngIndex " v% I) ~6 }' t
Dim lLngMaxIndex
% ~% o, R+ H0 D( @8 [) A8 zDim lBytAscii
. l# L: H+ v; E4 G% f- i* lDim lLngEncrypted - o8 K5 Z6 i0 _3 [1 W
lLngMaxIndex = Len(pStrMessage)
$ U) G, |: ?9 G" m% xIf lLngMaxIndex = 0 Then Exit Function 8 f4 W  g7 Z2 A7 w/ A) y$ a. M
For lLngIndex = 1 To lLngMaxIndex ( g1 x$ J7 Q) }$ v
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
  |4 R3 @' r+ T8 b% J8 K9 }lLngEncrypted = Crypt(lBytAscii, PublicKey)
7 _0 o  [1 S9 r0 R& A. tEncode = Encode & NumberToHex(lLngEncrypted, 4) 8 ~% O. p6 x1 E; O/ m  @' G/ W: l4 i
Next & ?3 v% h. U2 q' I& v
End Function * ?5 P4 k2 @& X( |% n
Public Function Decode(ByVal pStrMessage)
6 A# g: g9 r' ]4 Z  M* n$ i7 m2 RDim lBytAscii
, A) a, f4 ?8 |% _# N, A3 pDim lLngIndex
6 G) {7 x- n  C8 dDim lLngMaxIndex 4 o% `$ [9 d8 z$ @6 o4 \& }
Dim lLngEncryptedData
" ?9 B, U0 G4 A. Z$ ~Decode = ""
# Z/ C3 \4 _1 ^7 e: k( a, TlLngMaxIndex = Len(pStrMessage)
+ z. x& ~1 l$ t! {$ ?0 j' LFor lLngIndex = 1 To lLngMaxIndex Step 4
) n! a' f0 L' u" Q* w( {% jlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) & ?; H( x" t& c; y9 o" t8 T# l+ |+ ]
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
( T( b9 Y3 a- ~6 T* X3 u" M0 ^Decode = Decode & Chr(lBytAscii) 6 t3 R5 V5 ?$ J! h2 r# L* l( h$ Z
Next 4 m7 S7 E7 q9 ]& ~& J5 ~2 {0 M
End Function
- r) Y. K) t! h0 r* Z0 yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 4 @/ T( p# c8 `  w9 p5 {" F7 w
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
$ ]- Q7 ?- ~4 V! W5 }) aEnd Function % |& L- E* Y9 [5 R7 S$ f8 i
Private Function HexToNumber(ByRef pStrHex) % W  U6 q7 H6 n( A0 t* \( }; B
HexToNumber = CLng("&h" & pStrHex) + }1 A. h' l: O' D. {+ G
End Function
3 f5 `5 f$ ~: J2 g2 J. sEnd Class ' |* @5 K1 o4 b( P
function Encryptstr(Message)
% c( B5 v# @4 _( t. |Dim LngKeyE : ^! @( W5 w* l( W
Dim LngKeyD 9 z& \7 t; N! m) q
Dim LngKeyN . W5 A# V1 y, f) Q) h
Dim StrMessage
) n/ G! G% z4 I# VDim ObjRSA
0 K) @. _8 B' B, bLngKeyE = "32823" 6 a% `. Z  O6 U: x7 d
LngKeyD = "20643" 9 ^# [& [4 \, h0 i' ^* A4 |
LngKeyN = "29893"
+ U8 D/ V# i2 W7 D& U; C" W6 l! yStrMessage = Message 9 ~- z$ C& f' D
Set ObjRSA = New clsRSA : |9 X! `- J  Z- T5 g4 C
ObjRSA.PublicKey = LngKeyE   i1 V2 Y  r8 F5 g" ?( J" K
ObjRSA.Modulus = LngKeyN ' k/ \- V$ ^; i/ j; x
Encryptstr = ObjRSA.Encode(StrMessage) 4 ]7 Y, Q- u. H$ q% f
Set ObjRSA = Nothing & k$ E4 g6 e9 ^- m2 n
end function
; [+ m, z& J3 C* ?* [Function Decryptstr(Message) - }9 f" x4 x8 E% y) |' \3 q
Dim LngKeyE + s/ A8 _9 V# y8 d3 {5 I; i+ ?
Dim LngKeyD
& o, m' s3 |8 B; ]3 K/ N3 xDim LngKeyN , \& ^) o( P8 J* T
Dim StrMessage / h$ o' C$ M$ h$ l, I0 o
Dim ObjRSA
8 V. X# ^/ T6 z0 ~; r* pLngKeyE = "32823"
: N1 f% D! w/ l9 kLngKeyD = "20643" * k7 ], r' \+ y8 {( h, x; j
LngKeyN = "29893"
6 s1 @, n( J" A' [' H- W# a. @StrMessage = Message ; ]" `8 Z" U" W4 V
Set ObjRSA = New clsRSA
# s  W1 `% Y# dObjRSA.PrivateKey =LngKeyD
8 N1 c# m- X6 p' w( ^! aObjRSA.Modulus=LngKeyN ; J1 h4 t- w: m( J+ a% Y) [
decryptstr=ObjRSA.Decode(StrMessage) 8 M5 q" J6 D. Y+ J
Set ObjRSA = Nothing
* V5 C  |4 a7 m7 }5 Tend function
8 ?+ o: ]& u9 A, ^6 E%>
  t+ i( b6 H! W' m) ]2 u, x% C===============================================2 m0 r$ [, B8 [1 l

- b4 O& Z' L8 }% Y还有一个用于测试这段代码的test.asp
, l* G, J1 P* r6 j) ~2 E# Z有兴趣的自己搭建个IIS测试下
& I' G4 @3 z' M1 \  z' Z<!--#INCLUDE FILE="RSA.asp"--> : p5 x2 @/ u% h' m5 v
<%! k1 Z1 x4 S  G9 a# q. X7 V. i
function Encryptstr(Message) 5 n/ @7 P6 h1 {6 J% q2 ?7 I
Dim LngKeyE 3 b) z& V- O6 F" c
Dim LngKeyD
. g6 l2 K; G- n5 Y8 m; BDim LngKeyN
1 x! {% {& f6 n- EDim StrMessage 8 g" K% h" v5 p) h7 U/ |
Dim ObjRSA 3 R- d2 w$ t7 r& Q' ^2 U! \4 _
LngKeyE = "32823"
' y/ K# X+ C9 G& JLngKeyD = "20643" ; f# L3 W" p( v1 j6 w9 l: m
LngKeyN = "29893"
  z# c+ f) }( \1 ZStrMessage = Message 5 f  X0 g" C* @: k
Set ObjRSA = New clsRSA : r! T. X. G1 E
ObjRSA.PublicKey = LngKeyE   S% f6 F' j+ {0 B. q
ObjRSA.Modulus = LngKeyN 2 X+ n# {  f! e( X
Encryptstr = ObjRSA.Encode(StrMessage)
9 k7 ?3 H0 q1 c% n8 p; R1 i* xSet ObjRSA = Nothing ) U/ a+ ?0 `2 F7 b: S3 B7 |$ V1 v
end function 9 F2 W5 f! E4 g) d+ w' E
function decryptstr(Message)
1 a  e4 q( [! w- z+ hDim LngKeyE
1 g) ?2 q. q+ E; h% C; bDim LngKeyD
1 F% o. Q% e. `: ?/ F! \9 f' x, D0 eDim LngKeyN
7 Y+ _+ U1 {5 X$ l0 {6 M9 D+ yDim StrMessage
4 M  d8 o# Q8 NDim ObjRSA
5 x) d% g; L% KLngKeyE = "32823"
/ K  w3 j2 _: L1 n1 |4 v# @LngKeyD = "20643"
- C  _1 }! [: {* f5 n9 i0 ILngKeyN = "29893" 6 p% a- c2 D8 M4 E, G! B
StrMessage = Message
  G  Z: w  w+ I  D9 ySet ObjRSA = New clsRSA ( I- o- N4 i- G' i
ObjRSA.PrivateKey =LngKeyD 9 c- I, x% W/ A- E3 X* a0 z
ObjRSA.Modulus=LngKeyN * i3 Z  e. ]! \2 S$ C: Y
decryptstr=ObjRSA.Decode(StrMessage)
7 r% Y  W6 ]% q2 G9 hSet ObjRSA = Nothing
) |, X; p$ B2 O; r' f1 K' O) dend function 3 V2 n2 C$ I$ j6 ~+ O
dim last,first 6 |8 w, v1 C) O
first="!@#$%^&*()" + r7 P! E" e1 b+ K+ b. l# r
Response.Write "加密前为:"&first
9 R5 J/ p# |# j3 K8 x  D7 \last=Encryptstr(first)
& S, L' m' z* B9 S0 o7 m2 uResponse.Write "加密后为"&last
* C0 R7 |3 E% }( C4 }3 UResponse.Write "解密后为" &decryptstr(last)
3 |7 N% z1 \, d, D& P! w5 d' ]%> ==============================================
* Q' T: N5 B2 t$ N3 Y- W剩下的就是字符的对照表了$ m8 D7 `) Q" M5 B
===================字符集================
, K+ v) t* h1 s$ {: ^1_____6EBB
; n' m  B+ W8 z6 a8 U2_____5C1F. n' O9 h; i( n6 M, \
3_____4D75
2 G* }1 o  Z: c1 k; }4_____26CC
" A! v' e" Y6 p( R5_____4F88
' Q! R5 z; O) H9 @) p6_____3F4E
- G) d3 b7 m& j' \7_____0A9D
! S% X$ @3 S, ~" `& a, n* C% O8_____1A1C
" I2 y' `6 f) Q, Q9_____6D200 j. ^9 n& w& {5 P0 q& E
0_____1089
* a! E, J- w3 J/ oa_____0F3E
7 W# a" c3 X% m* p$ e! y/ [b_____31597 n- d9 d6 y) O& J& H+ r
c_____3517
5 Y8 v; F# X- P8 Z; E& u$ }0 B% W5 Ed_____419C
+ g- `/ v( D+ B7 G* ^e_____615C# k, r( ^0 B' F$ L
f_____556F1 P! E) m! v& x7 k  R
g_____2B7F
; E& j1 y& Y8 {7 t4 Uh_____0F9C$ K6 c% J2 h: q+ J  P# Q! `  M2 X) @
i_____00FA: b/ a+ R/ u9 x3 @4 D) x
j_____5A50, F- w# H" k* W3 K8 l+ w
k_____28502 E$ Q- q' R! k" D- |
l_____3E7B
" s- Z. I+ q5 |1 [4 _: P* x  j& Zm_____71C57 h9 P% x  [, b# N  v& ]  Q' l5 i$ X
n_____1FC83 g% K# j, L! X$ O9 D# p
o_____74C1
+ S6 o2 {6 H+ Yp_____5FB8
+ o/ T& v# W" d9 iq_____6085
3 t, x0 S" P4 W8 l2 O- dr_____3AC4. W& z  M$ I3 z5 e) _* l7 \- N
s_____2F50
  Z7 J  \7 u  \2 |. h: z+ Ht_____36F83 `. y/ F7 f) ^0 d+ S# W- n: h
u_____7010
, g6 C. g' S, m4 @v_____0B42( f) W, Z! o6 A
w_____1C7A% c! [2 u, u; F0 J
x_____16F87 U" ?3 N" N3 d
y_____2EE7
7 p0 r! w) M$ Q2 c! e/ h7 dz_____5CF3
2 [5 o8 G0 p1 f, v1 g% \( |# k!_____62336 k$ n. B5 Q3 y
@_____3A45+ ~* g4 B" p% e% @0 i- Z0 s$ E; m
#_____22916 q4 M8 b6 r% R, i$ K
$_____5D5C
; z0 q9 L- I0 C) d) m  I%_____09B9
5 P7 C" m# m) P* I9 y9 m) c& }^_____43EA/ n" g8 l# h, C  |
&_____62B9% J2 V! d2 T" ?0 P5 T
*_____63013 R" V& n6 K7 P" _! B9 M; l0 D
(_____4659
. _( T* A( ?+ v7 ~; y)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表