返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm7 B  C$ }# }. l; k% z
原始出处:http://www.3ast.com.cm
2 _* _# l$ b  v2 j' S+ \3 O' I. F. }
看不懂的直接绕过
, e4 ]1 u" \0 c# m加密前为:hwy123456
8 I! v+ {& Q1 X0 D3 z加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E( G1 @) k5 D* E) _  R6 ~

, [$ m9 i6 q  z, s! h/ W' N" q============================================
4 X) k$ D6 k. J( O2 T0 _1 u上面是当时自己校内的心情。现在已经解破出来了,分享给大家* }6 {9 {" _4 s+ C0 F: E6 y$ \
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法5 C" m: [$ t/ b
以下是RSA算法文件
  T8 l  y& i: w' m4 g2 E# l/ g3 G. I# y7 @
文件名RSA.ASP
5 c: S9 y/ V+ V9 k) P===============================================
9 B7 O! B. i* h<% : O% d6 ?" ]4 v" n, G8 }
Class clsRSA
$ W! B, G" i# Z$ tPublic PrivateKey % k. H  U- R/ e; k+ F$ `
Public PublicKey 9 y: T* L  ~  Z. R6 Y. _
Public Modulus
# E' ^( ^* }. u: Z; l5 [+ a/ i& G% I" h* gPublic Function Crypt(pLngMessage, pLngKey) / R: q9 f5 N9 M
On Error Resume Next
# N, c3 C  B% s& p: ]/ H& _Dim lLngMod
# t* A: o0 k. B: B% bDim lLngResult / b# |; m6 F4 V# q# d+ C+ t- s
Dim lLngIndex 2 X- C0 \1 d$ D5 i5 P: [
If pLngKey Mod 2 = 0 Then : e  r$ |% ^  z
lLngResult = 1
! s& J2 y% F) E+ U* iFor lLngIndex = 1 To pLngKey / 2
6 T8 l6 W" b% }$ v: ~2 alLngMod = (pLngMessage ^ 2) Mod Modulus ; B5 w# B3 I& Q( `; t
' Mod may error on key generation
6 O( h- W' l: Q# \3 glLngResult = (lLngMod * lLngResult) Mod Modulus - n, q$ B( m7 |0 e2 P8 J- s
If Err Then Exit Function 1 b; v0 u* p8 K. |0 o( O
Next
" d* y9 t# @3 s- S! eElse : a, Y- P8 o. z( `/ }/ C2 W' H
lLngResult = pLngMessage ) R0 H. s, N6 z" S. A' N( g
For lLngIndex = 1 To pLngKey / 2 & v, S7 M9 s6 l: M# |
lLngMod = (pLngMessage ^ 2) Mod Modulus 8 h- _' o# ]- m+ j! ~. T! F  `3 U
On Error Resume Next + d5 S) k( L1 ^9 ?6 _5 t
' Mod may error on key generation ) W4 L4 d: f4 g% g% E* T  L
lLngResult = (lLngMod * lLngResult) Mod Modulus 6 v: X. X" ^! x/ |1 ~' J6 v  O7 R
If Err Then Exit Function - }: ^+ w8 q+ V, W( [. \
Next / `/ {/ |' W/ V( K" f- u
End If 8 D9 Y! u7 h) C; c" E5 {
Crypt = lLngResult
$ f5 g$ g/ _5 i0 Y9 QEnd Function8 g& [1 r5 K' k7 Y5 U* K

0 Q8 t0 d) T9 ~" }' MPublic Function Encode(ByVal pStrMessage) 9 K" {) |* J5 a! s
Dim lLngIndex
+ f% H4 m+ I' y: I- ]& _6 Y9 kDim lLngMaxIndex 5 Z2 l4 o9 w& B; b/ b) _) a8 e
Dim lBytAscii
' Q" a7 G* F6 x& p9 [$ {2 ^. QDim lLngEncrypted
7 O5 ]1 v0 n$ J8 J: JlLngMaxIndex = Len(pStrMessage)
4 }% b$ \7 M/ L. X" D$ ^7 r( G/ _If lLngMaxIndex = 0 Then Exit Function
$ ^! t  f5 m5 m5 OFor lLngIndex = 1 To lLngMaxIndex
+ P  ~+ d' F8 Z0 ulBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
* I* g+ s1 r! dlLngEncrypted = Crypt(lBytAscii, PublicKey) : Y! X! E- _' d
Encode = Encode & NumberToHex(lLngEncrypted, 4)
" P( N: a9 m" sNext & e/ }' s  n+ f$ t, l$ h, p
End Function $ l! o6 G2 y- c! M
Public Function Decode(ByVal pStrMessage) ) a) \; W8 ]0 g4 L
Dim lBytAscii 9 n7 S8 e: i8 \
Dim lLngIndex : d; w' {" y% A' l% V* p
Dim lLngMaxIndex
# X2 W4 G. Q; C/ ?' x4 B: mDim lLngEncryptedData
5 G3 q" ?' `( o  f! B6 \Decode = ""
8 c& M8 ?- i& U' Y2 F/ M: W6 blLngMaxIndex = Len(pStrMessage) + }7 G! m1 O& y+ q- j. X4 \# W
For lLngIndex = 1 To lLngMaxIndex Step 4 : ?9 t( h% ], t! E
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
( m' e; {( i" C% U! j8 tlBytAscii = Crypt(lLngEncryptedData, PrivateKey) / X! }* M2 v% ~9 C8 _: h& C
Decode = Decode & Chr(lBytAscii) 8 [% E7 @  n0 Z% d4 n3 q( M
Next - `% K' k/ Q5 W- g4 {( n! X
End Function
7 V: v/ ?; t/ h9 N$ t1 yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 7 s9 L# b0 ?& d" h, W
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   Q  R5 [* e8 K
End Function 5 P# w8 P; v1 D+ Q) h
Private Function HexToNumber(ByRef pStrHex) + T% ]9 P9 m  B  c5 H
HexToNumber = CLng("&h" & pStrHex) ; f* v% B; ]" v2 w, p+ |. i/ Y
End Function - G, g( g6 z3 Y
End Class + k* G, C. h. `% [1 p
function Encryptstr(Message) 0 H" m8 Y9 {7 O
Dim LngKeyE # }9 x' r: l: p, i  C* Q5 t3 o
Dim LngKeyD
2 `' j5 B( n6 m, O" BDim LngKeyN
% u1 j  a# {. ?5 E! Q, D& yDim StrMessage 0 L( g# {2 k7 i. {
Dim ObjRSA " W3 [, f# V  Z1 f6 D3 e7 k) o; I
LngKeyE = "32823" ) x; r" [" p( P+ Q( M
LngKeyD = "20643" ; f% G; a1 D* B; \5 D
LngKeyN = "29893"
  H0 b8 n2 D& Y7 a( W5 u3 D) OStrMessage = Message 3 A+ ^* t7 u+ u
Set ObjRSA = New clsRSA
  s  C% }2 j6 h& s" A- c  E- YObjRSA.PublicKey = LngKeyE . b# _: A3 g  o
ObjRSA.Modulus = LngKeyN
. V# V& l, o- EEncryptstr = ObjRSA.Encode(StrMessage)
/ O7 A; [5 s$ bSet ObjRSA = Nothing
9 g) O2 y3 L/ I5 ~* eend function
( M& j9 N6 d( v0 g" Z- H3 ZFunction Decryptstr(Message)
+ U$ X' f; C2 _' xDim LngKeyE ' t& u  i) a$ d. c5 ^; h) N" R
Dim LngKeyD
8 {8 {9 a  P4 H) D9 _" M) v( eDim LngKeyN
: y+ @7 T& i/ H1 m/ n2 O' N. I; bDim StrMessage
2 I6 P/ K3 g( \: {Dim ObjRSA 7 E# t- e' E+ [8 W/ ^3 i
LngKeyE = "32823" ( u2 y+ O5 n) k  T
LngKeyD = "20643" / j" Y5 s( V1 s" N& @
LngKeyN = "29893" ! v* f  ^) u6 K! N7 T. @
StrMessage = Message 5 q; k# F: N+ s: k, h( N
Set ObjRSA = New clsRSA % ~2 x  ~* c, P0 f  g
ObjRSA.PrivateKey =LngKeyD ; \) W4 L% [! A# b% t' G
ObjRSA.Modulus=LngKeyN 3 I1 W% f# C/ V& Z5 x+ P. l
decryptstr=ObjRSA.Decode(StrMessage)   u0 y# Y$ O. a0 Y3 U# i
Set ObjRSA = Nothing
+ `- S' y/ Q& B1 R7 t/ n' Y  H6 @9 jend function
* s2 f; `# ?  e%>
. {& N0 y, m: ~5 O===============================================
, [, F9 {' L. c" x! n+ s( C
% P5 d  h) f8 |  ^还有一个用于测试这段代码的test.asp
+ G6 O& N% T- q- s有兴趣的自己搭建个IIS测试下
) q3 W3 Z! {- K* [4 w  l. u, B<!--#INCLUDE FILE="RSA.asp"-->
4 \3 O0 P% r% W<%
. O/ k# @' R. u& \function Encryptstr(Message)
) S. f% ~4 N6 MDim LngKeyE ) K9 }) P9 E9 C6 Z! \. g2 y5 j7 X
Dim LngKeyD 9 k8 g; [! C. r1 v3 t) G2 L8 E
Dim LngKeyN * ?' K4 g! z+ i  |) S4 x
Dim StrMessage
2 M# j9 o0 T( {, @: H) m+ @* bDim ObjRSA
# {. g1 U4 m6 n$ tLngKeyE = "32823" ; C$ J/ w& u$ m
LngKeyD = "20643"
, Z$ t0 @  E. C# `/ aLngKeyN = "29893"
% z9 \5 u$ f1 y1 d3 yStrMessage = Message , x0 }7 E! U( Y) N: [
Set ObjRSA = New clsRSA 6 z; B; F, D- x: V
ObjRSA.PublicKey = LngKeyE
0 s. a' Z9 H* ?) O9 y, X# p: XObjRSA.Modulus = LngKeyN 4 h7 z5 `1 U9 ]( Y. |1 N
Encryptstr = ObjRSA.Encode(StrMessage)
, s8 |4 |, s& PSet ObjRSA = Nothing   d4 {. c) p1 h0 P  r2 x& U0 w' v; p, V
end function
3 X- ?4 U/ K6 W* dfunction decryptstr(Message) 4 e& s# D# K! b, |# `
Dim LngKeyE . j0 }( V3 f6 U6 A  u. K# K# W
Dim LngKeyD
! N7 h3 J5 E3 u  D. w8 E. n9 xDim LngKeyN # m5 @0 z. N5 u. q" ~
Dim StrMessage
( v6 E- }: I# t4 hDim ObjRSA 2 x9 ?1 a7 F8 L
LngKeyE = "32823"   s! s% ?- T5 v8 o
LngKeyD = "20643"
3 y0 L9 T4 Q" r& }LngKeyN = "29893" - e& s1 |7 ^1 y
StrMessage = Message ! C5 C0 c1 e5 A  @# |
Set ObjRSA = New clsRSA 2 r' _6 R8 G+ P: w
ObjRSA.PrivateKey =LngKeyD & |) n, j9 g7 T9 o# l* y
ObjRSA.Modulus=LngKeyN ( ^3 _1 u- ^. R6 }4 ^' |2 Y! E
decryptstr=ObjRSA.Decode(StrMessage)   F+ T0 P( B  Y& T# q1 g
Set ObjRSA = Nothing , w" ?0 c$ R/ R! ^5 o4 `4 N
end function 9 U2 e; b1 J2 x- v+ m
dim last,first 0 z3 v* n. _. @9 }& {/ ]8 a" Q
first="!@#$%^&*()"
0 Y7 I" T) q# l8 K- V  QResponse.Write "加密前为:"&first / \; [7 m- h- y4 P
last=Encryptstr(first) : ~* m6 z2 v% s+ x9 u( I
Response.Write "加密后为"&last " R+ G' ]7 K% Y4 v% x5 e
Response.Write "解密后为" &decryptstr(last) ) w% N' _2 d& u( p
%> ==============================================
5 v4 ^, t$ t- g( O剩下的就是字符的对照表了
2 Z% ~0 t5 [$ c" ~$ ?' v6 E6 F3 }===================字符集================2 o6 |5 N- |5 Q  R. x' y
1_____6EBB
0 ]) |) ]1 y% x& i( t- ?# ^' ]0 w/ d2_____5C1F
3 h' f5 j4 J5 {# \+ w2 t) `% P3_____4D75" g  t( X5 j  [0 ]; x9 \
4_____26CC
9 ?& N' X. k8 y: Y5_____4F88- t7 X  S! J8 w1 x
6_____3F4E1 ^! q3 n4 \' Q  E) n
7_____0A9D6 g/ v: X! X  q' E/ P. }. f
8_____1A1C
' b& ]5 n# h) V2 f% V9_____6D207 h" _& c7 }& |+ ~7 i$ T3 f( i
0_____1089! u- Q) |* v5 @1 m" Z) a
a_____0F3E2 c# Y7 m. M+ S' {) B
b_____3159
# u" o* l% v* y# Y% {( h& p. i8 Xc_____3517$ V' U! Q3 Q% |- g4 R7 B+ L
d_____419C
8 k" a8 w% _0 o2 K6 d4 g& ~e_____615C
! ^7 n1 v8 y0 k4 }' q( uf_____556F
9 g) C6 J, m' m' D4 b; @# Xg_____2B7F$ K3 z% Y+ z6 j9 a" d* b! ~" _. T/ B
h_____0F9C: |- Y$ B+ j2 C
i_____00FA' r& k$ u& x5 u( D
j_____5A50
6 }- F* [- W+ P0 G7 g; Hk_____2850
! n: P* S5 \# X4 ll_____3E7B6 Y* v" g% A8 V+ |8 G7 e2 L7 o
m_____71C52 M. S8 v8 a# i; _2 |
n_____1FC8
- X1 L1 Q$ G  q: U) yo_____74C17 M* N/ C  j8 q7 |, q
p_____5FB8  ]" x' u4 q7 ^
q_____60850 V: n) q" h0 d! m
r_____3AC4( ^, N9 L- P: W9 V8 ?7 m
s_____2F50) O/ {# i" f0 B9 j0 y( ?
t_____36F8
) [+ x: V4 \# y+ Y& d: D& n- l. ?u_____7010" ?: d- L: E, x& m5 Z
v_____0B42- e' {* a; O# d
w_____1C7A
5 K  P2 k9 K" q$ sx_____16F8
4 Z8 G# e" p6 x9 r2 Sy_____2EE7
  Z0 |2 n: v! Y& o, Oz_____5CF3
1 p0 H* t! K/ e; @( e& d; \!_____6233
  q3 |8 a1 p1 S; b2 t@_____3A45
+ y9 d! v( ^2 w) y) k' ?#_____2291; W7 J2 z/ |8 A  B3 I6 }2 q  n# m
$_____5D5C
7 r) P; Y: c& U%_____09B9
8 ^' }$ \0 _1 T: B* I^_____43EA, s6 j" f, l7 K0 t/ j% p) e
&_____62B98 j! W1 U3 G4 O- W+ D0 k
*_____63012 I5 D2 l% M; j. m: }
(_____4659
) J* d9 d7 V2 A6 F5 F)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表