返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm4 W  @+ i* z/ M3 c/ f
原始出处:http://www.3ast.com.cm1 ?9 t5 ]9 E! E7 ^

$ E; q. ^; u* V- {8 P8 v# f9 F看不懂的直接绕过
5 M  E2 |6 [! Y4 b' p, I& f& q6 q7 g. P加密前为:hwy123456. [' M6 X. [& }9 b$ A
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
9 I+ r  \, G+ K! m, i
* i" U& T# p8 j: }1 ?9 m============================================) c; d: `0 j. B3 C
上面是当时自己校内的心情。现在已经解破出来了,分享给大家+ p* j& H6 ~$ r. A# n
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
$ J5 |# C; d6 `; N  E以下是RSA算法文件
" t! S7 P6 v) U* \4 ~
5 l" d1 X+ t5 b) h3 R+ l& G文件名RSA.ASP
" E7 n! G) T& T* b0 {( E! X. W===============================================
- e& b- [1 E) }0 F<% * I' z( O& L  f
Class clsRSA # u2 g/ J% a* G
Public PrivateKey
# \5 P& ^% g) u; s6 n' zPublic PublicKey : Y0 g3 u0 I- {2 \! j+ \8 n
Public Modulus
1 d1 C  D0 H+ x: kPublic Function Crypt(pLngMessage, pLngKey) 5 M1 k- }  j# M6 ^; l7 k! x, q; C
On Error Resume Next 3 _$ D% |. [) ~
Dim lLngMod 5 F+ V! ~! j& A. [
Dim lLngResult ) ?9 d& l! e* m3 m* x
Dim lLngIndex + z3 Q- c7 Q3 I: s* y
If pLngKey Mod 2 = 0 Then
: v5 d: H5 c6 a' i( vlLngResult = 1
7 _) U$ i: s. D  z& r* ^( q/ FFor lLngIndex = 1 To pLngKey / 2
2 ]$ I8 Y$ n" R# ?0 S/ B% s3 alLngMod = (pLngMessage ^ 2) Mod Modulus # k+ Q0 P9 r  q6 t0 t
' Mod may error on key generation , n' G* m, K) X; M+ _
lLngResult = (lLngMod * lLngResult) Mod Modulus 8 J' `! }- z9 e
If Err Then Exit Function . n- A+ O0 o7 Q+ o# M$ s
Next
3 f! Z4 n" k7 X# S. g+ `2 J4 `Else 9 M9 `% ~! g) U4 A4 w! e- c
lLngResult = pLngMessage
7 ]) j/ I. l1 p% \& pFor lLngIndex = 1 To pLngKey / 2
- l! C; V* S) S1 T% q- p  A) llLngMod = (pLngMessage ^ 2) Mod Modulus 1 K. w: w! l. \* _+ D
On Error Resume Next 3 q% P% K0 _4 m3 }& ^5 H$ o
' Mod may error on key generation
/ ^, v3 l$ W+ Q3 A) P1 ~5 GlLngResult = (lLngMod * lLngResult) Mod Modulus $ N; e* M8 q( Z; N: n
If Err Then Exit Function % v* d, H7 r5 C% ^6 a& f9 N
Next
, |$ l+ v# V' O& f) ]9 BEnd If : `4 p5 w8 w5 y  v
Crypt = lLngResult ! M) T# r1 U, p! H. y/ O. \+ C9 |
End Function
# i1 m% I. x" j% s: g: K( D; h( n9 x& D; x6 U9 H
Public Function Encode(ByVal pStrMessage) % }  g- e. E; V) I  ], y- u7 c
Dim lLngIndex
0 r4 V# w! g  h+ y$ CDim lLngMaxIndex / l: [9 ]/ V' Z0 U4 X
Dim lBytAscii
, u9 V0 ]9 u! x7 t2 j2 iDim lLngEncrypted
; B7 s9 z6 c' SlLngMaxIndex = Len(pStrMessage)
1 U! d' ^0 `: q4 p9 WIf lLngMaxIndex = 0 Then Exit Function 0 F. ]) w, a4 I
For lLngIndex = 1 To lLngMaxIndex 5 S( ^3 @. K) ?8 u$ K6 f
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) $ B0 Z- J: X4 \; ^2 ]/ {0 M$ U
lLngEncrypted = Crypt(lBytAscii, PublicKey) 7 }4 o5 q" y5 g
Encode = Encode & NumberToHex(lLngEncrypted, 4) : P2 h, d) w' J# u9 D
Next # Q: ]9 A4 @: c, T* R/ b
End Function ' a1 y8 Z* I6 p5 H4 y- o! E
Public Function Decode(ByVal pStrMessage)
/ l; B: X5 @4 BDim lBytAscii
$ @- o2 [$ Z( T' J3 [3 YDim lLngIndex 0 Z- x- u0 \/ Y# B* r! e
Dim lLngMaxIndex ! \7 b9 @4 ?# O5 n2 v4 z! M
Dim lLngEncryptedData
2 S1 a9 l, X/ b/ S8 w$ v/ eDecode = ""
  o2 @9 N, }1 x7 f- F& rlLngMaxIndex = Len(pStrMessage)
( v  l  `* q2 s$ W7 G7 R8 dFor lLngIndex = 1 To lLngMaxIndex Step 4
) u) @3 Y: K$ `: G0 {lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
: P" D2 `) d5 M, X! HlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 5 Z2 ^. |! z: W/ d0 R! T; U5 M
Decode = Decode & Chr(lBytAscii)   B+ P$ h6 m% J' v0 c
Next / v* Q% @8 \6 W; P; `( M
End Function   d0 x. S# E0 I6 ]- p4 S
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 f, G- v& ^* |. X1 `
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
1 ]1 W1 h4 I) S0 CEnd Function ) N8 K; ]5 Y# \2 W$ T& y
Private Function HexToNumber(ByRef pStrHex) . \* {' D( M) F- J9 \5 g
HexToNumber = CLng("&h" & pStrHex) ( b7 U" p# P& E8 e+ C+ _
End Function
, P- b' A3 R- t/ K$ o3 p. n, O3 m$ o( {End Class 2 V7 M4 R0 k5 R" d, |; ~8 Q
function Encryptstr(Message)
- x- D4 @3 ^# F! uDim LngKeyE
. k: ]- a2 R) E3 w0 v  ZDim LngKeyD
6 x1 H* Y9 S% F/ Y* IDim LngKeyN
4 Q) ]3 p6 [# @Dim StrMessage 9 E# W9 ]+ J% T* b' ]
Dim ObjRSA
- Z' q4 e8 ^3 N0 Z1 @LngKeyE = "32823"
' p0 c$ g6 S- Q- n3 gLngKeyD = "20643" 8 j6 j  l0 _- Z) T
LngKeyN = "29893"
* U% @' g6 D! x$ l( oStrMessage = Message ) d7 |: t/ V  K9 [" T1 {# Q& ]
Set ObjRSA = New clsRSA
3 S  R2 Y: c. W# [$ gObjRSA.PublicKey = LngKeyE 5 f% n9 l' Y, h# }8 D& U
ObjRSA.Modulus = LngKeyN $ d: q8 Y4 h7 z9 m1 S
Encryptstr = ObjRSA.Encode(StrMessage)
% {* ?8 k0 F  t1 s6 i. ?! @4 hSet ObjRSA = Nothing
% P9 @6 v  |$ \) ]% ~, I; _5 K/ ~end function' Z. s/ S4 P2 _- S  Q2 y7 D+ G4 v: h
Function Decryptstr(Message)
* l) p( z/ m1 X8 w6 ?Dim LngKeyE " ~! B+ F) r8 @$ D9 W
Dim LngKeyD % m& y( f2 J/ N6 p* @
Dim LngKeyN . O. k5 c1 F4 x! }
Dim StrMessage
5 L  u- `6 t# C; [' tDim ObjRSA   f# x5 _( T  J. ?
LngKeyE = "32823"
1 w. D1 n5 T0 A, W. G) i' ?3 g6 [+ PLngKeyD = "20643" 3 \) O7 ?3 }2 w& G; Z4 H; Y
LngKeyN = "29893" - y' Q+ `' T" ^1 Z9 ]
StrMessage = Message . d: Q5 [! J8 ~9 N4 k
Set ObjRSA = New clsRSA 3 S7 s# ]$ G  U
ObjRSA.PrivateKey =LngKeyD
" m4 w* Q( `/ `) v4 RObjRSA.Modulus=LngKeyN ) `% I) m3 V; v9 t2 L. e
decryptstr=ObjRSA.Decode(StrMessage)
3 b) V( s; \6 f9 VSet ObjRSA = Nothing
3 t+ J9 F2 {* u( ?) C0 q% X% B: \1 yend function 7 j6 W8 k' i- V
%>
* w2 y5 S! T' f" N! y===============================================
% O' k% s  G2 [/ P! R2 z4 e& f0 B; @
还有一个用于测试这段代码的test.asp" b, v' M' Z5 D: {! Y0 D/ @
有兴趣的自己搭建个IIS测试下3 X) R$ Y4 I& G1 q* f
<!--#INCLUDE FILE="RSA.asp"-->
. B) u0 }5 X. l9 u) S7 X<%
! ^0 x# V' q, W: I; Ufunction Encryptstr(Message) & c) O7 n8 A' B/ V# Y0 k
Dim LngKeyE . ?' s7 [: D' ?- p
Dim LngKeyD 0 C( ]7 s. f& O$ b4 E
Dim LngKeyN " _/ q) d4 E2 s, e* f$ }9 h* x. L- x' V
Dim StrMessage
4 W8 i  A' _* T, g& _$ [Dim ObjRSA # m/ ^3 @# }/ K3 X7 r
LngKeyE = "32823" ' h; {( w/ C/ r  `+ w0 I
LngKeyD = "20643"
  E% p5 u- B7 TLngKeyN = "29893"
