返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm7 l* V; m9 u/ g
原始出处:http://www.3ast.com.cm5 ?4 r* Q3 [0 ]( ?7 k* _& G
# i6 `( C# Q+ j: R
看不懂的直接绕过
& u/ ]! E6 \1 _0 P$ A3 v加密前为:hwy1234561 Q+ L, V4 A! [& C
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E- |% e# e3 D! m: l6 J

+ T, W. v( Q# n1 u* @2 \- ?============================================% a2 \( u" ^% e2 f/ R5 T5 Z6 b
上面是当时自己校内的心情。现在已经解破出来了,分享给大家3 @+ \$ V  ^: u+ C/ D. r
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法& E" S# t# f/ i" B9 }
以下是RSA算法文件4 F+ v! N$ I' I* n& a5 z

! S1 N; o0 F' ]: v文件名RSA.ASP9 u: u6 I4 R5 p* N! C
===============================================9 N2 k8 f0 L: B+ T  b3 J' x
<% ! b; H% W* i* C
Class clsRSA
. X+ O; J! z) e' r8 ?& F5 m9 A* y9 h; WPublic PrivateKey
/ f/ e& O* i( w3 \Public PublicKey . P) ^/ K  i% s  B0 X8 i
Public Modulus ' {' }9 c3 p+ _
Public Function Crypt(pLngMessage, pLngKey) 1 k! a* U5 E& _4 m
On Error Resume Next ; B0 A' M' o( ^
Dim lLngMod " r. P( _1 y: [6 o* C( l+ ^
Dim lLngResult / Z# R$ V9 O- H" J
Dim lLngIndex 8 Z0 C9 Q- {4 }/ m, _
If pLngKey Mod 2 = 0 Then ( ?5 n. l7 Q4 {
lLngResult = 1
) }/ k. `) l3 l2 L# a' M9 c0 IFor lLngIndex = 1 To pLngKey / 2 9 B4 s. o2 h9 m, f
lLngMod = (pLngMessage ^ 2) Mod Modulus
& G1 w% o9 i* W1 D$ ^( X1 T' Mod may error on key generation . e2 z' M* C" t' t1 n! |- m
lLngResult = (lLngMod * lLngResult) Mod Modulus 2 `2 r6 Q$ p' i+ F  m, O3 e% i
If Err Then Exit Function ! n! _, ^0 W  g/ W7 A* P( Y- ~7 J
Next   o7 \( B9 u2 y
Else / W5 i+ G) G  k7 w
lLngResult = pLngMessage
' d6 m2 d8 N$ OFor lLngIndex = 1 To pLngKey / 2 - U9 _7 ]2 P& d' W6 A" z
lLngMod = (pLngMessage ^ 2) Mod Modulus
6 U. Y4 l/ C6 c: o6 d' x2 J% GOn Error Resume Next , n. S% I7 v6 v' _
' Mod may error on key generation
/ k: b# X! P7 |$ dlLngResult = (lLngMod * lLngResult) Mod Modulus + f9 J9 ]2 M8 ]& j& r; S1 i  J
If Err Then Exit Function $ ?8 j% N/ Z7 l- ^& Q0 ?
Next
6 o7 c  E: ?) H1 J% \End If
, D# w$ @) F, T$ b. B% o% sCrypt = lLngResult
: A' Z' Z/ y( w& h$ hEnd Function
3 ]( U2 E8 v9 C1 h( {# M% Y! l5 ^& c: {6 L' A
Public Function Encode(ByVal pStrMessage) 7 S8 F' J9 S! M; a& P0 E
Dim lLngIndex ( J* ^  `, s! p: G9 Q* c; \
Dim lLngMaxIndex
; |3 e. A3 R; f7 a$ A$ }2 eDim lBytAscii
6 C, r2 F6 k& Y& bDim lLngEncrypted
2 V) P, G7 H1 k) r9 \lLngMaxIndex = Len(pStrMessage)
8 O) h7 A1 U6 m# {: UIf lLngMaxIndex = 0 Then Exit Function ' S) F; w/ i' T; i3 \
For lLngIndex = 1 To lLngMaxIndex
/ V' w/ f" i1 Q/ k* ZlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # V7 Q" I4 r) `! E7 C9 X
lLngEncrypted = Crypt(lBytAscii, PublicKey)
9 z8 C. f2 s1 l* i- _Encode = Encode & NumberToHex(lLngEncrypted, 4)
  k! ^: o& Q( {- j1 d# bNext . b6 u) t8 H, Z6 K) _3 d
End Function
0 c( L4 y; D4 \! ]# `; SPublic Function Decode(ByVal pStrMessage) ) }& o. B' c' m
Dim lBytAscii / |& C9 K' M9 P7 d7 X+ t7 z/ P
Dim lLngIndex ( k# V& @9 p  p& h
Dim lLngMaxIndex ) M  O+ |& b! d+ I# C* O+ @
Dim lLngEncryptedData
* K0 R# i7 ^' P. h0 B6 M( o4 IDecode = ""
: a; D& P. T/ ClLngMaxIndex = Len(pStrMessage) & d( q% X/ ^) y* M) l/ ^
For lLngIndex = 1 To lLngMaxIndex Step 4 * U- j" ~2 h  `) n4 |; [+ W) i4 d
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) . b0 c- X' W0 u" o
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 w7 ]8 x: g, U6 W. M, ^% ^Decode = Decode & Chr(lBytAscii) , I( O0 ~) E- Z4 o% o  P' Y( Y
Next
: u' b" R2 \( Y; x5 X( I- W4 IEnd Function
6 }' f" Z( v& u( T  `Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) : e) J) u) J) n1 l, `
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 2 U7 h$ b9 E& M# F  v4 m4 q
End Function
( D0 k; u2 ^8 \. Y& wPrivate Function HexToNumber(ByRef pStrHex)
* @" W' C3 L4 q+ THexToNumber = CLng("&h" & pStrHex) : o1 [' Y- x: @) L9 G
End Function 6 O4 ~6 J; V( U
End Class
; O2 c. u2 V4 y' R$ X: n4 Q/ K8 lfunction Encryptstr(Message)
' g% _: r" C; z' k7 \Dim LngKeyE , F5 Y  y' X9 T0 o3 r9 Z" F2 j
Dim LngKeyD
: N* I9 u( ]' G  Q' SDim LngKeyN % g: O' ~' c  p, d; h" s
Dim StrMessage
; N+ U4 `6 t6 h/ v" s% t7 ~3 l5 RDim ObjRSA
5 {; {' }& q$ ]' ULngKeyE = "32823" , X% N  K5 `: T' a- |
LngKeyD = "20643"
5 R9 F& f  ?1 S! |. T0 cLngKeyN = "29893" + ~6 a& \  {# n, r
StrMessage = Message 0 T( J" c5 V8 b: D, w5 D6 i
Set ObjRSA = New clsRSA 0 y, q% d  k# @+ g
ObjRSA.PublicKey = LngKeyE 0 L) e) b) |4 Z, w% u$ g: T  ^( u
ObjRSA.Modulus = LngKeyN
) d* |! \  e' G9 y" G$ [$ GEncryptstr = ObjRSA.Encode(StrMessage)
1 I/ A; t. h4 R  k$ n' X$ kSet ObjRSA = Nothing 0 N- e( s% `) V) n- p  ]) a1 J, ]
end function
& |4 w6 L4 C' N! p/ V; ?6 xFunction Decryptstr(Message)
  Y# h! B: ~; l0 U& W& }Dim LngKeyE
7 |5 s, F8 c. K( ]2 V6 v6 Z  qDim LngKeyD % T3 x. ?3 k! H5 c: ?  D
Dim LngKeyN & t% X1 d, G/ K& S
Dim StrMessage
7 e& l: l  S, u# d& `$ V. KDim ObjRSA , @+ t* m# T1 t% g5 n" N% o
LngKeyE = "32823"
5 \4 ?, \1 c8 H6 ^& S3 L" JLngKeyD = "20643" , q, o% g1 @! S2 r' l7 }$ R
LngKeyN = "29893" $ T( v( t* w, {6 ?# _: K$ Y
StrMessage = Message
9 ?& t1 I5 R# ~8 X/ v0 \Set ObjRSA = New clsRSA
8 c' y1 p" {2 M. h! \ObjRSA.PrivateKey =LngKeyD 9 Y2 Q4 {$ {* ^- H0 F) n9 U
ObjRSA.Modulus=LngKeyN
  c# [( z$ N/ I3 @4 m8 w4 gdecryptstr=ObjRSA.Decode(StrMessage)
* c0 N! L  h. u' ISet ObjRSA = Nothing
0 G0 z: O+ W5 ^- ^( ?8 d1 Y/ ]end function
. ^' ]8 X2 r) l  |%>
6 J; G6 v  V; c" P& s- Z9 d  D===============================================5 o* ~) B; z1 \5 I) b8 q" C+ t

8 b3 J7 `1 a9 f- A$ E还有一个用于测试这段代码的test.asp" C- g  t" P( |, c* L: G
有兴趣的自己搭建个IIS测试下; t$ M/ d" r$ L: @' c- G& n
<!--#INCLUDE FILE="RSA.asp"-->
. @* |3 {" n9 N, x( ^4 r5 ^<%" M) S1 y, J: v& \
function Encryptstr(Message) - I) l& D( B+ p7 ]4 `+ C
Dim LngKeyE , l& a/ U0 O7 u' N1 I5 o
Dim LngKeyD / L" N" n+ P0 k! S0 B+ b0 q$ a* P
Dim LngKeyN
' {6 {- r$ x, m" t. [, ~( @Dim StrMessage ! J2 f$ M, u" J) K- Y
Dim ObjRSA ! L& w& b; }! q$ F3 ^
LngKeyE = "32823"
  {+ f+ J% W/ ?; e2 Q" r% b3 aLngKeyD = "20643"
, Z3 a3 L, ]: D6 eLngKeyN = "29893"
. j: `6 t0 _( u' P  p) DStrMessage = Message
% K: ]2 n, T( A  Y: d3 D" dSet ObjRSA = New clsRSA
& O- I* u- P5 [& P+ U9 Z$ PObjRSA.PublicKey = LngKeyE
% `' A0 U( J- |- h5 BObjRSA.Modulus = LngKeyN
9 t& @8 x. Z9 K# u. |. [2 xEncryptstr = ObjRSA.Encode(StrMessage)
( `  o' ]6 s/ L9 e1 zSet ObjRSA = Nothing
) |" h% q! d6 m/ J6 v' Tend function
- v: A' t( b( d( g) F) H' m( |) H6 J5 Bfunction decryptstr(Message) ! h- g: N- N" W/ o: A, I$ T
Dim LngKeyE 0 O' ]  B: F: L- r3 `$ O- G
Dim LngKeyD
8 k0 {* A8 Y- S! a7 D& ?Dim LngKeyN
& ^; D, d, j2 e  JDim StrMessage 6 F- F9 B2 ^- R
Dim ObjRSA 2 I6 G6 u2 c% y& _$ _! G
LngKeyE = "32823" / J* V% u# y1 J5 @& ]  A
LngKeyD = "20643"
+ M8 K, h9 v" \9 A+ i* p0 WLngKeyN = "29893" ; O. O# T4 v7 D
StrMessage = Message
& i' i. b- R- i+ N4 W8 r! }Set ObjRSA = New clsRSA - H6 p1 S2 T# \0 H' V* Q
ObjRSA.PrivateKey =LngKeyD
0 V' n) d8 p8 F, z5 O0 V, k( IObjRSA.Modulus=LngKeyN
9 j8 N. f$ ?  E4 [1 `) p( O% h1 P. ldecryptstr=ObjRSA.Decode(StrMessage) 8 ]4 d" R5 H; A) Q5 k
Set ObjRSA = Nothing 5 ~% x  Y* x" K' f! X0 @- w, J
end function
8 i: ]1 t' x: I! o4 l3 Q, Cdim last,first : {/ ?4 ]- v0 `
first="!@#$%^&*()"
1 R6 I  d- C' \; B2 gResponse.Write "加密前为:"&first
- ]) @& m8 x$ q; u# x  [last=Encryptstr(first) 5 Q4 o1 s8 p  g- l0 k
Response.Write "加密后为"&last + o0 ^; F. o) B$ m
Response.Write "解密后为" &decryptstr(last)
) a, h9 Q7 G5 q* u* l: }) b  n%> ==============================================
" j. m1 V2 o+ M' f# ^, n! B% D6 D2 v剩下的就是字符的对照表了
% \1 M/ O: g6 \4 d7 J0 m===================字符集================
4 T! |2 T& f3 D1_____6EBB: E! Z7 v- d5 w' _- `- m, P
2_____5C1F
6 k4 n6 W& G8 M+ ?! I3_____4D75
9 U0 p% F. k' A' R* J4_____26CC
6 [" v  I9 F/ O4 W5_____4F88
( G7 e9 K5 p' M- @6_____3F4E1 Z- ^; S9 r: t) n; I; z2 O! d0 _
7_____0A9D
) U) V) ^- ^; a' I( [8 \8_____1A1C
/ Z. {. T6 q1 z3 g4 r9_____6D201 E& ?6 P$ Q' q& d$ C/ |9 _: m
0_____1089. m; T1 ~! O' Y' H0 v2 |# m
a_____0F3E- e8 V& `9 Z! Z1 d" F
b_____31598 G- [4 d* @  S% Z
c_____35176 g/ X# e' x+ ?8 q" q# b! \2 P
d_____419C, N' P& `8 @+ h2 U7 }, n4 u  F
e_____615C: w2 ?7 K: y$ z' c8 G
f_____556F
: ^( G- t* g' U- [! u! {& eg_____2B7F
( O8 E. W4 {/ E* K9 yh_____0F9C7 B0 F( F: H! A* v$ |0 r9 F' H6 T2 d
i_____00FA  {; [/ f7 ~0 P% N1 P0 j  i
j_____5A50
. {& J- k5 g$ I* ~k_____2850" o- d. ~9 F5 a3 `
l_____3E7B4 b3 A5 K) g( [; c* c# U3 |6 I
m_____71C5
" d: @* z: I, L$ a9 o; x  on_____1FC8+ Z  _' b# {! j
o_____74C1
# ~. ]) O* o4 m+ j7 C- @+ Q! Ip_____5FB8
, a. w7 [6 j' {7 q5 }3 q# W0 u. Aq_____6085$ Y- Q: i  e+ I; h( i% V  J
r_____3AC4" w; B( t, j) P
s_____2F505 M* a) M- V4 [( {. ^, v
t_____36F8
& w! }* U. \+ H3 K( Yu_____7010
7 b1 w  i+ ^7 a. d* @$ jv_____0B42
, L& b) N  G: s- W) Sw_____1C7A8 y: l$ B/ b9 H' w/ q/ A. u0 V
x_____16F8
4 Q) f7 R, f0 ~* gy_____2EE7
7 o: o* {; m+ P6 M" |' }. Xz_____5CF3" u8 D1 x$ S; z4 O; g" Y7 [
!_____62337 e* p9 y+ e; r
@_____3A456 W6 H2 s2 f& x
#_____2291
( V$ m- b# c' \2 i/ C2 A$ @$_____5D5C
8 [0 r. V, v, v7 T/ a; D- B2 i' g% c%_____09B9
& O5 d! |6 Q! @6 M^_____43EA
2 z4 {' K% `; ^/ [&_____62B92 K; i( m" P4 j$ Y# |1 d) u
*_____6301! [, H! |$ V  U! }
(_____46595 U5 x- Y9 ~" Y& ?+ `! T* \
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表