返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm' J  G( Y* A% s# I' F4 c& g+ Q' N
原始出处:http://www.3ast.com.cm: P# x1 ^; r1 u, @0 L9 B

$ {+ h: X% {; K. y. m看不懂的直接绕过9 H" K3 L* W9 E0 r3 i
加密前为:hwy123456/ c, j9 D1 p+ g
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" v! G" @2 Q" u1 ~0 u6 E; ~" ~& L
1 p7 M8 X) H( V/ C/ T: k
============================================6 u3 x2 p7 Q1 `& c# g' ^
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 f- T/ u4 E9 E5 v也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法8 W( V2 _  Y+ G
以下是RSA算法文件) Y( f1 l1 ^+ K/ S% u5 @/ T* X
& Y5 o- [# ?9 |7 ]
文件名RSA.ASP
  D5 a2 ]$ m: Y$ U* K; m2 {===============================================5 v0 g6 P- |# `
<% ' m! y8 u* R' [! s% X1 o. n! O
Class clsRSA
7 k  k; U# O7 ^. o8 m: g# Z& Y' BPublic PrivateKey
0 v8 P3 ]& ^. Z; x, h/ v  d& cPublic PublicKey / B9 k: Q; M, W1 p  I! u. h. f
Public Modulus 6 O5 `# _* ^6 p
Public Function Crypt(pLngMessage, pLngKey) ( d- D5 p3 G$ {+ u
On Error Resume Next
5 l! J* o7 L5 UDim lLngMod % F0 _( H" G( h( `- H, ]0 `
Dim lLngResult 7 H6 ^; s- }2 K! t" i5 ?% s* d
Dim lLngIndex 1 ~$ \! L* U, {
If pLngKey Mod 2 = 0 Then " B& J3 a+ T5 @1 E0 s, n6 z
lLngResult = 1 ' ]- a5 i5 C6 V& m$ F' @" O8 @* t7 g
For lLngIndex = 1 To pLngKey / 2
% d. U2 K" c, b7 o6 XlLngMod = (pLngMessage ^ 2) Mod Modulus 0 S3 ^/ |. M& s, D6 S
' Mod may error on key generation
( N/ S9 d  O( n$ YlLngResult = (lLngMod * lLngResult) Mod Modulus
; @4 O1 B( R9 J7 OIf Err Then Exit Function
' O' H8 q; z% d7 yNext
, H# |8 R8 u+ A3 I! S# SElse 7 X% ?* W2 t" s5 ^
lLngResult = pLngMessage 0 `  V# k2 N. h) [
For lLngIndex = 1 To pLngKey / 2 3 }$ `" e. z5 [
lLngMod = (pLngMessage ^ 2) Mod Modulus
; P2 d+ S$ H8 q) Q  [6 t2 e7 `2 QOn Error Resume Next
8 ]4 M3 g# {) N; R' Mod may error on key generation
0 q9 `$ S* ~% N2 y; YlLngResult = (lLngMod * lLngResult) Mod Modulus ; w+ \' M1 B" i, b" r7 ]
If Err Then Exit Function 1 w* H' m; P0 M6 R+ b
Next
+ y& [% s; R3 t+ H  z+ SEnd If
. W( s7 q, U& e6 D. b! \! iCrypt = lLngResult - E# ~, ~& Y) T  |: A
End Function
) @6 n" X. ^* Y/ w, q; L1 }" k4 a- b% N7 Q2 Z& l; j* d, g0 j. [6 ]2 R
Public Function Encode(ByVal pStrMessage) , l6 b7 w. D( d1 \
Dim lLngIndex ( d. q1 k0 T3 a3 Q
Dim lLngMaxIndex
' I9 n9 Q. j3 Y- o) CDim lBytAscii
2 e6 c2 R) x  o8 t' L* nDim lLngEncrypted : G* B7 ~/ H/ e* E" M5 v& C; S
lLngMaxIndex = Len(pStrMessage) , u; L2 I6 C6 l/ X
If lLngMaxIndex = 0 Then Exit Function   K3 E4 D2 G3 F* {" C- `
For lLngIndex = 1 To lLngMaxIndex - @1 G7 K1 q$ m  t0 U, @
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ( b& Q5 O2 h; D7 ]6 @! B
lLngEncrypted = Crypt(lBytAscii, PublicKey) ' [7 L& m9 d4 \) y7 [
Encode = Encode & NumberToHex(lLngEncrypted, 4)
* e. S. s  P* p' ?+ I/ yNext : w- \/ T5 s: _
End Function
+ a. e6 {6 ^+ f4 O, ^# sPublic Function Decode(ByVal pStrMessage) # R- m3 C, f; W2 `) b
Dim lBytAscii " M$ t- ], t8 Q5 M
Dim lLngIndex
6 O; X7 `: P9 |, ~Dim lLngMaxIndex ; ?: X. M) y# p3 f4 z
Dim lLngEncryptedData
1 j! ^; j; k& j, j6 ADecode = ""
% P+ M" P) u* h0 flLngMaxIndex = Len(pStrMessage) 5 h+ q8 z# A4 E' M7 n# p
For lLngIndex = 1 To lLngMaxIndex Step 4
& J+ q9 v& E1 ~lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 2 X+ Q" B9 r! b1 L6 S7 S6 X
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
, x$ n) P5 C" NDecode = Decode & Chr(lBytAscii)
6 Y3 _; r* m$ w: G  A, FNext ( j6 a/ u( R$ _4 r# U7 _4 s& P
End Function
: E! m8 `- l+ UPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 p* C* u6 D* N. [. ]* |NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
" L$ v% L& j+ N3 kEnd Function
3 B% p* ]* N! d- f) wPrivate Function HexToNumber(ByRef pStrHex)
# x9 j7 `5 v9 x) ~! |$ ~6 ?2 F, P& f$ bHexToNumber = CLng("&h" & pStrHex) * H7 _) Q% R" M: e+ a
End Function
. I. u9 l: q6 Q% }0 U6 AEnd Class
/ V# J( O# N2 C( y) w1 afunction Encryptstr(Message) ( p0 B- N, P1 M( X. g, J
Dim LngKeyE $ l/ X$ g6 g; T3 J( }  V2 V
Dim LngKeyD
+ c( T: p- W3 x% ?5 _Dim LngKeyN
: X: g3 p* _& z, F5 N- Y' \6 GDim StrMessage
/ u- y; p/ j, c3 _2 mDim ObjRSA
, t  `& g/ S; R9 mLngKeyE = "32823" * [5 a& M3 W8 c. O
LngKeyD = "20643"
5 h, X0 Y! [+ P4 A1 }' @+ `LngKeyN = "29893"
2 Q: [9 J# c" s) H* yStrMessage = Message 2 g# m2 r6 `, m0 r5 c- Q
Set ObjRSA = New clsRSA ; c( @6 b; P! P3 S& N
ObjRSA.PublicKey = LngKeyE
/ _: ^- S$ j! \/ n8 v- m, y0 _ObjRSA.Modulus = LngKeyN ! ~) k+ j' a& K  j9 N
Encryptstr = ObjRSA.Encode(StrMessage) 7 [; W$ q; B; V3 _9 h. K) S
Set ObjRSA = Nothing
' J( F1 Q2 B0 p( Aend function
- }! W! e9 }' @0 p+ v% E% i- s: C1 ^$ ~Function Decryptstr(Message) - `- o# ^; F& _- p. L7 z' r
Dim LngKeyE 2 y' x! c$ z+ Q9 p' [4 k
Dim LngKeyD - m' f: b4 H' k
Dim LngKeyN : O1 N, Z+ p9 p1 M
Dim StrMessage
. }+ h6 K7 Z4 W# l- R# tDim ObjRSA " k# O, t# g+ L0 e, y: h: |; Z* X
LngKeyE = "32823" 7 u( ]+ w4 v" T0 `" x% ^* T0 p: e
LngKeyD = "20643" ! A5 @+ l: y: ~# p+ T5 J: Y
LngKeyN = "29893" ' J6 k( @, x4 q* z  n( G' y# {
StrMessage = Message : w2 i3 g: k; ]! j8 t0 R
Set ObjRSA = New clsRSA * Q* m" h6 |  u' F) F/ f5 G5 }
ObjRSA.PrivateKey =LngKeyD
4 N8 l) ]+ ~% A0 ~: TObjRSA.Modulus=LngKeyN
  X) W( C3 X. t  O3 C& x1 Adecryptstr=ObjRSA.Decode(StrMessage) # g5 \' h* Y; u& c- P
Set ObjRSA = Nothing
: d0 h9 m! j& R7 ]3 E/ eend function
* G3 m" ?* C8 `%>
+ W" S* o7 v' ~; @===============================================
7 C' y0 g5 u/ q/ b0 V7 w% W& `, b2 s, X9 R
还有一个用于测试这段代码的test.asp3 v9 h! N1 G: O* e* t$ ]" \
有兴趣的自己搭建个IIS测试下
) y' d3 k* r* q7 n# h8 ^7 k, b+ }<!--#INCLUDE FILE="RSA.asp"-->
3 a3 B8 q# f4 w; O: j1 o) X. \<%6 i: e% b3 p! N4 l" i- T
function Encryptstr(Message)
( T% d* ]8 A, z1 oDim LngKeyE
  y% D& c: O# {9 ]Dim LngKeyD ! O3 t2 [- b# ]9 H) O
