返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
; \# L$ u3 W- K5 G& h/ P原始出处:http://www.3ast.com.cm
6 l1 X1 V1 V  c# d; g
  D% o* u5 ~# O- B看不懂的直接绕过1 d4 ^- `# w% A: v
加密前为:hwy123456# {1 J+ l+ k; w3 }" J% v
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, N6 x  Z  H5 F5 q0 ?
& Q8 r& m6 j7 [& g, Y  F
============================================
; @8 I: L6 a+ u( y9 x& y6 h% G上面是当时自己校内的心情。现在已经解破出来了,分享给大家
4 e  W( V/ n! M  k1 H也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法3 E, g  G% f' M7 ]
以下是RSA算法文件) {6 [. q4 u: W, u. {8 i' s
' ?: e4 |0 a1 D- t: S# f
文件名RSA.ASP
5 ^  k& n8 a4 [  v3 m2 E6 L===============================================
& I' d' S/ X2 F; ~: j5 \<%
# d% f/ C! A+ y: v- f1 N8 QClass clsRSA 6 C" Z1 _$ ]4 w2 d" ]
Public PrivateKey 8 B- A$ E: f  u5 f9 {1 \
Public PublicKey
/ U! z6 ^2 c% U9 p  a/ `Public Modulus 3 ^+ n/ r$ x! [9 Q" L3 ]
Public Function Crypt(pLngMessage, pLngKey)
9 {- {  S- k7 R4 \" A% e" VOn Error Resume Next ( a' d$ Y; L' L& _6 q2 }
Dim lLngMod
3 Z) h9 |" O$ Q% U$ H: `Dim lLngResult
9 x7 y/ c" X; d  z* W) o1 }Dim lLngIndex   `" ?1 x2 o: z+ F7 ?' D: @" S  V" F7 p
If pLngKey Mod 2 = 0 Then ( z0 \9 V1 ?4 k; f  c, P
lLngResult = 1 * ^+ y# j2 M6 q
For lLngIndex = 1 To pLngKey / 2
0 P& _" ^# T. R& nlLngMod = (pLngMessage ^ 2) Mod Modulus
2 Q4 Z4 [% P9 Y9 ?# L: r' Mod may error on key generation $ k# v8 R8 u" t. O
lLngResult = (lLngMod * lLngResult) Mod Modulus ' Y/ ^0 ~3 C1 q2 {8 g# _
If Err Then Exit Function & ?: H# F) p) T0 k6 Q
Next
! D0 ?  u; [+ q9 OElse
, R  T$ R$ q9 x1 tlLngResult = pLngMessage 7 {# h# }4 E2 U& p" W# r
For lLngIndex = 1 To pLngKey / 2 / M2 ?  Y5 K; ~  g+ \% E
lLngMod = (pLngMessage ^ 2) Mod Modulus 2 h/ Z) J0 t: t
On Error Resume Next ! k. h9 g7 y* ]
' Mod may error on key generation
# ?1 v6 `  I2 @7 NlLngResult = (lLngMod * lLngResult) Mod Modulus 1 z. q4 }, R" A, p& ?  t7 c  G, n( F
If Err Then Exit Function
' ^5 h' B4 `( j6 V  `4 h, fNext ; U- d! ^9 T1 v4 r, i
End If 1 D; l5 B5 R) M9 r4 j) u; x) [
Crypt = lLngResult
8 l* G4 G! G3 ^End Function% O0 G5 x' W$ h0 h

2 y4 ]% ?, F. P: W5 DPublic Function Encode(ByVal pStrMessage)
! Q% M/ f+ l/ J2 A( o0 R/ GDim lLngIndex 5 \2 E  r6 E9 h  V! j0 m, U
Dim lLngMaxIndex 7 v* m/ s4 w: w& G" R3 N' g7 |5 M5 u
Dim lBytAscii * E/ ^6 l3 s1 R/ j; R# ~
Dim lLngEncrypted # C% [" t9 b/ T* \
lLngMaxIndex = Len(pStrMessage) : Q- M6 L6 g' _" ]; h  n; H% B
If lLngMaxIndex = 0 Then Exit Function
) G. n2 j0 S0 P9 w" sFor lLngIndex = 1 To lLngMaxIndex 3 v1 d% O2 H* u: p
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
0 y& u. [  g5 `8 \5 o. h! SlLngEncrypted = Crypt(lBytAscii, PublicKey) 5 D6 R! v" n! L1 L% A9 @; U( \% m# `
Encode = Encode & NumberToHex(lLngEncrypted, 4) . P4 R9 v7 k$ v' Q9 B0 h# \' d
Next
+ B0 \, R# K' ~! E/ \0 A! P4 x9 v- J6 q  ^End Function 2 o* a! p& \' B
Public Function Decode(ByVal pStrMessage)
3 P" G- T$ N& V) E5 t$ c, fDim lBytAscii 8 x/ C" r" T$ H) x
Dim lLngIndex
7 c& ]6 P8 A& F7 C/ G1 Q8 p& HDim lLngMaxIndex
2 R  T" y( z' [Dim lLngEncryptedData . o$ [4 ]. L: I
Decode = "" * j1 C8 g( d/ I' j! p
lLngMaxIndex = Len(pStrMessage)
5 \9 n& K0 K! ~) ^$ Z4 dFor lLngIndex = 1 To lLngMaxIndex Step 4
- e3 x/ x6 Q% U1 rlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
/ B5 p% K  k* hlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ( [; S! W6 m  p7 g" o8 l- s
Decode = Decode & Chr(lBytAscii)
: V4 g2 y: ?5 f7 BNext ! a  b0 z# w4 \$ N
End Function
9 E3 J9 g$ ?( {# S/ C" gPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
: Y( D; U" s  |  q9 m8 XNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
* _5 T% y' \3 d+ h) W# ^$ QEnd Function
' R. H7 t, b' T- f' s; J( ?/ RPrivate Function HexToNumber(ByRef pStrHex)
3 j8 S0 W6 Y* ]9 k$ a7 n" N* fHexToNumber = CLng("&h" & pStrHex)
& b3 Q- A/ k/ q- E$ G( P* {End Function
5 @5 i! V& O( ?9 L# u. ]End Class
  F) v& b% @, h% b) L' e4 r& Y) Ufunction Encryptstr(Message)
+ x' ~$ |; r. C# FDim LngKeyE ) U+ p  C- b# ^! Z4 z9 \
Dim LngKeyD
8 Y  h9 {8 `& M4 G. _$ r: V" kDim LngKeyN
) l, @0 c) j) Y+ z5 R0 I- c6 X7 GDim StrMessage
- C+ f8 V7 o% i) y1 h2 NDim ObjRSA   @' ]. {7 D( {* l# M8 d
LngKeyE = "32823"
) h$ ?4 s0 @# V# y. B+ P% K9 T' qLngKeyD = "20643" / c3 \( ^( }7 _
LngKeyN = "29893" + T) n7 I! X! n9 E0 b
StrMessage = Message . W+ l: C! E& S2 @6 ]7 u
Set ObjRSA = New clsRSA
' `$ I: ^+ x' C. B$ c0 gObjRSA.PublicKey = LngKeyE
- u. Y. b9 ^5 j: cObjRSA.Modulus = LngKeyN " w7 d# C3 N% \! h
Encryptstr = ObjRSA.Encode(StrMessage)
8 g* n8 ~9 l3 g9 w1 u' I9 ySet ObjRSA = Nothing
, J: U: `, u, Y8 y( v* a$ Hend function
. Q; ~7 B' K4 v% h( L9 [7 |Function Decryptstr(Message)
( x. i: L% o8 ]4 B$ n) `Dim LngKeyE   R1 j. J# S! N: E( r
Dim LngKeyD
% N: q& c# ^: k$ n# x6 x) K6 sDim LngKeyN
: y3 p6 R, G  MDim StrMessage ( l" y, k  t4 K0 J' M5 D
Dim ObjRSA
: u/ t7 Q! S# H3 YLngKeyE = "32823"
9 f+ \& |+ G: I9 @LngKeyD = "20643" 0 D7 T& ?1 P7 N& U
LngKeyN = "29893" 3 R! }( T0 T  G3 Y+ _% t
StrMessage = Message
) g; b# U2 F+ I6 WSet ObjRSA = New clsRSA ; b! L1 Y" Z1 d9 J
ObjRSA.PrivateKey =LngKeyD 8 ?# d. y( A: l) |9 v# D& r" \
ObjRSA.Modulus=LngKeyN . |( X: r* i4 v0 i
decryptstr=ObjRSA.Decode(StrMessage)
) ~! S- d$ _+ x7 I! Q, p5 a! z2 PSet ObjRSA = Nothing
2 m! ^$ Q# N6 @- h! ~* qend function 1 w6 {8 U6 g1 U
%>
6 h1 ^4 S8 |$ X7 ?+ {===============================================
3 @$ I& k' D! p& ?/ D% }2 K8 H' H1 q/ q
还有一个用于测试这段代码的test.asp& }+ W1 v( L0 i9 ~1 f
有兴趣的自己搭建个IIS测试下6 b3 y. s" D/ R# b# ?
<!--#INCLUDE FILE="RSA.asp"-->   N. G0 D/ h4 v0 _  N
<%
0 M( Q* o  ]% n7 t' ?function Encryptstr(Message)
) G9 b! v$ ]" W! |7 \0 iDim LngKeyE ( G. V7 u- D1 z! s
Dim LngKeyD 9 ^4 ^5 e" d, I. O
Dim LngKeyN
8 E9 |2 F3 w, @Dim StrMessage
# J. o, \0 [2 T% DDim ObjRSA . @* q5 ]: x9 r1 X9 {, k4 m) f
LngKeyE = "32823"
0 ~7 E4 A) L# J( ]9 `2 `2 FLngKeyD = "20643" & B" ~$ S. P4 |
LngKeyN = "29893"
- Y# j% W8 N, |6 mStrMessage = Message $ J0 O; t$ N/ _5 a
Set ObjRSA = New clsRSA ! R! L# ?" Q8 f5 \1 W. ]
ObjRSA.PublicKey = LngKeyE
, F4 e+ [% l4 B+ t7 y9 ^, [ObjRSA.Modulus = LngKeyN - _% x6 w) U1 q3 a' w  F
Encryptstr = ObjRSA.Encode(StrMessage)
7 |! t) L6 Y! o/ G. WSet ObjRSA = Nothing
& V& z. [5 ~+ U) f! w. Jend function $ P  P* d9 q. M2 H
function decryptstr(Message) : s: k1 K* ^6 _5 o% }! z% d
Dim LngKeyE 4 Y  e7 d% P/ v) [  Y
Dim LngKeyD
/ L. p* E5 k! f5 m4 Q1 {  M, SDim LngKeyN
, ], ?$ e. X9 l4 X  Y( FDim StrMessage
' p3 a+ q: O/ Q/ Y" YDim ObjRSA
: \! s1 i# f. A! t  `( f- xLngKeyE = "32823" , U* K, r9 R) O$ d# j! k# R
LngKeyD = "20643"
. G# B% q* b- LLngKeyN = "29893" + U/ ~6 T+ S# S* n3 Q! W
StrMessage = Message
" n- g+ Y) T2 g; q8 w8 P- y. JSet ObjRSA = New clsRSA ' N: W4 o% X7 J, O6 |! ~: W! r
ObjRSA.PrivateKey =LngKeyD - D" i5 }3 I2 N; `
ObjRSA.Modulus=LngKeyN & J5 S8 Z' @. q& a/ u. i
decryptstr=ObjRSA.Decode(StrMessage) 7 O; `! x, o  Q  A) Q1 c1 O" w
Set ObjRSA = Nothing 9 c, e1 q# K6 J! n. H
end function
" ?. R1 c7 {* d$ Rdim last,first
+ F9 }7 A+ L4 tfirst="!@#$%^&*()"
* R0 ~- ]7 ]) ]2 ~; CResponse.Write "加密前为:"&first ( ~/ G- L5 f3 p4 a3 \1 x- U- E
last=Encryptstr(first) / ?. t6 [6 U* K7 z) u7 X- _4 l
Response.Write "加密后为"&last 6 I# \. k% a4 W) }) [
Response.Write "解密后为" &decryptstr(last) $ n1 {' A6 p+ F! ?
%> ==============================================3 N( P8 P5 e+ J$ }3 c$ Y
剩下的就是字符的对照表了
  r  _: \- n# Q  p===================字符集================+ _5 V! ?0 @) ^9 R$ S
1_____6EBB6 W/ `3 E* w) F/ T+ ~* I6 @" X
2_____5C1F
* z; q. M8 ]  l: H5 k% ?2 `- @3 M/ a3_____4D753 w+ o% }- Z3 Q* |" W
4_____26CC
/ S. N1 v2 c4 }5_____4F883 |3 Y. p+ {/ Q& y0 _! B% X
6_____3F4E! F# P( C' c& W6 U2 U" s' }
7_____0A9D
1 S6 }- F( t, z+ q7 h$ z; j! w+ ?: ]8_____1A1C# K, _& |/ X8 a1 I6 e
9_____6D20& n7 _( ]5 v6 A3 ^* A' e
0_____10893 Y3 m% M# y$ E* d7 f3 K0 n% e
a_____0F3E
8 I6 f' i' Q1 K! w7 `  B  qb_____31595 V, m5 X' E2 o- T2 T. t4 b) {$ [
c_____3517
- }, p! g9 B+ x# h- t7 B$ p, Hd_____419C# ?% t9 f  C6 _2 s$ i% c' k, [
e_____615C
; U1 ~- x0 u" U( x' g3 {f_____556F
0 L& H# Z2 Q: H/ F6 e& cg_____2B7F
( ]/ K( \& N: `0 `' kh_____0F9C) W6 L4 |" \. ^' N) _8 A
i_____00FA' Z  a2 o- c/ \) e! E$ K
j_____5A50$ x/ ^9 q2 e5 R. h7 n2 B
k_____2850
; O! {% a( T$ |l_____3E7B9 l2 S1 S9 T( w# f, B
m_____71C5! D) X; d0 L# o4 Z4 E/ f
n_____1FC8
) t* j8 m/ s3 g+ _9 M# do_____74C1) u5 ]1 |9 I) z  q  U  a
p_____5FB88 P4 L: R+ X) C& a) `
q_____6085, x4 {* X6 s& W7 m7 S
r_____3AC4
  @' M6 ]% \4 d2 B* w) |s_____2F508 A; c2 P4 F* Z) j! i; M6 i8 E
t_____36F87 ?1 v5 }+ y! x
u_____7010
- S+ a# V# }9 q; V" F* v3 h1 Pv_____0B42& l, ^  u. Z7 T  `6 d
w_____1C7A6 [3 T/ b! L' a. U1 j
x_____16F8
) W3 k0 U9 j" _" `, S6 d6 uy_____2EE7
; h0 }3 Z0 Z$ N+ Yz_____5CF3; v+ ]  b' N6 @3 r2 Z5 ~
!_____6233
9 C( o' d& R6 L5 C) d5 F@_____3A45
- a6 V3 \( `* g) `1 b; n) ^+ R#_____2291
: ?( k7 V' Y3 a7 ~# l$_____5D5C+ L7 b5 |) `! b! e/ L
%_____09B9
* T& x7 b9 O; q# W& }( Z^_____43EA
; Y: K% \* I( B" E&_____62B9
8 l; U0 h3 p# M- e, ^9 @*_____6301) @8 P4 y% `# M' a  |
(_____46593 I  h! o$ _" g/ g' ~; x
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表