返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm5 P$ L6 A5 E. b. `; T
原始出处:http://www.3ast.com.cm2 ?) W& _, H) n2 b: j) S
3 C$ W- ?  `: T. g' y* @! e
看不懂的直接绕过% n; w! `7 c+ t% q
加密前为:hwy123456
; e( y( O! _% d. C% t加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, D0 K" `5 g9 ?0 l3 J9 \$ p5 }0 X9 X* q4 x( V
============================================+ [0 }3 t7 R; C1 e
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" ]) P2 Y$ J- W! g
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法- S& |; U, _6 M! d" Z0 T' d
以下是RSA算法文件
! G# {/ k" D) d
( m/ V( c/ D; }9 R文件名RSA.ASP, Y2 C  B' z4 ~. h
===============================================
% x6 Y! h4 S1 e4 y( ^<%
# h# V% W& P5 ^+ ^Class clsRSA ! O& E1 m+ |7 y7 _- u
Public PrivateKey
; C7 ?' w% X5 iPublic PublicKey
0 V; U# X# g( [, DPublic Modulus # v0 b" T, t& m& C% _2 H
Public Function Crypt(pLngMessage, pLngKey) : B7 a& g; E" F/ N, ^9 N
On Error Resume Next % n! Z' R8 Y' }! ^) M
Dim lLngMod
: O2 A. a4 T; K, ZDim lLngResult
, n4 M# j2 ?$ Q+ A3 S/ `Dim lLngIndex . N% g7 k, [% b" S
If pLngKey Mod 2 = 0 Then . v2 g/ ]$ c( U
lLngResult = 1 5 A: [& i( T1 Z$ T- M: W" \, L
For lLngIndex = 1 To pLngKey / 2 1 h& `; p5 D( E, }. t7 X
lLngMod = (pLngMessage ^ 2) Mod Modulus * I9 ?4 R5 |6 ?" _: c1 X, K
' Mod may error on key generation , ~5 S. r9 S: ^# Z- @( u( ?
lLngResult = (lLngMod * lLngResult) Mod Modulus
$ I. s( ~8 J& C6 B4 \If Err Then Exit Function
, E: G- k' o: _9 a9 cNext
  L, R* u, p6 z1 BElse
  r+ U) G# A2 N# BlLngResult = pLngMessage
, F' e1 b8 s( E% DFor lLngIndex = 1 To pLngKey / 2 8 q" v! A9 a! Y  t8 O9 Y/ N/ e
lLngMod = (pLngMessage ^ 2) Mod Modulus
$ t8 x& ]9 y+ D; `' I! ZOn Error Resume Next $ d! h7 Z; a2 Y% C
' Mod may error on key generation ! I( X  O/ N6 |$ o9 h: m/ k
lLngResult = (lLngMod * lLngResult) Mod Modulus / d& P  X4 x$ ?& A
If Err Then Exit Function - U1 M  I( e5 u# F0 z
Next * J* o" d) f% P% ]9 D3 f
End If 1 ?4 M- B5 {8 h3 Q9 D7 g1 L
Crypt = lLngResult ' R2 u6 s. l6 Q+ @% N3 l9 B. G
End Function
. ^0 K: T. V8 j' p/ v/ t8 P) ?+ F& b) e$ |( Y6 g
Public Function Encode(ByVal pStrMessage)
" C. V8 \* x1 \Dim lLngIndex
8 H$ `; ?! w) b+ TDim lLngMaxIndex
  q  [2 Z3 g$ J' tDim lBytAscii
& }9 D8 d5 K4 S: WDim lLngEncrypted 5 @# o" Q6 I4 |4 l5 a
lLngMaxIndex = Len(pStrMessage)
+ f5 e! L; ^% K1 d" s) FIf lLngMaxIndex = 0 Then Exit Function ! _  S: M) u& \0 K# K. ~7 b; C5 M
For lLngIndex = 1 To lLngMaxIndex ( O7 Y: U0 ?9 {+ J  I* E, g. B
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) " N; i7 P3 w5 }
lLngEncrypted = Crypt(lBytAscii, PublicKey)
+ W4 N  G* f6 h8 I5 iEncode = Encode & NumberToHex(lLngEncrypted, 4) 2 ?. H$ q* X! n7 i% w
Next
/ h: y1 k8 ?* [: V* y) bEnd Function % p; [, P) l# \  k* [2 ?, d
Public Function Decode(ByVal pStrMessage)
3 H$ z+ g- z& M$ W8 _Dim lBytAscii & o, x; C, p* c2 T5 a3 Z
Dim lLngIndex " J9 c4 ]) p* G8 F# V5 ?6 Q! f
Dim lLngMaxIndex 6 p/ L) E. E" Q% z- l
Dim lLngEncryptedData
+ ]# j; c( ^) l- D+ x8 _6 h/ pDecode = ""
+ a0 I+ v( f+ r; YlLngMaxIndex = Len(pStrMessage) 7 T- Q3 O& m1 F" ~8 P: r3 }7 f# V
For lLngIndex = 1 To lLngMaxIndex Step 4
: p$ v$ q/ ]+ |$ @5 v1 V9 alLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
# ]. ^+ M  W7 q) i! ]lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
1 f7 |+ n$ u/ k7 p3 qDecode = Decode & Chr(lBytAscii) 2 m& y$ x+ n& [7 H+ p) C9 K
Next + O1 ]2 z$ c( m( t" w. {; a
End Function 9 ~. a+ d2 r% p
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
. w5 c, V2 \/ U9 C5 b& D" ANumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
! Z! {9 u  G5 h5 T) p; \. aEnd Function
- I- Q& [( ], B! jPrivate Function HexToNumber(ByRef pStrHex)
$ O5 j4 E( [" z3 LHexToNumber = CLng("&h" & pStrHex)
5 `/ \) B2 Y. M9 a: f* a3 D1 }" EEnd Function 0 [6 s) B- m( k+ f7 [: Q
End Class , R! U6 x$ M$ ?4 e; }1 g. a
function Encryptstr(Message) ; O8 ?5 _& S3 I( i
Dim LngKeyE
! p" b5 u; t. R; PDim LngKeyD
% f( F3 u8 j" ?1 _: r! hDim LngKeyN
; K& A; w' [; M2 T& W4 u+ {Dim StrMessage
% F) ?: y1 e) [5 ~5 u' j9 WDim ObjRSA
% {6 Y6 j; X; I, p4 c& |) HLngKeyE = "32823"
, e3 p+ n0 J! i+ SLngKeyD = "20643"
5 F8 Q$ Z* l- t) b4 yLngKeyN = "29893" 8 K  |( u. n+ a8 S" u8 h$ M
StrMessage = Message % V& n$ |; j2 n3 H
Set ObjRSA = New clsRSA . g/ T3 {1 r/ R9 l
ObjRSA.PublicKey = LngKeyE
* i( f" X/ U( v  aObjRSA.Modulus = LngKeyN
+ Q% @) ?9 g& K! _" o5 WEncryptstr = ObjRSA.Encode(StrMessage)
: L; }# G' v4 B% C2 z$ E9 b6 ~- JSet ObjRSA = Nothing ) P4 g& D8 H8 D' [8 t
end function
" j- \' W5 ~3 U4 jFunction Decryptstr(Message)
+ u: `- ^; ]  ]2 l" IDim LngKeyE & D) d2 U* D9 b) C3 G9 E# x5 ]
Dim LngKeyD
9 D; _: o0 K: u0 G. B0 P2 z/ x; DDim LngKeyN
  s3 B1 x, y" jDim StrMessage . t& Q- A5 ^4 ?+ v: `
Dim ObjRSA , t2 I( r& o* g
LngKeyE = "32823" 2 X) Y, X( B- {
LngKeyD = "20643" ( C' ]& w3 I! Z6 w% m
LngKeyN = "29893"
2 A: m+ E" }$ `( QStrMessage = Message
, w- v! O( ?+ T" }5 T6 U+ @& CSet ObjRSA = New clsRSA - Z- s* |+ F+ ~5 V: g- b
ObjRSA.PrivateKey =LngKeyD
; G$ v# a2 V0 XObjRSA.Modulus=LngKeyN / g& P" M1 l8 y' {2 Z& O
decryptstr=ObjRSA.Decode(StrMessage) " ?) @2 Z* a' ]0 O/ A1 N( ^' B
Set ObjRSA = Nothing 0 _6 r( _2 ~1 A- X! `* g1 r' [
end function 4 z1 K# K: ~. U! G
%>4 d/ O1 W" V0 W0 }* Y
===============================================) b5 N9 p( C+ h( O

1 @" n$ {/ V: w7 S, e  f9 y: R  ^+ s4 J还有一个用于测试这段代码的test.asp
" ?! F( `; n% l有兴趣的自己搭建个IIS测试下2 f- o: N2 _; n) c
<!--#INCLUDE FILE="RSA.asp"-->
! O. W! K( D4 _5 J4 o6 S<%# U% [& U" p7 ]9 q6 D) u
function Encryptstr(Message)
  |3 _' ?1 @- i( P' G8 w7 n! EDim LngKeyE / A% A1 Z' ~* `; n6 W
Dim LngKeyD
$ V4 b( M  i& cDim LngKeyN ' H/ o8 o" g4 C) V" k! e0 }
Dim StrMessage % ]1 n) b3 b6 @/ ~
Dim ObjRSA 4 C* }# g; M. R. ]% l
LngKeyE = "32823" 8 }( i% @4 I9 W2 C
LngKeyD = "20643"
  t* P+ M2 o: @0 h. y4 QLngKeyN = "29893"
& t. e2 [! ^; F1 `( x/ ]StrMessage = Message
5 U4 u/ W' b3 q, c2 `2 |% z: rSet ObjRSA = New clsRSA 6 Y! d- N8 i6 i) A
ObjRSA.PublicKey = LngKeyE * F1 f( A4 Q( K; X* o
ObjRSA.Modulus = LngKeyN / y2 H9 e; S! h# I4 g4 x/ x
Encryptstr = ObjRSA.Encode(StrMessage)
; e: E; m3 Z6 H4 V$ D) ]& V: d) VSet ObjRSA = Nothing
7 v, \$ t; i# }. _% ~; pend function & N. }2 C' E" v9 p  h. l6 K" r
function decryptstr(Message)
, Q/ g3 O/ s' C+ W" a) h( EDim LngKeyE
6 j, }9 P9 ^: YDim LngKeyD $ O. \/ u% `3 a" y" u
Dim LngKeyN
6 }$ `5 R: s/ C: K7 G( i! MDim StrMessage
% n0 q3 k  U" i- v, o/ y8 j$ f6 HDim ObjRSA * \% j9 a$ b) v9 P7 A1 o
LngKeyE = "32823" 5 k# b9 t7 j) |4 w5 `: K& ~% D$ ^
LngKeyD = "20643" ; Q6 m  \  O  Z; @/ K: {
LngKeyN = "29893"
1 y, I  S; I. w! {' P5 {2 GStrMessage = Message % i/ b: y) q# @, [/ h1 @* |- v2 B
Set ObjRSA = New clsRSA
% \6 M9 ~. W. _- z. p8 d3 XObjRSA.PrivateKey =LngKeyD 8 k0 F8 S3 L; m) F+ ^; u! [
ObjRSA.Modulus=LngKeyN
" I% D/ [9 {9 F1 a6 f$ zdecryptstr=ObjRSA.Decode(StrMessage) # j* A8 i4 I1 Y3 ?$ B3 r, w
Set ObjRSA = Nothing ( {7 X0 T# w+ _1 X1 Y7 C5 N
end function
# t: j+ Y8 y- t, D  qdim last,first 8 g. ]4 `8 }) I$ U$ R* n
first="!@#$%^&*()" ) F! O. {% N6 q# r. }  x1 C9 z
Response.Write "加密前为:"&first
$ F. C$ c. R& f! d0 olast=Encryptstr(first)
8 b# x$ C% m& H. T( dResponse.Write "加密后为"&last
% J2 `- j4 p! u0 ]( D) s, q+ yResponse.Write "解密后为" &decryptstr(last)
1 m! [' s" z4 Q/ D/ `%> ==============================================1 C. Z/ R8 |3 f2 Q5 J5 X2 ^9 J
剩下的就是字符的对照表了
$ C( M3 M" o2 [) B5 V7 m* J===================字符集================; }6 P0 n" y' @/ b$ _& s
1_____6EBB
) I# s0 b5 @$ u; o, j0 [% T/ t2_____5C1F7 D3 X$ w( u6 U
3_____4D75
3 B# r& k$ P9 Q1 @1 t4_____26CC
- }/ x8 m3 C: Z6 d5_____4F887 ^; ~( D1 e8 p0 O. ^- u
6_____3F4E
7 I3 a% f5 q. Z  A# m* M* S7_____0A9D
# J4 M& m" a' m/ p/ ~8_____1A1C
) I( X0 H0 l! o  k8 t0 b$ I( p9_____6D206 V) G& ^3 Q7 n0 `
0_____1089! X* `. @- [. z% Q# X% I2 T& M  S9 H
a_____0F3E
5 J$ ?/ e/ K# |. Z/ v8 A1 Wb_____3159
0 x/ j5 V  \9 r) yc_____35179 W8 u4 f: W& x2 M& z/ X
d_____419C
2 V' X0 I5 [% u! J% w- Ze_____615C
1 m" ?# N8 _( i. Z) n( r6 ~" Af_____556F7 L; k  r+ e- E3 c" H" L. {. ~
g_____2B7F1 U3 Z4 |: `+ R7 L
h_____0F9C
1 m. k$ l* j# z# ?1 W; mi_____00FA
+ N  E. z- @6 r, m& Kj_____5A50
& u7 T: E  w# S" m% x) ?2 r7 ik_____2850: \* z2 g2 w  ~: y( f% X9 m
l_____3E7B; j- e1 Q1 B3 o. O1 o9 ~
m_____71C5
7 t# }# I( c% Q8 y) V4 l9 `0 Vn_____1FC8
& y) m+ p4 ?. ho_____74C17 z% T4 ^( e+ b+ L4 a& M! }
p_____5FB8
7 v. A0 e' V3 l& [" lq_____6085+ G$ X1 P' R$ a
r_____3AC4
5 C) i8 h4 V- e# O  i( V, \7 `s_____2F502 m# c5 j: @7 D6 m
t_____36F8
' I! ?! Q; c' f% t8 _* X7 Tu_____7010
  S( w$ v: ^8 _7 @$ jv_____0B42
! r' m# \* O% V$ x5 L, z3 S/ j  Iw_____1C7A
  y/ l: ?6 @& ]) y$ A  A8 t6 E8 nx_____16F8/ g0 Z! n7 p8 Z8 ~0 S! _7 j' z
y_____2EE7
" ~5 T2 U7 J9 vz_____5CF3
$ q6 j% x0 C+ i! ?8 S, a1 |$ @1 `!_____6233
% m0 ?0 K: w8 X  _6 E0 R. f! E@_____3A45
2 R7 l+ f- i% V' }6 t; K# f#_____2291# h" W' L$ }* t/ V8 {9 S
$_____5D5C. X( [0 d7 p4 M, g& K
%_____09B9
: _( V2 O: ^& N3 }  K; y9 |^_____43EA. W0 I6 i2 n! ]% o3 e' h) O4 R
&_____62B9
" _" e  B+ O# ]*_____63017 W( C, z0 n0 a" n
(_____4659) E; M  i/ y. J9 Q  g' }2 u
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表