返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
$ l6 j5 v* ]. e$ i原始出处:http://www.3ast.com.cm
/ j# T' u) w- ~1 d. f0 T
" e3 e: g0 y* V$ |( n8 }) q/ M7 l看不懂的直接绕过# j+ ~2 ~; |$ X3 d1 U3 ^) H
加密前为:hwy1234564 Q. C2 l- ~- o* C- w7 B0 E
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E9 s3 u/ y' @4 D5 s: }" W1 J

3 k8 a1 E, Y5 l, V  b/ m2 u5 _; j============================================
* }" N- k( R3 D, p  P上面是当时自己校内的心情。现在已经解破出来了,分享给大家
5 k( W5 C/ l' [& _, G( B也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
, @9 [- N$ \, y' g6 D" G) }* n# ?以下是RSA算法文件
/ g$ ~  a; ]! O7 N7 f& j
4 V. D( y8 Y/ `, d) C" C; k6 S文件名RSA.ASP7 q9 J: R! ?+ Z, D$ q9 q) U$ `" n
===============================================2 h2 x1 j0 }5 Z9 \1 x" V
<%
8 p* n6 |3 o0 h" j( [0 I7 M7 \! yClass clsRSA
1 B3 p" L4 R6 i4 `# {Public PrivateKey 3 x, R. t9 H6 y$ J; p$ B
Public PublicKey 4 k, b$ J' [' B4 I* C% M9 ^
Public Modulus
! B2 P( ]% \/ l  e' z+ m& }7 pPublic Function Crypt(pLngMessage, pLngKey) : w  |5 a1 x2 l
On Error Resume Next   ]( y, j/ G5 J, R
Dim lLngMod
- }& v; y  \' K- |  a+ z+ }Dim lLngResult
8 h( K+ ?* C& @  V: j/ K5 jDim lLngIndex , s" n& h- Z+ x' H
If pLngKey Mod 2 = 0 Then 1 \  R) u3 t3 ]( Q; b6 @  U  k3 ^
lLngResult = 1 ' |9 s7 v' H! f4 W
For lLngIndex = 1 To pLngKey / 2
$ f' M. }7 J; FlLngMod = (pLngMessage ^ 2) Mod Modulus 2 k; ~' a2 f- j5 d8 R5 Y
' Mod may error on key generation / N) S- k4 Y( o# q
lLngResult = (lLngMod * lLngResult) Mod Modulus 4 {7 q9 W( {' `0 W, D
If Err Then Exit Function . R4 i9 z1 E) s
Next 2 }% k" u: _1 B& F" h5 g$ U8 N
Else
4 l$ S2 \/ v, ?. {6 W# y! W8 PlLngResult = pLngMessage
! @- }8 u/ e+ k0 ]# @2 K& TFor lLngIndex = 1 To pLngKey / 2
7 ?: y5 c0 ~& c% slLngMod = (pLngMessage ^ 2) Mod Modulus
! ]' a$ }% e9 x2 d# m  l, xOn Error Resume Next
! v* d# b* V$ i. R5 l* w% ]4 V' Mod may error on key generation 5 C) c+ B! ~7 D5 Z/ w$ \& u) z; ~
lLngResult = (lLngMod * lLngResult) Mod Modulus
) I& z* A1 m6 ?; j& rIf Err Then Exit Function
/ A. y  I1 p& D# ?- ~) i* _Next 1 W% B( I  ~+ k' ?# M
End If ( O& I& c0 O! h9 t2 k7 I7 V* {  x5 X
Crypt = lLngResult 0 k9 P. T- K$ F- U1 H
End Function
/ v+ l3 q2 ^# F1 _- \2 C# l  m, E6 G8 z  K4 V6 G$ C+ D% {
Public Function Encode(ByVal pStrMessage)
; |9 q' G5 H9 o/ D+ dDim lLngIndex
9 h* d. C1 _( m; J6 z, z5 tDim lLngMaxIndex
7 V# d$ s" P+ _Dim lBytAscii " y4 k; \5 v, B# y
Dim lLngEncrypted " C3 A3 L) {% e- N2 N# e# R! p: ^* d
lLngMaxIndex = Len(pStrMessage) # H3 `8 \* C( l) z
If lLngMaxIndex = 0 Then Exit Function 9 d& @, C( q6 {1 P4 l8 {
For lLngIndex = 1 To lLngMaxIndex
+ v: D8 u& u! @2 rlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: C! O( |0 ~5 F0 QlLngEncrypted = Crypt(lBytAscii, PublicKey)
$ `" }' Y4 f1 z, P0 v* F. ?4 WEncode = Encode & NumberToHex(lLngEncrypted, 4)
8 ?, }: C, j/ y: W$ c9 L6 WNext
$ F" ]4 r7 D9 t6 JEnd Function ' P3 P2 f  b3 v7 o: f8 U
Public Function Decode(ByVal pStrMessage) " n6 {! d7 m+ `& S$ e
Dim lBytAscii
+ Z4 D. E4 b8 C0 l& GDim lLngIndex
$ D3 s7 r7 j# ZDim lLngMaxIndex ) B( d2 N, ?- {# X1 ^' z
Dim lLngEncryptedData
! R% b7 X- }& y# ~Decode = ""
' W2 |) Y6 }+ |lLngMaxIndex = Len(pStrMessage) / \' M2 J+ T8 n7 O$ V
For lLngIndex = 1 To lLngMaxIndex Step 4 4 h1 d2 g& x# k
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 }6 C# |+ x3 y) g4 G3 vlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- d0 b/ S0 U  f" ^' ?  xDecode = Decode & Chr(lBytAscii) ( z6 f3 n& u( k+ |1 P3 W
Next
: C4 G4 l" k: l1 i$ hEnd Function
9 ]8 \' _% v7 n0 b! {( N) D- GPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
& B2 I% D! ~' }/ {! HNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
/ T: p$ @; W1 m; H7 n* I$ jEnd Function & b2 X6 V( Q3 M, Y& u1 L& m0 s* T; v
Private Function HexToNumber(ByRef pStrHex) $ }& u7 _5 v. [0 J( e
HexToNumber = CLng("&h" & pStrHex)
4 y. y3 n9 f, U7 w& ^: QEnd Function
8 _- _; O7 s8 DEnd Class 1 D* f2 q& E+ k+ ^- O# V$ Y7 D
function Encryptstr(Message) # s7 L' Y. U1 K0 r' D+ ]4 g
Dim LngKeyE
# h. j- m3 ^1 ]3 `Dim LngKeyD 0 x6 A3 L3 q+ y4 r4 I$ `
Dim LngKeyN
! P7 Q, Z7 X0 q( X) xDim StrMessage % ]& e6 H- K" p5 P2 p0 D
Dim ObjRSA
0 d' i6 c" n6 G3 w+ tLngKeyE = "32823"   ]5 ~7 W4 h  t5 Z5 \0 s" V
LngKeyD = "20643"
! `) T8 [2 u3 }/ ^. KLngKeyN = "29893"
5 y7 K6 q1 x  t0 i; `  k/ YStrMessage = Message 4 b2 k8 n, P0 x) a0 h$ U
Set ObjRSA = New clsRSA & }/ a* n9 s3 w' p6 I- ^
ObjRSA.PublicKey = LngKeyE
, T- Q, ?5 U. s) o9 ?- d6 ^ObjRSA.Modulus = LngKeyN
: i+ ~& ]1 i$ }* mEncryptstr = ObjRSA.Encode(StrMessage)
) n" i1 V7 D* `: f9 B* k6 dSet ObjRSA = Nothing 5 y0 l* l! O" X' X: p4 I4 l
end function
5 g6 m. O( n+ I1 l, _3 F: `Function Decryptstr(Message) . s! b  V6 S0 P% Y3 V5 J' X+ F5 \# Y
Dim LngKeyE 7 R& }, x2 l% O9 G. K$ G" W
Dim LngKeyD   ^, A- r4 w0 `' g! {! c
Dim LngKeyN " J  @( i& L/ {- \$ ~7 {; A' o4 b
Dim StrMessage * s8 c/ J% K. ^# h: ?
Dim ObjRSA
1 o0 N# Z+ a- L3 ~0 ]; LLngKeyE = "32823"
' l. u" K4 K$ X- j9 A4 j5 BLngKeyD = "20643" 0 g" ?- E7 i0 G! R
LngKeyN = "29893" 5 C' N& y  s2 ]
StrMessage = Message ( O. \6 a" I- o( h% j! t$ E1 y2 d& J* T
Set ObjRSA = New clsRSA . F* f% v4 H0 H* Q, |
ObjRSA.PrivateKey =LngKeyD
7 O+ D1 n; T3 ]ObjRSA.Modulus=LngKeyN
& m& Y" F# n. D. N& @decryptstr=ObjRSA.Decode(StrMessage) # {8 P. I/ a. d8 L* K* w
Set ObjRSA = Nothing ' S' M# j* K+ B: M+ M8 W# p" \
end function
# X0 U3 L, Z" c+ Q3 c%>
( L" O- z. @2 `% p* [===============================================
7 u# m" j8 @  z( \& Q  t2 z, \) C2 q9 A" G
还有一个用于测试这段代码的test.asp
. P! @4 O4 f  M2 B4 T" V6 m! G& n, l有兴趣的自己搭建个IIS测试下. y7 P6 T' P2 C5 K4 q, n. s
<!--#INCLUDE FILE="RSA.asp"--> # ]0 s/ v0 J. T- |. p0 I
<%
1 ^: H0 u/ G% K$ S- kfunction Encryptstr(Message) 1 S! B  O- o+ y" R0 U# i% m% {& K
Dim LngKeyE 3 |; }9 J9 E9 m7 N5 X8 L
Dim LngKeyD
! e- d# U: z' Q; z7 \8 o: j. ZDim LngKeyN
/ I6 o% J( t  a) x# o* D1 FDim StrMessage 1 S4 A  }2 R3 u) |! A3 V
Dim ObjRSA , x9 w6 }4 V$ c% e! d
LngKeyE = "32823"
9 M3 _5 P2 Q, L3 m2 i' VLngKeyD = "20643" # w2 I* m, ~+ O9 \+ g/ x  P
LngKeyN = "29893" % r, ~# ~! [' h9 T- H' F
StrMessage = Message . G, }/ ~+ o' t! s. ?, J
Set ObjRSA = New clsRSA 3 `& |9 ^* a9 R4 l
ObjRSA.PublicKey = LngKeyE : D! f- O( b- _
ObjRSA.Modulus = LngKeyN
: |3 c! i& b. O6 L4 VEncryptstr = ObjRSA.Encode(StrMessage) ! j% J: D; R4 n* E% X! e
Set ObjRSA = Nothing
+ }2 O# [5 D6 j/ ~( J/ Zend function , N, i2 D5 @# U
function decryptstr(Message) / M( X' `# @, T6 y
Dim LngKeyE
# Z$ R8 P2 _! }: ~$ n) J$ FDim LngKeyD
0 `5 a9 e" I' x( l7 G) ADim LngKeyN
/ X  B  k" ~0 J/ A( f2 PDim StrMessage 5 x5 V0 {) f1 {- V1 R! E% |
Dim ObjRSA
* {9 q: h* X, `' u# I; P' Z- f1 XLngKeyE = "32823" , E( |) z4 v" t& c- e
LngKeyD = "20643" 4 H% u' q+ p0 q* [% `) M5 f" T
LngKeyN = "29893" 7 b9 \! `6 p* S1 u
StrMessage = Message
" n4 `' Q! h! C5 n5 q1 wSet ObjRSA = New clsRSA " T4 s7 t( i$ A
ObjRSA.PrivateKey =LngKeyD 3 k5 R' V2 ]$ P% g& H( P% g
ObjRSA.Modulus=LngKeyN
5 r0 a' o+ s8 `  }; D' U; Ldecryptstr=ObjRSA.Decode(StrMessage) 8 g: l( s; w* i$ h' m8 g
Set ObjRSA = Nothing 1 Y5 C% W& H1 o% P, }- J( i  K
end function 8 D) ^/ \( ]" Z9 r& d3 x6 f& _
dim last,first
0 n, _+ k/ }; m- X1 o. q3 o$ [first="!@#$%^&*()" $ n% `, P8 D7 `0 I# f! J5 S6 Y
Response.Write "加密前为:"&first 7 e5 ^. {" O/ }8 B9 O# ?
last=Encryptstr(first)
- P. E1 [5 z& j' C* x9 h2 AResponse.Write "加密后为"&last
3 B& C4 _% y& H! _9 _7 [5 GResponse.Write "解密后为" &decryptstr(last)
. W3 p0 O/ W2 u# \$ M- q+ E%> ==============================================
# R  |% g4 I& v% R0 u; n; ^0 e* l剩下的就是字符的对照表了
! _  R2 ^& @" ^8 b8 _$ K8 Z( ^' H===================字符集================
- P9 g, O7 r+ f- v+ j1_____6EBB4 F* P% p* p6 L, F. T7 g% }
2_____5C1F; W& s  b2 \( t
3_____4D75
: j% U, W5 f9 x2 `4_____26CC% f% f* F0 y/ Z  Q8 E8 H' k* \
5_____4F88* B1 m; f. L) y3 w
6_____3F4E, o9 h# Y0 R2 H# l
7_____0A9D
* i0 m! Y% {3 G  U4 |. }! `8_____1A1C
" v: o( E9 j6 t% M# B9_____6D20! D1 }0 U5 [2 v7 F: Q, N
0_____1089! p% B/ _) w" O: r
a_____0F3E: L4 K4 \% B# Z7 `
b_____3159
8 F' ?' P  g- M( ^' Z7 H2 Y5 Cc_____3517
! ?: i! x9 d+ X! Dd_____419C: ?& b& w% ^$ s
e_____615C
: d( P& ]4 X6 Q+ r/ A1 ?f_____556F7 @/ S! M5 b4 j) d! @
g_____2B7F. u- S2 z: Z9 p2 c, B
h_____0F9C
; v7 `' J  Z6 F3 m$ L  H& Gi_____00FA
: N0 s; P# Y3 L4 r, Ij_____5A50
2 Y: `% Z6 S5 Pk_____2850
9 x' b* o+ Q: Y, x6 Xl_____3E7B& w4 |3 i) w/ e" u$ e) F% A) P
m_____71C5/ \( W% l0 s+ J0 }( y
n_____1FC8
3 O' U) s% m" J. Z+ q1 _# W  |o_____74C1" q4 L9 T$ W% E0 ~" h' m# {
p_____5FB8
2 G' C! I# [* Wq_____6085
0 @9 O, l5 I* ^- Q# l' t+ Zr_____3AC43 M* u* _* y" M- n
s_____2F50
" s7 L: q5 I; }2 l$ Z2 St_____36F8
+ O8 m+ V7 f5 p% B9 Yu_____7010
# C0 ^3 f7 Z2 y- q4 |) D0 `2 Z6 Av_____0B42
. p! U0 J0 N1 b* m5 J4 rw_____1C7A
, e6 y5 W0 A3 d+ G7 sx_____16F8
+ M1 j5 y7 i" }! sy_____2EE7( y7 T3 u1 j* l4 u
z_____5CF3! T) m3 e7 D4 i( h, F
!_____6233
% J) X( P0 b9 O8 D' G@_____3A45
& V* ?0 ?& R) b  B#_____2291- L& P& B, c2 ~) o# y( r
$_____5D5C8 \" C! c9 J, c
%_____09B97 C$ b" c- {5 d9 H1 D& y6 q
^_____43EA
+ ?2 Q) Q0 Q* U% E&_____62B9
& @) [9 @- R& d! g6 y: w*_____6301  |+ N' Q5 c6 R8 U
(_____4659
8 X" ]  _4 D. ]" C4 G)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表