6 c/ E; g+ ?% B% e3 AStrMessage = Message 1 ?) }7 g  {3 ?7 u+ t
Set ObjRSA = New clsRSA   j( `% s3 d1 k0 M9 E" b4 K
ObjRSA.PublicKey = LngKeyE : G* B' N6 }6 ~. E" L' t3 o8 t2 c4 C
ObjRSA.Modulus = LngKeyN
- L- H9 `& f- v; |4 uEncryptstr = ObjRSA.Encode(StrMessage) & ^6 R* ^1 P9 M5 n$ t: D$ w4 v
Set ObjRSA = Nothing ) Z7 A  f% \4 c( D( L" i; r) L
end function 1 Y" ^3 V) P8 S: V1 z
function decryptstr(Message)
9 r* t: Y! Z9 C+ n# g9 Q4 H+ jDim LngKeyE
; ~# {7 o1 ^' C' X9 ?8 l. Z0 P' LDim LngKeyD
. S7 o( ]6 i0 n9 Z2 mDim LngKeyN : O  ~; y" V$ B( H8 e3 b
Dim StrMessage
8 }+ F. M8 @0 n3 NDim ObjRSA
- s* G; L2 w# w$ SLngKeyE = "32823" 1 a& M' t: g* Z! _
LngKeyD = "20643" 7 O3 w( o3 S) a) C+ l
LngKeyN = "29893" 6 t  R4 k4 Z& ?- ~. t
StrMessage = Message 3 l. Z  ^4 P# ]/ w
Set ObjRSA = New clsRSA ( o! |3 U: W% \6 H/ V: K8 {- g* [. c
ObjRSA.PrivateKey =LngKeyD & ~/ ]" z" X- W. }
ObjRSA.Modulus=LngKeyN   P# ]- z" M0 \+ U; }) M
decryptstr=ObjRSA.Decode(StrMessage) / I7 E% [# [+ k8 D  h
Set ObjRSA = Nothing 2 S( E3 u- L" X& e
end function 1 n- q% @# N7 z
dim last,first 3 g; k+ W, k- P$ K
first="!@#$%^&*()"
! t& t8 b- Z& G1 ^8 E( e* ?" zResponse.Write "加密前为:"&first # D% w6 k. `9 q6 }) X1 n3 ?8 D
last=Encryptstr(first) 8 E* i! U* I/ h3 I8 z2 I$ I
Response.Write "加密后为"&last
. }/ w0 w, E; p9 [9 j0 |! [* sResponse.Write "解密后为" &decryptstr(last) 8 _$ ^; _+ U+ b3 R! ^& j) I' F% t
%> ==============================================
! K" T1 l0 u8 M; l4 n2 s% k剩下的就是字符的对照表了
3 v" g) d7 U/ |& D; B===================字符集================
% N) M+ N+ h0 s1_____6EBB
2 D) w# U/ ?6 B  H4 t4 J2_____5C1F; Z% G2 F6 O: V" R" l# v
3_____4D75
* I* T# c7 z0 d7 N, W* @8 e4_____26CC% r; ?3 a: \4 ?4 |" B: J2 T
5_____4F88
  {$ {+ P: y# [# E2 I" `* I, p6_____3F4E
. M7 a, K9 h( Z% h( f% z( f7_____0A9D1 A) B  w5 `" i0 S- M/ S% G" x
8_____1A1C$ T' Z  }9 ^/ ?
9_____6D201 }: Z  h  b  P! n
0_____10895 I* R  V. V0 t
a_____0F3E1 b1 _6 K6 c2 K; ^# J
b_____3159: M7 R5 s/ f+ y7 k
c_____3517
+ R2 H) t4 _6 U* md_____419C
; u- k! b2 \: W% C' ]# we_____615C- ]5 g: `" T8 {, g
f_____556F  B0 d# D) J' \6 ~& _
g_____2B7F
( |2 H% u  Z& i6 ?0 V5 Z, X; `h_____0F9C
! y7 W$ q. q' k" {9 ]i_____00FA2 x# J; l' O2 T  c3 S: J# V& Z
j_____5A507 V  k9 x4 n, S# n* K6 C
k_____2850+ X0 y; e- [, C( o$ }3 n5 ^; V
l_____3E7B
+ _9 \1 `) E2 j: }" k) c9 c- gm_____71C5
1 H9 r, \1 X; M1 }n_____1FC8
# ?$ f) l# E& b2 Ao_____74C1
6 ~  f" O3 e( q2 g$ C2 \p_____5FB8
/ T# g6 h0 {0 _8 zq_____6085
# j) i4 [$ l2 q; b) Kr_____3AC4) I3 ]! j# H  P1 v' f/ I2 L0 F
s_____2F50
3 Y2 o+ T6 p# v* i- |/ ?+ z+ kt_____36F8# G& G8 h$ M1 [
u_____70107 w# H. m+ E% K  w
v_____0B42
7 U7 l+ Y! ]9 ]! Nw_____1C7A
' n4 @- M! f$ R, ux_____16F8& O2 y7 j- U7 ?- s3 C
y_____2EE7
: \( C3 b/ ]6 J: a! Vz_____5CF3
( b2 T& [' e! @; v6 _!_____6233, |7 m% o% V' ^0 R2 V
@_____3A45
% W, i  r1 T1 N4 v' \1 ]#_____2291
7 I1 ~" A% N6 b3 P3 _$_____5D5C" |1 H& v( b& K  {
%_____09B97 w" U9 |0 q3 z; f
^_____43EA
! K, G/ n% h8 z; N1 z) S; E. m&_____62B9
# Z. M' K5 V6 D2 R*_____6301# C3 G2 v% g' }- k3 Z( m
(_____4659* f: ~8 K7 A% X1 z
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表