返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: E: ]) w- W# H( }原始出处:http://www.3ast.com.cm
: \  T2 ~% a8 f( V, m: _
0 f" T$ E6 v* [4 L2 k看不懂的直接绕过7 J; H* [+ u/ p6 j3 U/ z
加密前为:hwy123456
* W4 o* d/ W1 H& d9 G8 e加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
: Q5 ~* {, ^2 `. u; x7 L& ^# h( ]5 d0 L; E5 W4 k! j' h$ v
============================================# h' V% v# Q* e4 _! N2 f$ U3 B
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" V8 a5 n2 L. M
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法- k- g2 Z8 c( Z  ]' ^
以下是RSA算法文件5 p# G$ ]9 F5 C# j$ H, x
6 i3 ?# D6 q: s( i* L+ \) y1 T
文件名RSA.ASP
( z0 t5 c: A9 q2 E: x; _  r2 d- |===============================================
- g/ P( U6 q1 f* Y1 k<% : b/ T5 ~" }- ]4 n% [  t
Class clsRSA   P* f) O0 ]% h) Y5 E# o1 W
Public PrivateKey 3 J4 E# R/ c6 \/ l5 ~3 T
Public PublicKey ( L, S/ }, K+ S+ ?* o0 M7 D) O2 n
Public Modulus 8 w: B; z1 g( m8 f/ j
Public Function Crypt(pLngMessage, pLngKey) ! t$ g: |/ B! z2 Y  L( q
On Error Resume Next * }) n: }% B, J! q- Z# }
Dim lLngMod ; J. D9 i% T' T& m) }/ V3 ?
Dim lLngResult   D' h- x, ~/ |3 P5 s" G( k7 O4 v
Dim lLngIndex
# t, ~5 R# }, F4 s5 cIf pLngKey Mod 2 = 0 Then ) g: T5 f, p5 I* d' t
lLngResult = 1
. i4 j+ o3 Y  b) L! Q* qFor lLngIndex = 1 To pLngKey / 2
! B' m& F7 F/ E9 V3 j% F5 qlLngMod = (pLngMessage ^ 2) Mod Modulus   `' O1 O, t% _: F: @  o
' Mod may error on key generation ; t! y- ?4 h5 n' L
lLngResult = (lLngMod * lLngResult) Mod Modulus
1 t  v1 r$ {9 y, c! N* N4 V% e  ?If Err Then Exit Function
7 f# C( ?7 y4 V1 [, A* c( G* PNext / P& C& T) M- Z$ W" k
Else 2 Z5 t5 d' O% \
lLngResult = pLngMessage
0 G7 z- T: Z3 c5 {% `+ O4 gFor lLngIndex = 1 To pLngKey / 2
9 y: S6 I" }  @1 t; Y5 MlLngMod = (pLngMessage ^ 2) Mod Modulus
0 N1 _6 y: i/ u* x( bOn Error Resume Next
5 l/ _) J5 m/ t  f  B1 N  d' Mod may error on key generation
& a0 b: A+ _2 ]+ T; }lLngResult = (lLngMod * lLngResult) Mod Modulus $ O" M. {: w. B$ I% L
If Err Then Exit Function / O2 t( ^  a/ A) O0 @! |
Next " q7 B5 c+ x8 K8 \
End If 3 ^$ P- ~" K& w; f) }
Crypt = lLngResult 5 r3 U( h9 y, b$ |! \0 L8 F! ~
End Function  Q' P7 W# Z9 R5 ~  f  D' O

5 d1 z4 W3 _# hPublic Function Encode(ByVal pStrMessage) # o: ~$ F2 |9 @: x! B; \
Dim lLngIndex * b" i! I. v' @; D) q0 s
Dim lLngMaxIndex $ `) `: H4 V$ b1 y2 Z6 j/ w% b$ n& z
Dim lBytAscii
+ S" P4 P' D( c! A5 iDim lLngEncrypted
; E4 l$ J" d* @, FlLngMaxIndex = Len(pStrMessage) ) L9 T6 T; ?+ }- y4 \
If lLngMaxIndex = 0 Then Exit Function 0 j8 O9 u) ?4 o+ a7 E3 s
For lLngIndex = 1 To lLngMaxIndex
$ I- \+ u( W! Y" i' u( D2 ylBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) , o+ {, I8 ?* o' U+ T
lLngEncrypted = Crypt(lBytAscii, PublicKey) & [- w- N& N& M/ a0 Y
Encode = Encode & NumberToHex(lLngEncrypted, 4) ( v# V( Z" U" V& x. S2 k7 l2 X7 C
Next + H# i1 x' d! L
End Function - N$ L- p- E6 [2 i2 o
Public Function Decode(ByVal pStrMessage) 9 r+ W  V, S& U6 p
Dim lBytAscii
9 p/ r& r* g5 H" V0 |( p" R, G3 l- JDim lLngIndex   h/ m- Y9 |" V7 j) ?
Dim lLngMaxIndex 3 Q6 y4 e! a! B5 c( x
Dim lLngEncryptedData
! \8 x: W$ R! M" F3 |1 y, a( QDecode = "" / U# U- f( x6 _) z/ h6 g* w
lLngMaxIndex = Len(pStrMessage)
+ Q, i, R" h! |6 E3 L% ^For lLngIndex = 1 To lLngMaxIndex Step 4 , z* g6 N- I. T( X
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) # U$ d- x: N' X0 ^
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 D/ @, n2 E+ f2 K7 fDecode = Decode & Chr(lBytAscii) ! S' l+ c$ l0 }# u) E
Next
: J4 d& \7 X/ X2 k6 d4 SEnd Function
+ P. ]) t$ ^7 G. |- i: XPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 0 O: P3 ~9 ^& L) a$ X3 G# G1 p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 3 Q0 @+ Y! b6 X4 Y! X& T8 ~4 j! ]
End Function
& U7 m$ ?% g1 I# H7 DPrivate Function HexToNumber(ByRef pStrHex)
( a3 z4 M. S0 Y0 q9 b+ ZHexToNumber = CLng("&h" & pStrHex)
% }% K6 q( b2 B# v9 yEnd Function
. ~2 O$ R" t' m2 E$ f# V" S/ G" aEnd Class 2 c8 w4 t* W8 A' D/ A! }* J
function Encryptstr(Message)
0 A) A+ x0 J5 k. a+ G& _# t9 ~Dim LngKeyE
9 S! L2 O6 |9 W" xDim LngKeyD
* r0 y3 E7 d) e( _* j, N5 nDim LngKeyN * a/ Q' x9 {* n: _
Dim StrMessage 0 q) @  y8 v( W4 d1 V3 S3 l
Dim ObjRSA & Z9 i# H/ t: k$ [$ w
LngKeyE = "32823"
( s4 Z& u% p7 L  m  KLngKeyD = "20643" 3 u& M8 d- E$ Q, `
LngKeyN = "29893" & l, E: e) k" `
StrMessage = Message
9 N6 D4 i- V' F5 eSet ObjRSA = New clsRSA
" u1 `, W4 f" r. Z- p/ |ObjRSA.PublicKey = LngKeyE / Q* [: G7 r9 B0 r3 S
ObjRSA.Modulus = LngKeyN
  |9 @0 E5 H1 ?4 P; R" U8 ?: X0 OEncryptstr = ObjRSA.Encode(StrMessage) + _+ z0 I% b$ k) A/ x
Set ObjRSA = Nothing
- b  H& `$ u$ t1 Q- cend function% S7 X; ^) W0 }4 e! J
Function Decryptstr(Message) ' U' v% E! }1 @/ U* u$ F* r& e
Dim LngKeyE
; q& m  s0 ^& k# @' i) B! sDim LngKeyD
# ^5 z# o$ R4 [, Q. X* j! MDim LngKeyN
" g0 W" F" n% z/ l: e- ZDim StrMessage
2 K, S  e8 J0 j1 W: N0 ^Dim ObjRSA
. v2 D# Y$ f- b* X% E9 ]LngKeyE = "32823"
. ]/ `/ W' C3 i2 `9 Q2 C. ^! _+ {LngKeyD = "20643"
8 _  `& d! ^; T% X7 y7 eLngKeyN = "29893"
+ ^. `( a- M  g% h& D! ^% a! RStrMessage = Message
: C; {- |5 O. q9 w. ^% ]# C, u1 KSet ObjRSA = New clsRSA
1 `4 o! }% V! K2 E9 ]$ N- k# oObjRSA.PrivateKey =LngKeyD
( B$ T2 r6 S  U. s5 U" K+ NObjRSA.Modulus=LngKeyN & J! A% g# u5 C6 d3 {/ A
decryptstr=ObjRSA.Decode(StrMessage)
) t  T8 w! O  q3 z, I" r1 dSet ObjRSA = Nothing . Z  V  i& _8 T8 J4 S5 ^
end function : q* [3 |7 j7 }% [1 W
%>* F( N3 q; h& O) G& Q7 S* f
===============================================# K% r4 _( ^, h! u

2 H6 H- {2 G! q& U4 V还有一个用于测试这段代码的test.asp
& X1 X: X4 X3 R有兴趣的自己搭建个IIS测试下8 X1 m, O) ^7 |7 M
<!--#INCLUDE FILE="RSA.asp"--> 9 ?; q6 x- o3 z9 G# Q# m; H! s
<%! Z, C1 \' }' A2 Y8 q
function Encryptstr(Message)
- J. _5 g. l$ rDim LngKeyE 1 Q2 S3 K7 w0 n) W
Dim LngKeyD 9 T. h  ]7 M# P+ g& ], M
Dim LngKeyN % ?! \( `/ n! ?6 _: u
Dim StrMessage ; J/ I+ h, l" A8 k, a7 l6 A
Dim ObjRSA
8 u. V, Z0 t; j- BLngKeyE = "32823"
; G! l" O) {4 B/ A. j$ X& DLngKeyD = "20643"
$ @& Z% W1 ]" m9 F# o% wLngKeyN = "29893" 7 Y3 J, F0 i9 m: l7 U1 q
StrMessage = Message
% u- u# k* D' b* v" kSet ObjRSA = New clsRSA
$ X' O: T  j) z+ B/ ~, e# BObjRSA.PublicKey = LngKeyE ' W) b  c6 |4 w
ObjRSA.Modulus = LngKeyN
( M7 M, g- s. |& tEncryptstr = ObjRSA.Encode(StrMessage)
# g& o' M; U4 D( ~6 `% M8 p. w9 }Set ObjRSA = Nothing
- z$ d1 n$ O# w  P+ N( }: Iend function ) @* {2 i; {8 H5 W/ C$ s6 i. a
function decryptstr(Message)
; B  C( e+ U0 Q  Q+ j; VDim LngKeyE
) p6 r( H6 J  T1 O8 l2 WDim LngKeyD
2 T1 f, L) s5 n, WDim LngKeyN
7 b1 L, `+ Z8 O" W0 ~# H8 }Dim StrMessage 8 |. o, h9 v3 W1 F
Dim ObjRSA
8 V: j% G% P2 ^" ALngKeyE = "32823"
" X, w6 }. |2 }$ BLngKeyD = "20643" / ~) Z" X5 O3 E7 X# ~
LngKeyN = "29893"
# n6 e! w* H" Y1 j2 x$ \StrMessage = Message ; ?5 z" v& r- i' K; i7 r
Set ObjRSA = New clsRSA
" a& n* l( g0 F1 y% T5 K2 dObjRSA.PrivateKey =LngKeyD - l# B0 n7 N) N- X- u
ObjRSA.Modulus=LngKeyN
" Q+ k" k! Q6 t0 h. f8 T  Idecryptstr=ObjRSA.Decode(StrMessage)
/ B3 z' O  q! w$ t" ySet ObjRSA = Nothing
0 x: Q# h8 A- G# V. X3 G' I' send function 7 t! _8 R; ^6 \' n$ O
dim last,first % X3 u; O0 t( P' [
first="!@#$%^&*()" ! d0 ?; h3 y9 A7 G1 }( W
Response.Write "加密前为:"&first
* R9 v1 O3 D5 q% P  l. Q) \! Klast=Encryptstr(first)
; l; y& o: Z4 r/ eResponse.Write "加密后为"&last
) D+ }. Q9 r0 `' t; a. e# V" FResponse.Write "解密后为" &decryptstr(last) 3 R& i$ o' w" b6 D
%> ==============================================
- y8 k. }$ i1 j( Y6 _7 C剩下的就是字符的对照表了8 E+ c  `3 w" Q* ~. E
===================字符集================  c$ C0 W7 T  f8 H5 X" ~/ `
1_____6EBB
. }6 a6 I3 l, }* E/ Q6 N2_____5C1F) l% x2 S4 `) d. g" T* d$ D
3_____4D75
& `0 ?- S6 _1 T5 O4 V+ T4_____26CC
# j2 r, M: A  _5 c2 o5_____4F88; J& ~# S% p: J& m$ r# d6 G$ K$ k
6_____3F4E
/ P/ }3 I& f+ k& Y7_____0A9D
- n& m  @9 K) K, N& X' J; W4 S8_____1A1C
) F- ?  b9 P5 U7 x9_____6D20) }. H5 ]0 [/ Z) S4 G
0_____1089
/ e) k7 ?$ J: Ia_____0F3E
9 V( E4 ?3 _: m* _5 Y( @" F$ e! Zb_____3159
: t' p; }. W8 K' `: I& sc_____3517/ M" E7 W$ F# Y" T5 h  g0 D0 T
d_____419C
% Q4 K  V$ o! y4 k" g3 L: E! ?e_____615C
* c3 C+ f4 O/ }: Qf_____556F
( h) z& ^' `! }6 Q) j! A) u; pg_____2B7F2 A- W, }- G1 T9 H* X1 u
h_____0F9C
0 _* s+ ~5 b/ H0 Ui_____00FA. z: O( D  B  j; g
j_____5A50
' L6 v1 c4 a3 ]5 e, f, J# }k_____2850) R: y: y; f3 S2 f
l_____3E7B# H' E( J% n, t9 Y
m_____71C5
9 h  s, c3 J6 y+ ln_____1FC8
' L# @# I6 E( D4 J3 t. Lo_____74C1# @0 [% }. A/ ]
p_____5FB8
) [0 }" |( u7 C0 Z- i5 hq_____60853 d  z0 ]0 r: g
r_____3AC4
6 L+ a6 _6 u/ _! `, ~s_____2F50# u# J( ^, U) I" k$ f
t_____36F86 i& p, B" d  Q) n3 Y& k
u_____7010" Y% G8 |, f6 Q6 I3 Z
v_____0B42
0 B" X% c6 X9 g& zw_____1C7A* N2 S2 W. A' ?5 k
x_____16F8
- x+ |& c5 U4 U' [4 xy_____2EE7
, T3 F- l' X7 c; C* S. n/ az_____5CF3# e0 V! t) B& e3 n
!_____6233
( Q" I% b( n; E5 I) s6 i; \8 ~@_____3A45
: H  B. ~3 c4 j8 [  l$ I#_____2291% c5 b$ B0 m9 G( O
$_____5D5C
$ c, h6 R# F' e* C# E%_____09B9
3 p; `! ~! ]! C" T^_____43EA
/ I! P0 j7 o$ E! G&_____62B94 h# X  [9 Q3 T$ w3 O
*_____63016 ^# T( @3 D  O" q9 m0 K
(_____46595 y$ E' d. y" M2 R' L8 R
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表