返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 @% f# m' u8 j( ]( t4 ~
原始出处:http://www.3ast.com.cm" G, @0 H; N1 f9 p
- {# z" S* K' J8 h# J
看不懂的直接绕过
* v4 E2 u. ^* g3 ~( p2 ~加密前为:hwy123456
1 o1 A! U' n: g1 [3 b加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E  s9 s$ e! @6 Z) t' A% \( d
0 J+ E0 \2 }) w2 ~& R
============================================
, U3 c  n0 y# L# l上面是当时自己校内的心情。现在已经解破出来了,分享给大家
$ N8 M2 F8 G, l! p$ L5 `1 |( p也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
# V' p' S5 \+ \2 m6 u- f* L% ]. |以下是RSA算法文件4 O7 P1 E# t8 G

" M$ a  A' D4 B1 |5 V+ O6 u! s& ?1 F文件名RSA.ASP$ g: X+ h0 X4 m' A. |5 E
===============================================
% V' K( A- H2 p% E/ Y0 [% Y<% ' f. u- S, p) {0 A' z
Class clsRSA
* {9 I, w5 n5 ?Public PrivateKey
& ]. |) i, V. l! x1 \Public PublicKey 8 s9 N: \7 g1 ~
Public Modulus
2 o3 j, M4 E) f0 x: HPublic Function Crypt(pLngMessage, pLngKey)
0 d; `9 a! C1 NOn Error Resume Next
1 u# e  i  c: o8 `Dim lLngMod ; H% e  k( P/ o  Z! X  I* S
Dim lLngResult ) R6 }1 g( Y2 X; V
Dim lLngIndex 3 t9 h- m+ K8 @! [, O
If pLngKey Mod 2 = 0 Then
. `( f7 d7 v0 B# @lLngResult = 1 1 p, w7 f1 z' U6 O: d" p
For lLngIndex = 1 To pLngKey / 2
  I: G/ a' q7 d' Q: E" `8 m- H; YlLngMod = (pLngMessage ^ 2) Mod Modulus + n# M2 X$ |+ X5 y0 R
' Mod may error on key generation " ^7 A6 L- s$ B+ G  ?  d
lLngResult = (lLngMod * lLngResult) Mod Modulus
$ X7 F) ]2 g$ r! W; UIf Err Then Exit Function
+ O, |. `) a( @" b( JNext
8 a1 X; q, r" k1 b2 V, E( {Else   E( n7 Z2 n+ t
lLngResult = pLngMessage
( q7 v4 `6 b" S" W% N6 x1 i1 t7 jFor lLngIndex = 1 To pLngKey / 2 - t- r3 Z4 {. C* W
lLngMod = (pLngMessage ^ 2) Mod Modulus 6 M5 w+ l6 L2 O; k% x
On Error Resume Next
8 I3 f, Y6 B& J3 |- P' Mod may error on key generation
- |7 X4 e" ^$ q  _) F+ vlLngResult = (lLngMod * lLngResult) Mod Modulus
. U) P! y* k1 w7 OIf Err Then Exit Function
9 x" G& n  g5 D% ?Next
: ~& R" f! q1 w4 @  v* t) P; uEnd If
3 z2 [5 r0 d8 OCrypt = lLngResult / q$ ~4 E$ x% P$ \9 z) d
End Function
! Z& M$ d7 n0 ^$ B; p: w/ b4 H( ]
& B, u% u& V' ]4 iPublic Function Encode(ByVal pStrMessage)
1 I7 w) H+ B( s* Y* V/ ?: o2 ~8 gDim lLngIndex + X% E# L0 I& l6 I  Q
Dim lLngMaxIndex , [' F7 U# w% x% F' X
Dim lBytAscii " x: o: C! \' R* g
Dim lLngEncrypted / d; N# w' V- c2 w2 Y
lLngMaxIndex = Len(pStrMessage)
' B% l5 m% W( J3 CIf lLngMaxIndex = 0 Then Exit Function
; x( r2 X/ ^7 Y% O# Y! V, X- ?For lLngIndex = 1 To lLngMaxIndex
3 {  ~* T+ }- ?- BlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) / C1 ^) x1 _0 i
lLngEncrypted = Crypt(lBytAscii, PublicKey) ! ]+ j: O" K# f9 J
Encode = Encode & NumberToHex(lLngEncrypted, 4) + z3 a& Z5 L! E5 @
Next $ \9 h1 N6 `- S* i8 x
End Function
7 e4 z5 O8 l" \4 w5 M4 vPublic Function Decode(ByVal pStrMessage)
# \9 d. r: `; m- |* e, uDim lBytAscii
- V, X5 d0 T3 K  ]8 n$ EDim lLngIndex
) e4 ?- a$ [+ r  ?& y1 u6 fDim lLngMaxIndex
$ q( V3 o% h6 @- z7 p8 ?8 Y. ~( |Dim lLngEncryptedData
6 n7 u$ e5 c/ f- s4 Y4 `9 tDecode = "" / f' E$ ^& b& G% k  @
lLngMaxIndex = Len(pStrMessage)
% J* J5 ]. ~0 XFor lLngIndex = 1 To lLngMaxIndex Step 4
9 U4 N* Q# B3 m% X9 a% p6 k2 D7 XlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
/ B: B  k* W9 U8 N1 ]' r1 HlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ |* Z& k5 Y# l5 t/ XDecode = Decode & Chr(lBytAscii)
/ B: n# b( ?1 j, f. p& bNext
! _  Q& @- }* S: s' _/ T# a5 vEnd Function
2 A# `6 a! R9 T2 ?Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
) \. N- _8 b* r; t' ~  E* wNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 8 n% @& v! d1 f8 e0 P! _
End Function ; f9 y0 H8 b; p  K8 U' F9 h
Private Function HexToNumber(ByRef pStrHex)
/ k& U0 i3 N$ Q+ b# WHexToNumber = CLng("&h" & pStrHex) ; @. M  E, `! Q$ }
End Function ! R8 h2 C, r8 u/ ~  V* Z
End Class
. H. f1 l0 B3 s# {! s# b) D* Q+ Hfunction Encryptstr(Message)
, F, T0 x: x0 T0 W; \) s3 GDim LngKeyE   O% e6 `$ W  T5 k
Dim LngKeyD
- T( U- k) A! R6 _Dim LngKeyN 2 I% x/ m% h: x3 k) A. r. D
Dim StrMessage
! e( Q- c' I! r, _5 o6 i) |Dim ObjRSA 1 B8 u6 t3 x7 W: Z$ L
LngKeyE = "32823"
1 b' m7 v5 j2 T* L: r5 I. U% k! I8 TLngKeyD = "20643"
! X3 z$ w2 b7 w& d- yLngKeyN = "29893" - \5 ^* v' z4 C9 B) W! R
StrMessage = Message / \' k6 S; M+ H" _/ l
Set ObjRSA = New clsRSA 0 P3 S) E% D  R& a
ObjRSA.PublicKey = LngKeyE
3 M7 h% }/ t* }  r! i) J" ~# JObjRSA.Modulus = LngKeyN
7 e( |- j9 _. c- rEncryptstr = ObjRSA.Encode(StrMessage) ! U+ y# v& L5 E0 a, Y$ M
Set ObjRSA = Nothing
5 M" n) c8 G4 V7 U. Z) O! }2 Q: cend function
* K7 G1 t+ Y. [/ p" Y" J$ z  {Function Decryptstr(Message)
4 J2 g9 }$ W9 _Dim LngKeyE
" `# m# x0 g9 ?; ^" m1 rDim LngKeyD " b$ a- `0 e2 S% v. y. M% g/ l+ |
Dim LngKeyN ) v' y) e1 Y+ _1 j+ ]' T
Dim StrMessage 9 u% d! b6 n8 r
Dim ObjRSA : t! f  p% a+ a$ J8 z" B
LngKeyE = "32823" " d& e5 d9 k2 h+ T
LngKeyD = "20643" 6 ~8 s" d4 a! c, P. Z
LngKeyN = "29893" 7 c7 n5 z, Z3 Z, H. s
StrMessage = Message 5 j# N+ [" W0 Q1 f& H
Set ObjRSA = New clsRSA % r0 ?+ y/ T6 W: h( R
ObjRSA.PrivateKey =LngKeyD
" `4 T% @. J. R2 J5 cObjRSA.Modulus=LngKeyN
' ?; @9 t. h# v% tdecryptstr=ObjRSA.Decode(StrMessage)
) r( V" V9 z$ Q! PSet ObjRSA = Nothing
7 a& i3 z3 N3 j5 }4 hend function : S: d+ u! ~3 ]; u( b
%>
) g% L7 j0 u+ H* U2 j1 B/ e===============================================+ Y: z5 x& U+ Q/ m; Z  D' b) i

