返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, h5 P2 \' ?: q5 S原始出处:http://www.3ast.com.cm6 d3 C. K6 F( ^! \6 S
) H! j; I% d' D* d
看不懂的直接绕过
0 V! y& g7 u$ p2 q& G' w3 A加密前为:hwy123456
$ i6 N' J: I* `5 C! y" ?6 m  p# f加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E9 Z% x* r" N" u
5 a" [% @5 f' |8 a& Z3 `
============================================4 a1 f' F! e% P6 r+ g* O$ y5 t
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
! \) l; W5 ?( {/ R) W+ S也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法  h5 P) P5 L4 t5 P* J
以下是RSA算法文件
2 T# Y; Z- r: }2 _4 q( u! @4 Q* b1 K+ c  w7 H5 B
文件名RSA.ASP
: Y4 I. Q' l% z+ V. _0 H% Z===============================================2 l4 v) l7 L2 k2 K+ Z' ?
<%
/ H4 ?0 K/ Q1 k& p0 g( c% oClass clsRSA , g$ ~+ W- N. b2 {* E' J1 \9 }
Public PrivateKey   O6 N/ _: T) K* b( f
Public PublicKey % \8 g6 d' f! V! E2 R
Public Modulus ) T+ G! E4 x2 N8 [* E
Public Function Crypt(pLngMessage, pLngKey)
  l$ D, _0 A/ h! X& y9 u& {On Error Resume Next
4 u6 x( Z; a  ^4 S% k: Q- y( e" yDim lLngMod
1 m$ ]/ G% ]  @Dim lLngResult : @% Z5 U7 y" d$ |
Dim lLngIndex
; e8 p2 K) F, a0 qIf pLngKey Mod 2 = 0 Then
' u1 H2 v4 U: X2 tlLngResult = 1
' u. e+ E2 X; VFor lLngIndex = 1 To pLngKey / 2
7 o% L  }& B' P/ [0 a4 [lLngMod = (pLngMessage ^ 2) Mod Modulus ( Z9 k- S( z) ^+ B/ p% q
' Mod may error on key generation . i+ j* N) ~$ ~# u, c' F  z
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 i; g5 z: R+ p; Z
If Err Then Exit Function + F! E* ]( z6 ?$ g" D9 K( ]6 B
Next
7 _6 ?6 |! E( g; q0 HElse
* a% @; `, ^$ vlLngResult = pLngMessage
) h* R7 M6 E/ ^8 @For lLngIndex = 1 To pLngKey / 2 5 Q- `" N1 k0 |" x% h( C9 S* W" C
lLngMod = (pLngMessage ^ 2) Mod Modulus   ]6 \; Q) m+ D+ P0 ^
On Error Resume Next $ B! ?! u* y" u! H' k
' Mod may error on key generation
- c4 e2 y2 E3 {5 Z- C! g1 XlLngResult = (lLngMod * lLngResult) Mod Modulus + \7 R9 A$ c5 q; B, a" C* }
If Err Then Exit Function 1 T; O- C/ b* W) P! F  i
Next 1 W8 d# z/ U% _5 B4 a) C7 Q
End If 1 v0 c  P1 g8 I1 V+ l/ H1 u1 B
Crypt = lLngResult
* o& L" L5 }  n; ?3 FEnd Function4 t+ z1 U- y& Z! W9 F! |8 s/ I# f

1 G" V% @2 r9 t: z6 T! z, ePublic Function Encode(ByVal pStrMessage)
9 d7 ^  R' j: _Dim lLngIndex
# R" k& t- \  SDim lLngMaxIndex
0 a, O: c7 J2 T2 EDim lBytAscii
3 f: E$ r4 T" x0 Z5 b# KDim lLngEncrypted
" k/ I- ^8 T3 U( W. u1 P2 `lLngMaxIndex = Len(pStrMessage)
! v) D. i- H: SIf lLngMaxIndex = 0 Then Exit Function
8 F3 X  L/ X7 R4 D: eFor lLngIndex = 1 To lLngMaxIndex
+ \& Z" h# f2 S( |4 X. N8 Z  @lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 0 m1 [4 n: V; A/ {, u" V- @
lLngEncrypted = Crypt(lBytAscii, PublicKey) ' U' ?" O5 \- M1 _# t
Encode = Encode & NumberToHex(lLngEncrypted, 4) ' ]7 g# R! \: S* |
Next
! y+ A; v& U; K9 r  I; iEnd Function 2 ~9 r: \! K6 e7 U9 [* e% d# I* p
Public Function Decode(ByVal pStrMessage) . n! `( }" h" q
Dim lBytAscii ) Z2 B6 f) n* v" i' l9 t% Z7 I
Dim lLngIndex 1 z& q* S9 a, z  j" ^, X4 T% p' R
Dim lLngMaxIndex
9 `/ K! j- U1 W' UDim lLngEncryptedData " s0 h2 H1 v8 n. f5 U
Decode = "" 5 U/ d* d1 M+ a2 \
lLngMaxIndex = Len(pStrMessage)
5 h: U1 `3 E+ t6 r# e7 _. I8 o0 LFor lLngIndex = 1 To lLngMaxIndex Step 4
9 z9 q5 @* e0 ^" J$ {0 H) AlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ) |0 k" ^- E+ [) x- Y) m
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 5 m! I3 e$ E$ L, r5 V* ^, c
Decode = Decode & Chr(lBytAscii)
- W8 k0 ]- C; }Next / F8 |5 B5 d" s; f
End Function   U# z$ `% K' L" j
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 v6 m) P5 F- C# f$ h3 MNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
2 ^+ S  R# y. M* w6 D- OEnd Function $ G' H3 d% V  Z
Private Function HexToNumber(ByRef pStrHex)
0 ~3 o3 a% n8 a' L% L7 E. uHexToNumber = CLng("&h" & pStrHex)
- x, B# U( s9 x7 L7 y# O! ?End Function
1 O" n) ]' j- j" nEnd Class ( @) N* l' P! ?. ?
function Encryptstr(Message) , M5 o. F: Q+ V. j+ ?4 N+ S
Dim LngKeyE
$ l8 R0 R/ r9 @4 c7 `$ X% jDim LngKeyD
3 n4 @9 T, A+ p( g% |% BDim LngKeyN ; H5 V$ ]9 {* q# D
Dim StrMessage 1 c! G; U5 W$ [6 d; P
Dim ObjRSA
' T4 q; S* f: x5 F9 u6 b* VLngKeyE = "32823"
% ~$ _2 E7 Z" f) d* SLngKeyD = "20643"
2 E: V/ r- Z2 t* ^( n: t' nLngKeyN = "29893"   G8 W8 a2 u* G* F# n
StrMessage = Message
7 F5 t/ d' P6 Q6 X% w; {Set ObjRSA = New clsRSA
: \2 E3 }- K; e. ^7 U5 hObjRSA.PublicKey = LngKeyE 1 o& ~! D$ I' p! |
ObjRSA.Modulus = LngKeyN
$ u  k6 B7 k9 Z6 ~Encryptstr = ObjRSA.Encode(StrMessage) ' l; i! G& f3 P7 t$ X. Y- T/ K
Set ObjRSA = Nothing
! U8 G: j4 {  g& p) bend function
& Z5 W$ ]9 y' d, s8 _5 uFunction Decryptstr(Message) * b, s/ F/ |7 V$ A; s: O- o' ?
Dim LngKeyE 1 s: ~" g* y$ E& p
Dim LngKeyD , l( q, [% R5 \* T% t
Dim LngKeyN
, S: l& x0 E- H' X3 {2 RDim StrMessage ! P# l' [, P, t
Dim ObjRSA 5 L; q$ m. `. y- ]' B- @) |2 Z
LngKeyE = "32823" $ {! G) c6 V" u3 k3 G
LngKeyD = "20643"
( m: a7 f( }. gLngKeyN = "29893" 1 G& [# s/ T' o' ]4 D1 K) d
StrMessage = Message
9 O; ^3 f! X3 F: X9 ~4 H9 `Set ObjRSA = New clsRSA
3 F8 _$ F" @/ w5 U7 k* P8 X: dObjRSA.PrivateKey =LngKeyD * g+ D, X. S4 ^* J; O& \" v  a
ObjRSA.Modulus=LngKeyN 0 j* N' Y- W% L) U4 I+ o
decryptstr=ObjRSA.Decode(StrMessage) % Z0 }& _3 T+ b0 p
Set ObjRSA = Nothing % l$ ~2 X9 v' c2 b7 t- ?' K8 f7 u
end function + l* e$ ?7 l+ ]1 `3 Y, D, d
%>1 b1 e2 U9 D) v3 |0 T) m5 J
===============================================
/ `5 M( y' A( I! N) t, T9 C& r' K5 n# F8 K! u, z/ t; O. W, ~
还有一个用于测试这段代码的test.asp  z" A- F* a. v9 ?8 L
有兴趣的自己搭建个IIS测试下
6 Z$ t: T9 d: g6 Y' }<!--#INCLUDE FILE="RSA.asp"-->
7 k0 }) q. D  |' R- P$ J3 ~% I<%
; P! @0 A. U( E7 A# Ufunction Encryptstr(Message) : w+ @4 l" A+ w; f/ q8 U) v
Dim LngKeyE
+ P0 W& V) a- @Dim LngKeyD   J* t) W# X  j9 u" Q
Dim LngKeyN
$ u7 |5 d: F+ O- {Dim StrMessage , v+ b, y8 ?) y) r+ C- V* I) e
Dim ObjRSA $ o' V: M: ~$ }4 I9 h
LngKeyE = "32823" / N9 ~+ G8 T5 u3 w' B$ X8 W
LngKeyD = "20643"   |' i  z' f$ y. O8 e. V& Y( u
LngKeyN = "29893" 0 m! O1 y$ V/ g
StrMessage = Message 4 `! L4 n/ a# U# k; ^
Set ObjRSA = New clsRSA
4 }4 N$ Y1 x$ |: }/ W  p+ u% s3 k+ jObjRSA.PublicKey = LngKeyE
# `# M& H( i0 ZObjRSA.Modulus = LngKeyN
& s' B% @. }  G+ iEncryptstr = ObjRSA.Encode(StrMessage)
8 f4 r( t% V4 aSet ObjRSA = Nothing " ]7 Y) W7 C6 t5 r- y
end function " d! j5 _+ G6 W1 o( P
function decryptstr(Message)
- Z! A- Q4 U7 t2 @) }. U4 e1 [Dim LngKeyE / t% i$ @( I' s6 S( X; f3 ~+ O
Dim LngKeyD ! r) ]8 N/ q; e) e. J& y
Dim LngKeyN % z7 W+ X0 v" [& n3 M9 @+ J
Dim StrMessage ( l* v; V; B3 v; z9 _5 M
Dim ObjRSA
+ K8 ^3 y& m1 yLngKeyE = "32823" , v0 O+ O  g/ C9 G0 \( A( E
LngKeyD = "20643"
  e6 \3 z! [( a( b4 c, ILngKeyN = "29893" 6 F/ N. Y4 r! N
StrMessage = Message
: t2 a: M) S' E2 dSet ObjRSA = New clsRSA
: g, r, Z  T5 G5 gObjRSA.PrivateKey =LngKeyD 0 y& I  E! u9 I9 l. G
ObjRSA.Modulus=LngKeyN & ?) k8 R3 D7 C, c# l5 l
decryptstr=ObjRSA.Decode(StrMessage) 6 f1 j8 R% y8 g& _  [0 d
Set ObjRSA = Nothing ) P8 Y4 B! v) p4 g4 X0 I/ V; L0 I
end function
& K& U0 ~; M2 udim last,first
) I3 `: w; Q4 o( ]first="!@#$%^&*()" ! [7 w4 p" \% A. b5 x
Response.Write "加密前为:"&first
: O: a8 h3 m9 Z; @3 Dlast=Encryptstr(first) 6 k7 A5 N! w  t
Response.Write "加密后为"&last
7 e3 f! G4 T8 v% TResponse.Write "解密后为" &decryptstr(last) $ G9 D9 M/ Z/ S# Q: h
%> ==============================================
' P  J; m( i- x$ d剩下的就是字符的对照表了- U' j6 s7 {5 t, H% O/ ~
===================字符集================: f1 Z9 {  K/ H3 Z6 Y
1_____6EBB3 L7 C; V1 I- y# {' w1 L$ K
2_____5C1F
0 ]% _- b* {# M3 p3_____4D75% h8 @) \5 p% Y1 @* t2 u0 p, B1 R
4_____26CC
6 A7 D# E* V& {2 n& i; a5 t% E+ f5_____4F88
9 h/ h% R/ y5 x5 H6_____3F4E( R& U+ ]% @  A1 }: L
7_____0A9D
4 w. r8 W4 b2 x0 g" S8_____1A1C
% I) Z0 |% e4 Y$ T) i9_____6D20) j9 g: j; h) H, ]1 y
0_____1089, ]) V/ q3 S2 _" n( J+ W* `; J' Y
a_____0F3E
- a. \; Z3 O9 _+ J6 zb_____3159# g9 E% b) @( L; j# T+ ]
c_____3517! N: _" Z- o+ c) d
d_____419C' n1 F: Z! I! c$ P
e_____615C
) O$ a" d7 o9 k  _5 ]* S8 @; wf_____556F
4 n7 D' K5 W+ l7 cg_____2B7F5 j8 D) @. k) N4 h
h_____0F9C0 T& l8 ~8 M& p4 M) \2 @2 p& y  x- ]/ r
i_____00FA# W* A) i: [( D0 h
j_____5A50
$ w: G$ C9 k, J+ O9 lk_____2850
) v7 Y4 g% b1 r% b* j' h3 Z/ _1 `! _l_____3E7B/ T) Q8 {; d0 k+ o
m_____71C58 M% [6 ~$ _- D0 `3 b0 O
n_____1FC8- w4 {8 j1 v# b6 y, K5 t
o_____74C1
7 ^8 d% Z' y% z1 z) L- b3 o7 Wp_____5FB8
1 X+ V9 Q/ u5 ]% f3 f+ \q_____6085
1 O/ Q# I, F& A! \/ ?  U, r! yr_____3AC4
9 z) W$ i; ~( b+ ^5 I1 m9 j: ^) as_____2F50
( c' n( w8 x1 q+ wt_____36F86 k. X, K/ H& }7 r
u_____7010% V) w4 |6 p1 y
v_____0B422 w5 A6 H: x' G  O9 a
w_____1C7A+ H  r8 b4 Y: }! `( t1 x
x_____16F81 K3 b/ r& d1 R. }
y_____2EE79 s6 H( n8 q" I4 e9 O
z_____5CF3
; k: {- q) x7 ?1 d!_____6233
; ^' O: [. q' J@_____3A45
# m6 D( B; V5 V* u#_____2291( B+ `+ l+ ~, A
$_____5D5C6 p4 `# W$ F  Y+ c) _$ P  A
%_____09B9# |5 c/ F7 Q+ K! J
^_____43EA
7 v6 C% Q# _1 }) r+ x' T&_____62B94 r9 E- q4 B0 e+ m' f
*_____6301- |/ X- Q# r# O
(_____4659" S4 Q; g+ Y; ?$ d2 N$ I
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表