返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
& O- H+ J3 q- h* t. g. t原始出处:http://www.3ast.com.cm
; M! p" q. N! H6 i
" o, i- B! M9 ?6 s: j8 w3 Q看不懂的直接绕过4 [6 Y+ h3 ]" g# {8 J
加密前为:hwy123456: W+ B0 B. B4 \6 [
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& `. a. v- d% V( ?# ]& T! U0 ~3 Y. x
9 P2 a  D4 ?9 [( Y* L5 W
============================================
* k/ \! T" y- j# }; H上面是当时自己校内的心情。现在已经解破出来了,分享给大家3 U7 x8 W3 ~8 c0 E- ^7 {, \
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
) r5 q( r4 g; _- e0 o; w6 T* Z) D以下是RSA算法文件' ^3 U1 J( A$ F* I
! I+ f1 ^. \( N
文件名RSA.ASP
5 E6 l6 N) e* N) Z===============================================
! a- {* }% U$ W/ }; _$ f) V. `* o<%
5 Z: M' x9 T; p9 ^% ^9 Y2 z0 p# QClass clsRSA ) [/ O  ?7 g' G, G
Public PrivateKey & r1 C/ D3 ?% [: ]
Public PublicKey
8 B0 F1 T3 T. X* W: ?3 O4 i5 D; a# ]Public Modulus 4 Z6 Q) C/ Y' X' M6 {$ v6 M
Public Function Crypt(pLngMessage, pLngKey)
- _0 `8 V- G& F8 e; ?4 G$ nOn Error Resume Next - q$ L8 V1 @( R5 D" T9 N
Dim lLngMod
% m% M2 @; I5 D. d( h+ M# yDim lLngResult : H2 ?% [) ^" o- p9 s
Dim lLngIndex * U3 V8 u) H- a: P# t8 L$ u
If pLngKey Mod 2 = 0 Then ! d, e$ g% Y# d; Q# v' x- I: ?
lLngResult = 1 , f5 T! |3 {5 G6 b) K% b
For lLngIndex = 1 To pLngKey / 2 2 M+ ~3 V$ V& j
lLngMod = (pLngMessage ^ 2) Mod Modulus
& B5 F8 S5 J' Q' Mod may error on key generation
  g; y1 s7 {) }7 c2 B- \lLngResult = (lLngMod * lLngResult) Mod Modulus
3 u9 @; T) @" R2 y. B/ e, R9 kIf Err Then Exit Function
( f- O: [5 N4 ]0 pNext 7 ?/ q( C3 U8 Q$ q* n
Else ! p6 A" V. C- D+ U$ W; U' T
lLngResult = pLngMessage
" N6 C9 H" p; L% yFor lLngIndex = 1 To pLngKey / 2
6 T* {; p( k$ h: u3 L6 xlLngMod = (pLngMessage ^ 2) Mod Modulus
' J" w' N6 B5 C& u, rOn Error Resume Next
0 a, \: Y' T: p; ]$ N3 J: W, h' Mod may error on key generation 2 t( s; E( I8 U3 _3 W8 i9 L- ~  z
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 k$ c$ w0 y; l9 mIf Err Then Exit Function
- r/ G" _, e1 l1 x' VNext 9 \: _+ i# }& F, l; I; g# F* d9 H& ]
End If / ?- ^0 e& F% M( _
Crypt = lLngResult
7 h/ P$ k( Z9 b6 sEnd Function
- i+ U2 x" @' X1 w
8 P# K" E5 C) k( M/ r) [" X' LPublic Function Encode(ByVal pStrMessage)
! ^; J  K% S$ JDim lLngIndex
% l) P8 H$ ?7 R$ ], \Dim lLngMaxIndex
4 q4 Q* t0 J9 h1 p& V8 jDim lBytAscii ) Z; L+ m( e; m* Q
Dim lLngEncrypted 9 U- h4 S9 d# ~3 K8 N
lLngMaxIndex = Len(pStrMessage) , M* U, |  l( o. N6 i
If lLngMaxIndex = 0 Then Exit Function # @8 y, ]8 A$ A) ]; A' L
For lLngIndex = 1 To lLngMaxIndex
# s3 q) r" `7 ^% vlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
; ]8 j! G. U' D1 Z, e9 m3 w, flLngEncrypted = Crypt(lBytAscii, PublicKey) " s; J2 Q4 _5 r9 p5 z
Encode = Encode & NumberToHex(lLngEncrypted, 4) 2 L) `% B  M) _4 H
Next
' p1 I: W7 B9 a4 @End Function * w# F) V+ |& _" i& b% f
Public Function Decode(ByVal pStrMessage) 5 |! B) a% o% h! B% J4 ~+ e
Dim lBytAscii
1 \0 }6 v; M/ KDim lLngIndex 5 p) k) H$ R/ Z, B
Dim lLngMaxIndex
+ ~* C9 {+ [$ r4 ]- aDim lLngEncryptedData & p1 o( H7 j+ {: ?, y' M
Decode = ""
/ {, @( G" E, G3 z- o6 I' YlLngMaxIndex = Len(pStrMessage) . S" r% x0 s' f
For lLngIndex = 1 To lLngMaxIndex Step 4
4 s8 e7 S- r" V  y, RlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
/ b0 N- w$ h4 h& p8 JlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
  w4 Y8 g) U6 B" mDecode = Decode & Chr(lBytAscii)
- h* u, X$ q, x2 T- _- R9 dNext : E& p6 J# l0 x- l! G# M9 y
End Function
4 i3 {) e: c; N+ u# W% ePrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
+ w7 S6 n' {% g+ sNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ' \+ E- N! ^; g  x
End Function
. {- l0 ]$ C; ^0 C6 O* UPrivate Function HexToNumber(ByRef pStrHex) * _5 ~2 n& @" Z( m
HexToNumber = CLng("&h" & pStrHex)
% Q: c' ]. T6 t) P( d' U5 v6 zEnd Function & N2 a- A6 _7 p- j
End Class
8 \3 l1 m! l, Z0 X7 C. K+ d" vfunction Encryptstr(Message)
1 d0 s/ f2 _( T6 QDim LngKeyE
1 |3 w- `; q( Q2 b% MDim LngKeyD . q$ X! Z$ q. i& B
Dim LngKeyN 4 n/ Q8 g/ i3 ]7 m. e' m0 [: z6 o
Dim StrMessage ! l/ M4 O# S% N' I+ U2 q
Dim ObjRSA
/ H% x. k9 v; ^4 K7 z1 KLngKeyE = "32823"
, _" C( @4 y( Y% j) g; L4 zLngKeyD = "20643" ) u& |) c5 F6 W/ _( o- f. q: J
LngKeyN = "29893"
9 I9 M; ?* h5 r# @4 n2 dStrMessage = Message
& c. D8 e7 U# k3 [( U  X& i3 @Set ObjRSA = New clsRSA
: a* N4 h# k  J5 A( rObjRSA.PublicKey = LngKeyE
0 r- N* ?: q- n! }& j' z' cObjRSA.Modulus = LngKeyN
1 a. ^* Z! l- W) }Encryptstr = ObjRSA.Encode(StrMessage)
$ D# L4 B  Z0 l; F5 ^$ u7 i# FSet ObjRSA = Nothing * t. T  F' G+ ~
end function
, Z+ ^& q  N+ @& A+ D' RFunction Decryptstr(Message)
9 t$ r. f6 M+ r" l* `Dim LngKeyE
7 I2 g3 e" u8 b: uDim LngKeyD ' K* P) \8 y: K6 U4 [  y
Dim LngKeyN 0 @3 X+ I8 [# J4 Y) j# y# q- E3 V
Dim StrMessage
- r; T* [$ P% U0 J. t9 m8 tDim ObjRSA " q% u% S+ N* i6 q
LngKeyE = "32823" 2 q: O% _/ r& K2 W( E! y/ F  f- {  Y
LngKeyD = "20643"
% Q3 @3 r; T' i/ T5 e: ILngKeyN = "29893"
( T. }+ \" q3 B8 Q8 s4 BStrMessage = Message
- |- l; Y# D% ~$ f5 oSet ObjRSA = New clsRSA
- k  C# |3 f9 h+ UObjRSA.PrivateKey =LngKeyD
5 m  |# V  L2 Y, `/ m: uObjRSA.Modulus=LngKeyN
( a: E0 Q  ?7 x# ?1 fdecryptstr=ObjRSA.Decode(StrMessage) # ]1 a/ N1 O) A; W9 O7 z/ O
Set ObjRSA = Nothing ' Z: s4 U# \' x1 v* w
end function
4 P& d* K, _  t% K; U%>
+ ]" w1 T0 Q# \5 l2 ^5 E8 C===============================================
6 r3 T. l  S/ z' w) `, s+ Z; _& B9 w  h( N. O$ ^: v/ H
还有一个用于测试这段代码的test.asp
3 _7 t# k5 u4 _+ h. j+ C( ^有兴趣的自己搭建个IIS测试下/ v* c( f3 @7 N8 I4 G3 T2 y. [+ }
<!--#INCLUDE FILE="RSA.asp"-->
- `: j3 w% D5 {$ ~) K' X* O! u<%' F# H3 o. e; l' `' j* j( @0 `0 I
function Encryptstr(Message) + V+ ^+ }0 u9 u3 ]; P! T
Dim LngKeyE
( P7 x1 k  G9 E4 `Dim LngKeyD
' H: S% {" U8 c  q- v; q& K: |Dim LngKeyN
3 X* r' {9 `* N4 v9 z' x' |: XDim StrMessage
1 ~, N; x1 o# H, R( ^* |) w+ `0 m  eDim ObjRSA
; i4 V% I1 [0 \; l5 ^/ fLngKeyE = "32823" 1 O7 J, R$ n7 y- f# W
LngKeyD = "20643"
! f6 _7 W5 l6 T0 W6 d" w, @: ?LngKeyN = "29893" - n7 }: `! G% N0 z4 ^6 c
StrMessage = Message ! C' S3 k- m8 M+ G3 ?4 b6 O
Set ObjRSA = New clsRSA
  J" j! W9 S2 fObjRSA.PublicKey = LngKeyE + q* v4 ^4 N+ M9 @5 n' h- u
ObjRSA.Modulus = LngKeyN
" ~5 T9 P2 u! m7 j2 U, s7 tEncryptstr = ObjRSA.Encode(StrMessage) 5 r& c8 a9 r6 G8 Z( C5 F
Set ObjRSA = Nothing
# w5 |. s& I" ]# H* l* h$ |9 h" ]  vend function ) H, I' j( I8 A) i. a8 x1 v
function decryptstr(Message)
+ ]; g# b+ R( U7 T" CDim LngKeyE
# E  S0 I  c$ j: N, hDim LngKeyD % W) ^8 M5 b: ?
Dim LngKeyN
0 M5 r% s/ r8 T/ e- DDim StrMessage 1 J: e6 r5 @$ w2 {% d" {
Dim ObjRSA
5 x9 C, ^1 @  p( o' TLngKeyE = "32823" + a! k4 L+ L2 o: U, k; h- |8 B
LngKeyD = "20643" 2 m5 l  ?( \  z2 h2 F* N: F
LngKeyN = "29893"
/ m7 b/ _0 V2 T6 r" l9 H& }StrMessage = Message
, G7 z, |/ B) u" U- L" z4 ZSet ObjRSA = New clsRSA . @% [8 z' V3 R( Z- x- ?
ObjRSA.PrivateKey =LngKeyD ( ], h+ A. J; f- e& J( \, s+ M5 e
ObjRSA.Modulus=LngKeyN 1 F) M: E8 ^5 r- I" W
decryptstr=ObjRSA.Decode(StrMessage)
6 ^& C9 [( \/ F6 o! b9 vSet ObjRSA = Nothing
% V4 b2 W! S+ n3 d. _* m! |" l) ?) Fend function * E- t9 Y. G9 _9 \$ v. Y
dim last,first
9 f) Y) y& h7 r3 nfirst="!@#$%^&*()"
+ [$ Q" s' I* [) NResponse.Write "加密前为:"&first
4 O" k. I. k6 z; @9 K/ V0 vlast=Encryptstr(first)
2 a* G/ m) ?- u# f8 e0 ~Response.Write "加密后为"&last ( k# Z) w4 x9 g/ P" i* Q
Response.Write "解密后为" &decryptstr(last)
: n/ }+ E" B" D9 F% m+ P%> ==============================================
) t% \1 _# T% U8 i$ S6 b剩下的就是字符的对照表了) `9 r$ R7 D& n
===================字符集================/ g# D4 |0 B$ i$ t1 D; m6 n& V
1_____6EBB/ a' `* |* @" M: \
2_____5C1F
  A( M  {3 t8 z) {, s! @3_____4D75
3 H: p( N5 Y  u* o2 _4_____26CC( G6 m7 Q* G% `4 d5 J7 r7 b- J5 N
5_____4F88
2 x# c- h; m% i6_____3F4E
) l4 Z( }8 N4 ?8 w3 K' P5 E6 w7_____0A9D
" u6 e  q( |8 q" V* }$ b8_____1A1C7 Q9 `" m1 ^' @
9_____6D20$ M9 D  P; v  }0 |+ l! k
0_____10899 [7 n; e: T9 P& Y' q9 V
a_____0F3E7 U6 c. |3 l  `* w
b_____3159- @/ m7 r! H# g) @
c_____3517! O( r9 N. v! m5 ?' L0 R
d_____419C2 j1 m9 `; w7 h  ^
e_____615C
+ _+ T( u& L" `+ pf_____556F; E  {- t3 ^6 Q4 N; I- P/ h$ l9 y
g_____2B7F1 r; Y5 \9 _$ `- f0 ~( Z
h_____0F9C
- s, u3 s1 e7 J- ii_____00FA
2 O- @  k# E' s+ `( C& s" Ej_____5A503 ^! ]- a( y" K4 R/ v3 |0 t
k_____2850
- I0 m' K+ I# c) U( }' v7 F; Yl_____3E7B
; E# c6 A: P1 z/ F# }! `9 Y' O. l+ dm_____71C59 c9 ~! K1 n  h. |7 ?
n_____1FC8
7 b4 }1 E# N' v' M6 p4 jo_____74C1
, C& ^  u( Z9 b8 l" Sp_____5FB8
5 _% N8 F  s' B" X+ _7 H3 lq_____6085
2 K/ d8 c: J0 [+ I; L1 X. d+ nr_____3AC4% @  `& ]; o1 n7 I, f
s_____2F50
; z% W- W& Y. N  h2 [t_____36F82 C. y! E- W5 A5 |5 H* I1 W
u_____7010+ L+ C3 w6 ~2 B3 n! h
v_____0B42
7 C/ `$ r5 O, l# d5 c, qw_____1C7A
! L0 v2 f" w9 `' \& R& R3 Q- U: yx_____16F8  V1 z& x3 S$ \  `9 {  Z$ [. I
y_____2EE71 N2 m9 F" H3 ?/ }4 c5 i( o
z_____5CF3
8 m% ~4 [3 p2 A9 e!_____6233
& ~8 N! C; X4 j+ O; |2 A@_____3A45
- ^; @2 R/ I2 C! n: b. p" N#_____2291
9 Q' T1 A  P# z* I$_____5D5C
6 {1 N/ H. _& @/ w" C# ^) U%_____09B93 d$ p- c0 s6 h) }
^_____43EA
# ^) e  Y" l) e% ]' s, L&_____62B9
% B. D1 i3 I" h; A+ h2 {& S9 E: p( I; L*_____6301
# F+ h2 Y: _3 h(_____4659) `9 i. }+ k4 Q7 P' b
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表