, `4 ~5 i* B: e1 j: D8 J还有一个用于测试这段代码的test.asp" ?2 H* E& m) D0 w
有兴趣的自己搭建个IIS测试下$ V# Q; f2 h/ _9 [' y
<!--#INCLUDE FILE="RSA.asp"--> 8 G, b2 w% ?- Z, O
<%
" G3 L$ z% ^% ^- @7 xfunction Encryptstr(Message) , o+ K* B% ^( F3 y  R, w' ]
Dim LngKeyE 1 W- B( A7 `' U5 C; z4 Z, i* r$ N
Dim LngKeyD % ^% }; ]( U, _
Dim LngKeyN
7 `. M0 G: B! pDim StrMessage
& l  P; Z! i7 f7 pDim ObjRSA 9 n; u# B8 T( B( H) {3 K
LngKeyE = "32823" 2 M( }" ~) _/ I
LngKeyD = "20643" , j+ ]% Q( b9 z% H$ L/ v$ `9 i
LngKeyN = "29893" : v8 @1 K" z9 m7 k4 q
StrMessage = Message : ?: v3 n2 v5 ?* c5 D/ B
Set ObjRSA = New clsRSA
9 ]: Q0 f8 H0 ?) T4 I6 UObjRSA.PublicKey = LngKeyE . M* w+ I1 L/ S
ObjRSA.Modulus = LngKeyN
- g5 d7 J$ X, e2 eEncryptstr = ObjRSA.Encode(StrMessage) 4 r' q$ r/ \# z. E4 N# i
Set ObjRSA = Nothing , o9 v' C3 l; G1 i6 A: d. N
end function
% F4 V2 V# `& b! f7 s5 e0 u/ @function decryptstr(Message) 1 b6 c/ ~$ `& |1 D
Dim LngKeyE ' l) q4 |: a' f
Dim LngKeyD ; j$ \6 A6 m. ^% K$ c
Dim LngKeyN
, h/ X1 Y: k7 `! F1 \Dim StrMessage
" R+ Z) J$ z: Q1 E/ ]; ADim ObjRSA   V$ @! m& S. j
LngKeyE = "32823"
9 E2 A/ i$ x1 |9 g- C' `) dLngKeyD = "20643" 1 _- K6 m" L: v) Y6 Q8 h2 Q1 x
LngKeyN = "29893"
: R/ t8 e4 l2 j% q; o( EStrMessage = Message
% x" F; Y. L; c; X# q0 E7 CSet ObjRSA = New clsRSA ; ~0 X, s8 r, z
ObjRSA.PrivateKey =LngKeyD ( @( N: `* `) M  V3 ?( k
ObjRSA.Modulus=LngKeyN
- s( ?- \9 M5 P9 S4 k. W' `/ adecryptstr=ObjRSA.Decode(StrMessage)
+ |6 a0 G/ E1 I. s) J+ E2 A( k  |Set ObjRSA = Nothing - T1 u4 S) `% S5 c7 |0 A
end function
5 t  b" |; Z' p# e; A/ Vdim last,first
+ m9 a" E$ M8 Sfirst="!@#$%^&*()"
3 A& V  b* X# G+ P& p: nResponse.Write "加密前为:"&first 6 T0 ?) F0 D1 {8 V) F( E
last=Encryptstr(first)
& P+ x9 j% @( ?; q+ }Response.Write "加密后为"&last
. P) T. {. Z& }Response.Write "解密后为" &decryptstr(last)
( n  V  c. ], `8 `: A5 Q3 y%> ==============================================6 x* d" F9 d+ S+ m4 W# U
剩下的就是字符的对照表了0 i, m+ ]- p& O  I) w$ I
===================字符集================3 R) y1 H# L- C  \3 e0 [1 @9 {6 h% a
1_____6EBB
  z! B9 M" Q  J# ]$ g2_____5C1F) n2 |0 g) u/ J% j2 D
3_____4D75( e, Y2 [, P. r8 U' l, G6 \) V
4_____26CC9 w8 i; T3 p' J4 R
5_____4F88
: f; K" d; G7 g- u- |6_____3F4E
$ b# k3 y+ F+ j! q4 F7_____0A9D0 _3 h: l) T+ X: Y' e& v
8_____1A1C
0 h$ J* Y8 |9 W3 }6 v9_____6D20& t8 N+ R$ h! m( @* ^* w
0_____1089( a- d, i) p9 @- ~# V% z
a_____0F3E8 x9 L9 g! r+ N4 |
b_____3159
% ?, B5 n+ ]' R4 L' U/ X  hc_____3517/ J" j2 J. d& y: q- G! h0 V
d_____419C
) `. Y' J! u1 w5 H$ Re_____615C$ Q; R( j5 |7 h2 y# a  b1 N
f_____556F
& y5 s& K2 F1 s" U# y4 p  }g_____2B7F
# s' N$ R6 L$ v' {, f0 Th_____0F9C; F0 m9 t$ m' d: v0 V
i_____00FA2 G& T0 I3 A/ ?
j_____5A50' b3 O2 ~! j* @) @
k_____2850
, D  F6 L% h5 P) _l_____3E7B! B( [; b. s- l% `5 a$ o4 v
m_____71C5
: H2 ]1 K; i5 ~2 S* B6 |n_____1FC89 g5 ~% R0 {) [
o_____74C1
9 E1 ]7 J% V1 F$ z9 u/ J1 W" u% Fp_____5FB8
* s( \0 Y# H/ A- iq_____6085
7 a, q( C3 F1 J; z; f" R4 yr_____3AC4" x$ Y9 y4 M+ `1 U
s_____2F50+ m: X: U( A: B  W1 C
t_____36F8: f& q  k8 X- z" k( D( |4 x0 {
u_____7010
- V1 t4 y1 R4 A0 n% Kv_____0B42
/ ]' O. `% ~7 i, C4 @7 }+ ow_____1C7A
1 f, d% f* E2 Xx_____16F8! ?, W7 s% M/ m( h' Y$ A8 i
y_____2EE7
  w$ U8 y+ @; {/ ~: lz_____5CF3
( D9 T: s* p9 j4 s3 E( P!_____62332 Q* m" V0 i5 F
@_____3A450 R0 ]7 T8 s/ M6 d9 E" S9 j0 d7 N( c
#_____2291
; d( _0 Q; ?( c, k0 K% @$_____5D5C" p& N8 k, a2 e, h3 s2 [8 M7 J) _
%_____09B9% s8 r7 x* V+ v+ X' I
^_____43EA! I& S0 G) O: G  V
&_____62B90 S' C5 ], m( ~
*_____6301" Y) D  T8 S  ~' I7 ]
(_____4659
; b2 Q; Z# U$ y: S; j( Y)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表