返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- w' H$ O+ y/ E: y
原始出处:http://www.3ast.com.cm
' T2 q% y: H1 J4 i' h! q# Y8 y5 F5 ^# ]- p* w
看不懂的直接绕过
' x$ D3 {" b5 T2 z8 Q加密前为:hwy1234563 G# o+ [: X/ m2 ^- f
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E. a! O! H) E" O+ |% H; C- }

* b" E; X0 g; n) [4 Y& T4 A============================================
. U0 g) u/ l2 I- a上面是当时自己校内的心情。现在已经解破出来了,分享给大家; {5 m- c) Y6 L
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法: _2 h( I3 a4 g
以下是RSA算法文件- W+ o, D" T8 P1 H% |
, h0 Q5 V2 }* i
文件名RSA.ASP
- l6 l: K) |$ z) O+ U===============================================
; `3 d. H2 U* X! v) ~<%
% }/ D; U8 [$ s9 `9 pClass clsRSA ) L# j. w# l, c# |2 k, F
Public PrivateKey $ p3 q1 y# @. g+ R- k" Q, U
Public PublicKey ! |7 q  E# u8 p; x+ k
Public Modulus
0 Y( W! l- e! _Public Function Crypt(pLngMessage, pLngKey) 8 m1 A/ D" }$ b7 b; F
On Error Resume Next * q! S; [/ W" X$ W
Dim lLngMod ! ^; v$ b; K" W, e# i3 A
Dim lLngResult
% q9 f8 n+ g; o4 b. {5 V* ^Dim lLngIndex : K0 s" C; S( Y" ^! L5 e* n7 P, N
If pLngKey Mod 2 = 0 Then
! N* z$ V- J" M4 YlLngResult = 1 6 l/ L6 W( N& o) l, K* z
For lLngIndex = 1 To pLngKey / 2
+ K# m1 l4 |  f9 g1 B* qlLngMod = (pLngMessage ^ 2) Mod Modulus ! ~+ P/ O' I! c8 t
' Mod may error on key generation
- N" c+ t, h$ f9 }* PlLngResult = (lLngMod * lLngResult) Mod Modulus + D# u' ?# _" ^. j
If Err Then Exit Function ) q. w" A' f8 @" V
Next 8 w! |, P/ d5 m3 I' W
Else ! w% C! r5 W8 |' @
lLngResult = pLngMessage 5 n9 z; r# _, C/ }
For lLngIndex = 1 To pLngKey / 2 # R/ [5 |7 ]3 ]# P
lLngMod = (pLngMessage ^ 2) Mod Modulus ! Z" E# B9 X$ W, n* j
On Error Resume Next
; l, z! J& c8 |' Mod may error on key generation
! |& P8 N& o+ |lLngResult = (lLngMod * lLngResult) Mod Modulus 2 ~" X' |+ ]5 @8 A5 q7 X# L
If Err Then Exit Function
8 I: u. k, }1 g/ T3 U, ANext ( e. ^! w3 V& L! T( W3 s
End If
) b1 o- B# h! z, Q; q. R) K6 W' sCrypt = lLngResult & z* p$ `$ v$ E. R8 n
End Function
0 W" F9 g, t3 S) G0 L' H# m- a: D- B) q, V+ [: |
Public Function Encode(ByVal pStrMessage) 5 E+ @5 R9 ^' U; l0 B5 {4 u
Dim lLngIndex 5 T8 t4 u6 D$ e3 ~. P5 e
Dim lLngMaxIndex
/ L4 l$ T% M1 N& K( Z" J: ~Dim lBytAscii
4 y- A. M5 f5 T$ w+ ~2 C" R5 RDim lLngEncrypted
7 t+ d% I" i& P: ulLngMaxIndex = Len(pStrMessage)
* ^+ C! L+ _+ LIf lLngMaxIndex = 0 Then Exit Function
( w7 t* ]' f4 v! V1 l6 dFor lLngIndex = 1 To lLngMaxIndex
4 U, c7 {" A+ I6 W& c. NlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
( D! \4 t: W0 n# b0 YlLngEncrypted = Crypt(lBytAscii, PublicKey)
8 D/ f3 }; b% ]8 ?Encode = Encode & NumberToHex(lLngEncrypted, 4)
! x1 o4 k1 u6 n' I  y7 ANext ; z4 V& z* m) k- ~3 I. G3 Z
End Function
# o, l. N$ G7 V% V) K% kPublic Function Decode(ByVal pStrMessage) 3 ^. L5 h! |! C7 k
Dim lBytAscii $ H" @# w, v" p2 a* |0 P
Dim lLngIndex
; j, j' R2 e6 U1 H5 Y$ ~/ {2 Y! GDim lLngMaxIndex
9 A- M1 A+ ]5 v; O# XDim lLngEncryptedData " c. X2 `4 b9 U2 e3 I# r
Decode = "" 8 w) _7 f  N& g1 u4 Z  n8 n! |
lLngMaxIndex = Len(pStrMessage)
  X  c3 G# c! U5 P. D9 {0 f2 fFor lLngIndex = 1 To lLngMaxIndex Step 4
% f/ H/ ^# D+ a% IlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) + F- ?# k( ?. ]( n7 E8 x
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 7 _6 k( H6 h' K) {$ k* X0 N
Decode = Decode & Chr(lBytAscii) 6 N$ C& x9 ~1 L- A
Next 2 A8 }: `  S7 z& u$ h" t
End Function ) u/ ~4 r% S! ~* q& C
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
, y  k4 t: r1 G4 X+ M, w3 ?6 ONumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
2 y+ ~2 I) {! e$ c: J6 h* sEnd Function + G, u, d3 v9 o7 i. t+ K
Private Function HexToNumber(ByRef pStrHex) ' E& C3 {. f5 X2 _$ I4 C! q
HexToNumber = CLng("&h" & pStrHex) 3 }! w' P0 r6 A  b. K0 _
End Function
5 y9 r. x$ L: }  _End Class
8 D' C9 Z. O# Zfunction Encryptstr(Message) 6 E1 ]. h: o4 C0 V' K) A+ P4 Q
Dim LngKeyE
& z( b, I: Y: e! K7 x& t8 ADim LngKeyD 2 t2 s! G5 |% C# C7 }9 E: G6 \
Dim LngKeyN ) D" e; G# ?9 q; o
Dim StrMessage 0 Z/ P9 d0 P" L$ O% v1 t: b& u
Dim ObjRSA 4 D, H5 B+ B( \2 r; R
LngKeyE = "32823"
% ~: }+ O( L  y; G: o8 m$ m' {4 jLngKeyD = "20643" ( d$ ~9 |: T* e8 i( e8 d
LngKeyN = "29893" $ C, F/ d& H) ~, S
StrMessage = Message & h7 F0 l" E+ O, N8 P( [! m+ F' o* U
Set ObjRSA = New clsRSA
, ]. p1 X" Q  L5 D( iObjRSA.PublicKey = LngKeyE
( [5 U2 n) f8 W7 f* L9 X. |) JObjRSA.Modulus = LngKeyN
" r2 D" o! N1 g/ G2 {/ H8 \Encryptstr = ObjRSA.Encode(StrMessage)
' q; j* u2 }9 {& g" t7 T# J0 USet ObjRSA = Nothing 6 S4 {- _+ I2 t( }
end function
1 j5 g$ w$ G6 V3 S6 H  v- R$ }Function Decryptstr(Message) ( |9 m8 a" K$ [! y( b; p/ _
Dim LngKeyE
2 |$ H4 G: _3 l! E  V& |9 Z; k0 W" }Dim LngKeyD 3 o3 e6 c* K5 [: E
Dim LngKeyN 2 t, C- c5 F' ]9 v. i. ~
Dim StrMessage
- q# U# Z0 I  m# Z2 Y1 LDim ObjRSA / k. l, V. t  r& x: t! y
LngKeyE = "32823" & N+ m+ i9 Z5 L
LngKeyD = "20643"
3 s8 f( |3 \# W7 MLngKeyN = "29893" ; y$ F, g3 J/ z% f; _, X
StrMessage = Message 9 f2 p) ~) J5 f( @" L; y
Set ObjRSA = New clsRSA $ C6 Y  O! i* M; U
ObjRSA.PrivateKey =LngKeyD # h( L& t. I6 U" \: J5 D
ObjRSA.Modulus=LngKeyN
9 D+ l) e5 d, @  T6 ?" ^3 Udecryptstr=ObjRSA.Decode(StrMessage) # S' Y) q5 h, X3 r
Set ObjRSA = Nothing . B( _# t% X2 T# G; P4 ^
end function
' S( X( U& |$ S1 {%>  h4 s0 S2 c. V/ s; p
===============================================! ]# c: z: N) x3 b- e5 c* e

. [& ~5 }* E& b$ z9 N% s3 A' F还有一个用于测试这段代码的test.asp
- f9 [, s/ F8 V0 L7 e有兴趣的自己搭建个IIS测试下
( q5 V- `6 |6 b3 n2 `, _" n: ]. U<!--#INCLUDE FILE="RSA.asp"-->
2 r- @2 f: ?  Q% F) j<%
% L7 p' b# M  o" V* T; R9 D9 _function Encryptstr(Message)
& x+ q4 s, `% _. g' CDim LngKeyE
# ~' O7 v" b% b+ K( @3 [6 [& M% HDim LngKeyD 8 B2 `7 @, J& W, n6 `4 d" ]; a
Dim LngKeyN
2 ^# K% q8 I" }$ tDim StrMessage
, |% w6 t; |8 C9 _. FDim ObjRSA , f$ e+ a; V0 ^. t# Y; P* z
LngKeyE = "32823"
$ l' k' }8 I& Y/ `9 p, jLngKeyD = "20643" 5 e, ?6 V: c/ R
LngKeyN = "29893"
  ]( W6 h' o7 U# ]% h% JStrMessage = Message   L: B5 X% \! k) z
Set ObjRSA = New clsRSA
( q3 T0 d1 J* |* ~ObjRSA.PublicKey = LngKeyE
; p# [/ d# J: {- X5 [6 kObjRSA.Modulus = LngKeyN
8 Z( U: M) a2 Q9 U. q2 CEncryptstr = ObjRSA.Encode(StrMessage)
& L0 b% k' j2 |1 g+ a  ISet ObjRSA = Nothing + E! }% H, W& V: j9 c
end function
1 Q: t- \) N2 W5 m5 ]: B! P  k( L4 b* lfunction decryptstr(Message) / q! M5 b) A1 h
Dim LngKeyE
- m* k5 P5 u" r, w7 JDim LngKeyD
( x) L( j9 E3 C, R6 Z3 jDim LngKeyN
& _3 ?2 R+ M) G2 V$ r4 Q: x5 KDim StrMessage
/ C2 s+ \- c  C  X0 X- W  n* KDim ObjRSA 3 Q" `9 P( A9 o
LngKeyE = "32823"
0 N: Z2 t& r2 {% l1 oLngKeyD = "20643" / U: i0 J7 t" p- u
LngKeyN = "29893" & S( u0 K7 h+ n
StrMessage = Message 1 ]/ d, s  K3 ~% p( [: s
Set ObjRSA = New clsRSA
% J# ]! W6 o3 L& c% k: z. U4 x- g6 lObjRSA.PrivateKey =LngKeyD . K9 e- u- i8 f$ h
ObjRSA.Modulus=LngKeyN
4 w7 e) ]. ~) idecryptstr=ObjRSA.Decode(StrMessage)
8 L8 _( V- T+ U( [4 P( X: Y6 H! cSet ObjRSA = Nothing . ?+ ^5 _( k4 l! |5 V
end function
: X; l3 E! {0 j% |" sdim last,first
" A5 i4 s6 r9 C1 ]7 bfirst="!@#$%^&*()" * M! w. P, V' y& f3 d
Response.Write "加密前为:"&first 0 L5 C# i7 F, ]2 ]) [  O
last=Encryptstr(first) 0 Y5 c- j$ ?2 M" x
Response.Write "加密后为"&last
+ s7 F& p( v6 R$ \6 JResponse.Write "解密后为" &decryptstr(last)
0 l, s9 {% h. a& \; q: R%> ==============================================
# I* V# T8 O1 P4 F% R剩下的就是字符的对照表了1 A4 U; `: @) `
===================字符集================
1 ?! S/ F1 T1 z2 X2 v1_____6EBB
5 Q5 d* ]: o: v- r2_____5C1F! Q5 b3 C* f& }- m; T( z0 B+ w1 E# o. ]
3_____4D75
  J4 Y  h0 ?5 X% o1 p4_____26CC
  S% F' b, x. r# l5_____4F881 n1 h) r! F8 r$ W3 p8 D
6_____3F4E( M+ E3 z; O. @
7_____0A9D( k$ ?9 d5 q6 u2 _' q
8_____1A1C
; s5 Z6 ?5 p6 J  T. y* W6 Z9_____6D209 s* G& O/ X# P1 g2 T
0_____1089
, B* T! `6 L8 ~2 m' W% _- c; Da_____0F3E- a1 w+ h4 s9 E- b) B9 d
b_____3159
* `6 Q( D1 c* W2 N* j& J8 ~6 ?c_____35175 x4 r# h/ f* C, @9 B
d_____419C) t& y; C2 l, Q: E- v. j9 e
e_____615C
/ [5 y; h' k! o" `5 Nf_____556F9 @+ i. q" h7 t
g_____2B7F2 m* p) _, d- R* c7 }
h_____0F9C
0 u7 K" H1 x# P6 ^4 y5 A5 ai_____00FA6 T" U) e4 C& {
j_____5A50: f8 H' N# t4 I4 Y+ }8 T3 U
k_____2850  Z) W/ q* [0 o! i8 Q
l_____3E7B7 c9 p- `! P" c; q+ w  m. e
m_____71C5$ L' A5 l' H# E, \
n_____1FC80 t, J+ Y$ q4 @1 A6 v
o_____74C1
: s/ b8 p' w2 ^7 v* ?p_____5FB8
; |, w8 ?1 |, P8 Cq_____6085
( L. @6 h, x" [r_____3AC4
; k0 M; B& C4 n7 Z  T  e' ms_____2F503 x! k- J: A2 f# l3 Y( U
t_____36F8; }. J+ j  M6 e0 E4 G, R0 `/ M9 B
u_____7010. m. E# L0 {- A; Y  y
v_____0B42) {8 c& A  o* s
w_____1C7A1 N, U* y7 L6 o/ f
x_____16F89 U" J. }1 C2 ]/ \' E
y_____2EE77 S# C7 K, d" A! L7 z9 y
z_____5CF3
: G9 Z% m$ |1 C: \# V, M; Q) D9 ^!_____6233! O+ v$ A+ o7 ^% c6 B  T/ B
@_____3A45
% l( _' D; C9 z* M#_____2291& W" S3 x4 B6 a3 k
$_____5D5C
8 Q4 d  ?% U2 c! D%_____09B99 m7 Z: {/ |) M& d8 v: ~. f
^_____43EA( O" U! l2 X: F* S
&_____62B9) f8 j/ j9 u  ?5 _; v1 G
*_____6301
& J- ?( |& ^2 t* K0 D& T( q(_____4659
& G" e  Z* G4 c" n! Z3 ]9 W)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表