Dim LngKeyN + E3 H- h, a+ b1 }! T; @) V
Dim StrMessage ; d+ ~2 X7 d8 F& v' B4 |4 _; K
Dim ObjRSA 6 [9 i, _4 N4 L! h
LngKeyE = "32823" 0 b  L" D* `5 r8 c/ {
LngKeyD = "20643"
! v1 C. m! P4 uLngKeyN = "29893"
  h$ ]8 W3 n  u; p) q, B. |. dStrMessage = Message
/ B, S- C( [" k  S* x6 y7 D6 ASet ObjRSA = New clsRSA 5 Q$ W0 ]! T  [3 {/ [) @& A
ObjRSA.PublicKey = LngKeyE
6 `* G$ Z) \2 e" mObjRSA.Modulus = LngKeyN
6 f2 K) b" r/ J5 P5 R$ GEncryptstr = ObjRSA.Encode(StrMessage) , Q  H" K! k. O- ^
Set ObjRSA = Nothing % y* `% X/ L$ H( L% q- T
end function
3 H+ V3 m8 T7 l+ s& h7 B/ ~4 \+ X. Bfunction decryptstr(Message)
& h" u$ R% X& a+ T9 L4 nDim LngKeyE
+ d: S2 Z$ Q" G  f; v5 v3 h) oDim LngKeyD $ N9 k- u# v2 N3 _' f
Dim LngKeyN
* [5 K! p$ E+ t% t3 q0 R; Y& \Dim StrMessage ' b5 u! Y. F$ h, O! t) s
Dim ObjRSA
6 z8 K! `; e- l  K! V+ s! h/ i1 {* KLngKeyE = "32823" 7 Y; i+ N) U2 q9 R* u( y7 _
LngKeyD = "20643"
8 I) P) w% r: R$ R7 k$ c6 cLngKeyN = "29893" . b) }+ v. k& |
StrMessage = Message ; O$ U1 m4 i" X; l  n& q( I
Set ObjRSA = New clsRSA
3 r- s( Y) U% @ObjRSA.PrivateKey =LngKeyD
% j9 d0 m9 q, ]3 G9 ^ObjRSA.Modulus=LngKeyN 0 @/ E9 }5 R5 t6 ?5 N9 j* v
decryptstr=ObjRSA.Decode(StrMessage) 7 _$ G7 `" }) O6 T* ^
Set ObjRSA = Nothing 0 h2 L" ?7 e& m# t; d0 Q0 O. j3 j; O
end function
6 R: \4 B  w7 d$ P: n! _0 |8 [; idim last,first 8 ~0 ?  u  ]9 g* w
first="!@#$%^&*()" 3 `* H. Q2 f1 |8 }3 d: |4 F  W2 `9 j
Response.Write "加密前为:"&first 9 B/ {0 b. n1 g7 e( `. |
last=Encryptstr(first) % J- r$ q3 \) S0 [9 ^- n
Response.Write "加密后为"&last
) R( h5 D3 C& a% H. d5 X; `Response.Write "解密后为" &decryptstr(last)
2 F; V- d1 o$ s1 B! ]) y9 x! e& q%> ==============================================9 i0 \* I( v( K# n; u
剩下的就是字符的对照表了
6 N# ^, a; S, y; J. n0 V# t  u===================字符集================! U* N. I  n9 y8 d
1_____6EBB
1 U& x0 [! q( O# o2 n5 W# ]) T2_____5C1F
: e, K: K; ?2 @; S/ B3_____4D758 }! k. W* c7 l
4_____26CC$ M3 B1 e, ^5 u, S
5_____4F885 `% F3 N: L* H# l/ D! f
6_____3F4E' j4 |6 K' x/ v5 i, x  V
7_____0A9D
' D# q8 e. `7 a8 X' M( Y: H/ s8_____1A1C
) r% c: D: Q. l6 m) _/ {9_____6D203 X0 R4 l5 N( a, E; I
0_____10892 E  p$ I0 u% C, ^5 Z/ O8 H$ {
a_____0F3E
/ h9 I2 _) T8 ?9 O& w% {1 K& t5 xb_____31599 U1 M" i' h4 p" }3 x' l. a
c_____35172 t# H- T$ u/ C0 a5 j
d_____419C- d1 i+ }! B& t2 `3 k: j& Z2 S5 b$ n0 I: N
e_____615C
6 q# V/ S0 q* A' [8 b  wf_____556F" y" i1 t; U) [+ s
g_____2B7F
  N3 U) O* u5 H* L2 ~- n, }" Ah_____0F9C! Y7 \* X, J5 Y7 e
i_____00FA- f2 z3 t' N" k2 ?! B1 S
j_____5A50
% q+ l, ^# T2 O: Q7 t: Ek_____2850
! m" {& O- I3 _( ]l_____3E7B, m; s" P) o) F( k9 P* k
m_____71C5
( |) x: u7 j; `  dn_____1FC8
) R0 H% G4 F/ S7 l9 |2 Po_____74C1
% V; y1 t# D9 t; k+ Ap_____5FB8
; Y/ H9 Q! f, }2 [3 m0 Rq_____6085
. `7 Y3 p$ x5 p: a% p; |r_____3AC4! }" z: C- d- z6 ^( m+ T
s_____2F507 ^- L/ d5 P* ?
t_____36F8# V1 @9 c- l  |7 X0 H
u_____70100 j1 a: ]6 ]/ `) P# C& E
v_____0B42( r3 Q: u7 ~$ D* K5 I2 J3 G$ D
w_____1C7A
, i# P. C( F" u) ^x_____16F82 O$ W$ P9 n9 q5 H: H" L
y_____2EE73 {' P. q8 S5 q7 [* F9 c  }" ]
z_____5CF34 D% N4 X, R* L+ y
!_____6233! q- [& g2 P# H$ ~8 d9 V( b6 q! E
@_____3A45# F! [; t& a/ o, v
#_____2291
5 N" ^7 w' {: A# p0 @$ j# Z1 Y5 H$_____5D5C# f2 t, v' @: R
%_____09B9
. n9 g9 q" J9 Q, X^_____43EA
1 @  ^8 f) E& Z* L5 e&_____62B9& I' t& G- z0 t) X- l3 R. x4 ~
*_____6301
6 K4 i2 j5 a1 e% _(_____4659: }+ k, i& N! k* n
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表