返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
  Y% g3 a7 v9 d+ U& c原始出处:http://www.3ast.com.cm$ N, z4 g' o5 U0 E, ?
$ ^% u# J" U& g" y+ ?
看不懂的直接绕过! n3 b1 ~( w1 q2 ]# J
加密前为:hwy123456
1 A: r3 |) G  S+ {- _7 {加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
0 T$ z% V4 f7 `4 ~; D& P! [$ K/ o2 k
! ^3 r7 p5 c! M9 K1 ~============================================, H9 E/ @# n: f. X. j4 D3 D
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" W4 H) j/ g+ A4 E
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
7 [  \# ~. t( }0 D以下是RSA算法文件
) b2 J# y* X! k: y: B) ?3 e
+ i" Z$ q2 e3 w4 l* B% N3 Q文件名RSA.ASP
6 [2 V/ ^& _# E: E# k: {===============================================
' q8 _3 W! N2 m- d5 t& T& [' s) I<% . v- {! I* Q: Z# a. M0 A' ~; x2 E
Class clsRSA
( b/ `( I8 E9 N7 M% A# m2 e: wPublic PrivateKey
" w; r7 |3 ]/ J2 R- |$ Y+ G4 x5 \6 u9 xPublic PublicKey
5 |, Q. C" i" I2 }Public Modulus
  y4 M( g8 m  NPublic Function Crypt(pLngMessage, pLngKey) 9 H/ Z1 H  g$ j0 K7 I$ g: t  F5 Y3 N
On Error Resume Next 0 L, j) I2 R- K; O
Dim lLngMod ' q! j9 w  H- h
Dim lLngResult
( }! n. |2 B4 h5 gDim lLngIndex - g" q6 E* o1 K# j$ C( c
If pLngKey Mod 2 = 0 Then
5 C$ u8 a) S1 `, g- P  Q* C$ U( s3 _lLngResult = 1 / c- d1 ~  d( F3 n1 x, @' }) V
For lLngIndex = 1 To pLngKey / 2
3 q) r7 K( K' X/ llLngMod = (pLngMessage ^ 2) Mod Modulus
/ p. D0 d: k6 A, F* W; a; l' Mod may error on key generation
+ x& n' W) V$ |0 P' M+ ^6 f9 QlLngResult = (lLngMod * lLngResult) Mod Modulus
3 @2 s: n" t1 k5 t: P6 vIf Err Then Exit Function
, z: h2 {$ n. h7 z1 Q) P8 Z% Z7 pNext * n1 t. b; Q! C( v% Z/ L
Else
. ?' i) P5 f$ R) \3 ^# O# d- HlLngResult = pLngMessage
( z1 V2 ?: G% Z- @For lLngIndex = 1 To pLngKey / 2
$ r4 p! p; V  g, W4 @6 clLngMod = (pLngMessage ^ 2) Mod Modulus : n4 H+ ^5 ?; ?: v
On Error Resume Next
( F: |! s9 \5 Q7 l- {( l# c' Mod may error on key generation
/ V6 L3 n5 a2 a. h6 n) S5 @lLngResult = (lLngMod * lLngResult) Mod Modulus
) c) j+ D; r) p" |  g8 O( WIf Err Then Exit Function
; h& K- Z% r. ^0 n. J5 i0 W7 oNext $ _4 H3 V, W% C; p7 j0 u' y1 ~
End If
8 L- Y7 u' Y; G5 s' M( d; hCrypt = lLngResult ! d  S8 g) h& S- J* v9 g' \
End Function+ v, F& I: a2 L# X+ F- o+ j( Z9 E$ N
/ z# n5 K& g  f& V! a
Public Function Encode(ByVal pStrMessage) ; j) H' ~8 H; Z, M+ B/ `  b
Dim lLngIndex * x* J  |5 S3 m/ ]7 ]
Dim lLngMaxIndex 7 W! h6 S* M: ^
Dim lBytAscii
. b' z* G  f. ]# f' O! b6 X$ SDim lLngEncrypted ' q; K4 ?3 T# A( N' C- q& _7 y
lLngMaxIndex = Len(pStrMessage)
) @+ s- T1 ]4 E1 {: cIf lLngMaxIndex = 0 Then Exit Function
  b: h0 [  ~6 z' oFor lLngIndex = 1 To lLngMaxIndex 0 A, V0 s/ ^+ j0 m) c# I
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # B( e: U/ \3 N5 i/ E
lLngEncrypted = Crypt(lBytAscii, PublicKey) * n* \0 i6 x% o* J5 M- p5 I6 U
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' F0 J/ k3 B7 ^: a" v2 p' y! ?Next & o3 {) Q: g- F/ Q( `/ v- F
End Function
, p& a2 S, Z  U6 C2 R8 w: ^0 P  x7 Z$ ^Public Function Decode(ByVal pStrMessage)
& ]5 \4 f1 I! I" S' P- a4 QDim lBytAscii # n6 d/ @- F" @' V- u1 [
Dim lLngIndex $ S' D% B, u! t  g9 N5 m( e
Dim lLngMaxIndex 8 q3 _9 d, E! |; d& J1 ^% n% K
Dim lLngEncryptedData
9 S0 s5 H' V5 i1 m$ G, @9 vDecode = ""
  `- p3 F7 O# xlLngMaxIndex = Len(pStrMessage) % K3 m% A( s7 I
For lLngIndex = 1 To lLngMaxIndex Step 4
; I' \% K! |, r( i% L0 l6 [" nlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 p. Y4 H  I$ Z* @2 R* A& ~- LlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 7 i/ j$ x  M+ N& a8 b/ R
Decode = Decode & Chr(lBytAscii)
9 b& M+ A. `& S- @0 t. ]9 e/ UNext
4 Q7 x$ m; Y0 p. JEnd Function 4 J' d& K0 |2 B) i2 z/ X
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
& W1 v+ ?* I$ n' s. f2 n8 ?NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) - H7 m; r  t& B
End Function 1 }% V8 S' Q4 A' f3 z
Private Function HexToNumber(ByRef pStrHex) " F  M: X& a8 `" o% ?
HexToNumber = CLng("&h" & pStrHex) 3 S( c& H7 F) P- p2 |% Q, F
End Function
7 _; G0 w/ X. d8 P/ `9 b4 s, BEnd Class 8 O% j& \- O8 A
function Encryptstr(Message) 7 O" |. D7 ~, @% R
Dim LngKeyE 9 b' y4 |' L* A; M) `- {
Dim LngKeyD
" |/ B, u2 b4 l* vDim LngKeyN
, ]/ G4 D1 N( a3 x8 j$ C% cDim StrMessage 2 }3 q; X% @2 M# N' K: ?
Dim ObjRSA 7 z. g2 z: i1 H9 b; t8 k, B8 Q( f
LngKeyE = "32823"
: ^2 }, b. x% u) N; C& V0 DLngKeyD = "20643"
0 c8 O! b8 T) f4 E. b! b3 ~  CLngKeyN = "29893"
! B3 d& o9 B" ^2 H7 wStrMessage = Message 6 t; w' w5 e' z
Set ObjRSA = New clsRSA
) h1 H6 o+ Y) A: [/ bObjRSA.PublicKey = LngKeyE * c6 q+ c9 V% |: [
ObjRSA.Modulus = LngKeyN / r- w  A% E- Z
Encryptstr = ObjRSA.Encode(StrMessage)
8 B  k2 v- w2 f  {Set ObjRSA = Nothing
4 K# D( o+ p% p/ e) i. _& H$ }$ G: Cend function
+ `+ [5 x2 j% R, R, G' \; p. @Function Decryptstr(Message)
" c0 ^. {% H# a, g- K/ WDim LngKeyE 1 }. j8 ]9 ~: X7 ?0 n
Dim LngKeyD
: D" ?0 v: P9 n3 w1 kDim LngKeyN
4 F  ~' F0 z' U8 j: cDim StrMessage 3 ~" z( z- s$ x2 Q
Dim ObjRSA , k! K2 ?" O7 |8 `
LngKeyE = "32823" : d& a9 _3 b/ r: i: b4 n* m% K
LngKeyD = "20643"
: @. o7 J' x9 h3 W3 L, o5 f$ uLngKeyN = "29893"
: k  a8 R: j! G/ O2 TStrMessage = Message 5 {# ]; {& ]$ Z; v3 C
Set ObjRSA = New clsRSA
7 e% L2 Z( O. i7 D# wObjRSA.PrivateKey =LngKeyD 8 i! j3 Q5 F% O* v( A) N
ObjRSA.Modulus=LngKeyN 1 B7 b% a8 U' e) K
decryptstr=ObjRSA.Decode(StrMessage)
' y3 \' g+ o- d/ X9 QSet ObjRSA = Nothing / o' K6 G5 t4 ~* a7 h1 N
end function
  }) d( ^8 M0 H) k, s%>/ I' t6 E: R& S
===============================================
  v  H9 k- Q; G, K3 m
; ?; g8 F; D  J1 r还有一个用于测试这段代码的test.asp% G7 t" J4 d' E: y
有兴趣的自己搭建个IIS测试下
+ K7 @- Y5 @7 F. v<!--#INCLUDE FILE="RSA.asp"-->
. G" \9 A" V% M6 ]1 I; v+ T9 i) S<%# B2 S7 b0 ^7 R. D) q- X* y* O1 R
function Encryptstr(Message)
# m8 _" h) H6 E* E  T9 \Dim LngKeyE
" d; E" w+ f! C+ M  ^Dim LngKeyD 3 k& P% S; e3 V' S- r
Dim LngKeyN
" X. l- j6 T1 W* f" W8 V# l* [( A' DDim StrMessage
( @* H. D# c& T: H9 @2 QDim ObjRSA 1 f$ e  y$ m: K( b+ H5 a
LngKeyE = "32823"
2 O6 s4 e2 t. [- pLngKeyD = "20643" 1 L2 U: T/ V, E. t7 U* w
LngKeyN = "29893"
) |8 f# G$ R8 IStrMessage = Message
( D. {; ?( o) w$ KSet ObjRSA = New clsRSA 3 a* n) R- h  B" R, f  [
ObjRSA.PublicKey = LngKeyE
1 _' \% `* W1 P# xObjRSA.Modulus = LngKeyN
5 R, k$ o" R' V$ I- z4 ?Encryptstr = ObjRSA.Encode(StrMessage) ! L& J) l" o* h( r; ?/ R
Set ObjRSA = Nothing + o- {5 b9 v- m' \$ ]1 `2 \
end function
5 m3 j4 F, K% D8 Ffunction decryptstr(Message)
. r' c' n6 a+ x3 P9 s, aDim LngKeyE # u1 a1 Y+ _6 q0 m: {+ P, a2 l
Dim LngKeyD
1 E1 e8 F& y7 F* _4 |Dim LngKeyN ( n. X& i, r5 e/ D$ K# D
Dim StrMessage / _' M! I% d3 J; t
Dim ObjRSA
- b* v; U6 A/ h. @6 o: }LngKeyE = "32823"
+ }; L, d# Q' P# n9 U6 Q2 R& WLngKeyD = "20643" 8 I$ U8 o3 R# w6 x
LngKeyN = "29893"
  q' v+ O+ S9 l$ KStrMessage = Message # x( p, V, K, O7 m4 I: s; W/ b0 |
Set ObjRSA = New clsRSA
( W( W& x: h4 }' R+ ^6 i2 aObjRSA.PrivateKey =LngKeyD
+ C( {9 E0 w+ BObjRSA.Modulus=LngKeyN 7 d  h1 w, p$ V9 i
decryptstr=ObjRSA.Decode(StrMessage)
; b6 A0 y  Q4 J2 O0 H- YSet ObjRSA = Nothing & ]. m9 D  `4 k
end function
7 c5 ]2 o$ J, B6 C- z- b  fdim last,first 2 W/ `# G. K' a; t6 Z  M
first="!@#$%^&*()"
! W- k) A+ \1 m2 Y4 C8 tResponse.Write "加密前为:"&first
! z+ R1 S& [8 j( X0 xlast=Encryptstr(first) . g- B6 l0 }3 S7 u& m3 v
Response.Write "加密后为"&last * k! G2 q+ q% j4 n8 U# q
Response.Write "解密后为" &decryptstr(last) 6 x- U3 H% u- c  Q1 {  Y
%> ==============================================
- ~7 ^7 e  W' ?- `; ]剩下的就是字符的对照表了
' B; J2 ^) x: H0 p% d===================字符集================
3 F. G6 p1 f& N. {' f# Y1_____6EBB, _( Y/ ^1 g8 D( O
2_____5C1F
# u8 V! q$ N$ }; M0 ~/ I0 t3_____4D75
7 Z+ m/ I! p0 X" ^; @4_____26CC
3 w  @' M* z/ E' \1 t: ^! i# L9 @5_____4F88
* C4 m  W" A" t6_____3F4E
4 ]. \7 K" b' P$ @7_____0A9D
+ W* N3 Q* P  x; B8_____1A1C: R  A& J, b0 Y1 {
9_____6D20
; `, X( s1 v8 d) Z# X2 c( r0_____1089
, g) G6 _/ o+ W, wa_____0F3E+ |9 r- @" G) N, u2 N0 v8 H
b_____31590 i% g5 ?4 q. }) L: y
c_____3517
- R( K6 [9 V) ?; R  @2 D/ ?2 Kd_____419C7 w' U8 b; D, b. j7 Q4 _' w9 L$ z
e_____615C
% f, V$ |6 n, ?# A1 ^f_____556F
6 w, q& ~. C. _( p# U5 Wg_____2B7F
' _1 G0 K) z/ ]# O0 Q, Vh_____0F9C" ^+ I, U( w% w% q1 p. G: @9 u
i_____00FA
4 N, {6 _* ]" m0 v- l8 N& G  {j_____5A504 P0 Q+ Y8 H2 s$ |' ~: j  E
k_____2850
8 Q% x4 T2 U2 B, _) J! r$ ~2 _l_____3E7B0 g+ y, c8 M4 Z1 Q! N8 y; V
m_____71C5
! q* U4 w* Z* Z: Nn_____1FC8- r* E4 i9 u# B/ P
o_____74C1) F' r4 R/ C1 R  k  E
p_____5FB86 Y+ h1 f5 ?+ X0 y  T# i* w
q_____6085
  n! a5 }+ B& [5 |: ~r_____3AC4
3 l' W' X8 K8 a+ `9 xs_____2F50
% U  R2 m+ F. v& ?t_____36F83 o4 ~2 u) V1 u& X
u_____70100 L2 J& j* m% z. V
v_____0B420 q' ?, e- U8 }% m# c7 M) F
w_____1C7A/ H7 ^3 k3 M0 z2 t1 z
x_____16F82 H0 {6 r5 p' r
y_____2EE71 H2 e) g& {3 `' U2 I' P/ V6 r
z_____5CF3) z2 Z2 f$ e7 l: R! ]7 ?
!_____6233
8 V' p5 H8 c' R0 ]) E@_____3A45
2 O9 n- u( r9 ]: n$ o# u; P6 I#_____2291* H& f* J# d) e6 N
$_____5D5C
2 D% \% e5 m* {+ Q%_____09B9) q. \7 }1 X+ q: X
^_____43EA4 B3 @3 G' }, a* I2 ?
&_____62B9" C1 [. v* `6 N3 I/ R. t& {, ^+ d
*_____6301% M4 c% G0 [! _5 y- |
(_____4659% {4 I: \( \( h. W% s) J
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表