返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- m1 ]! u; `6 J2 M
原始出处:http://www.3ast.com.cm
: e) y5 V; b. Q) b5 L7 ^8 P6 g4 W, K2 W) p" ~  f+ w$ {
看不懂的直接绕过
6 [/ a5 O4 o4 ^2 L" U9 K加密前为:hwy123456
! j5 X2 F& X' A' y8 U- Y加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" g& a0 l2 ?! @2 D: a: j
% Q9 `' J6 ]# L$ Y2 C; N$ o% r
============================================3 B- ]: Z  [9 {7 g
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
2 @+ z1 \2 |4 O- j: g1 @也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
/ U7 m& ]9 C6 l& k; @以下是RSA算法文件
: A: E# l7 F% T7 b9 u9 z7 U" T2 `$ \2 F& v- I! d# O/ o
文件名RSA.ASP
" q$ @4 Z6 X& C===============================================
# O: w* ]' V( ?/ ]' t; }% ~<%
8 d0 T7 M. ~/ Y. }9 k- eClass clsRSA . f3 G, L( t+ n4 D( d
Public PrivateKey 1 Z) T9 {3 _/ Y0 o- ]
Public PublicKey 9 m5 J! g6 c# `5 U/ D7 {
Public Modulus
" N$ ?( y1 x( C* \; \/ Y) Y2 X% oPublic Function Crypt(pLngMessage, pLngKey) 7 |, I; s1 ^5 {$ \! K4 B
On Error Resume Next
( x( {' I% f# C+ mDim lLngMod 4 S: H! p4 ~: Q8 a$ ]/ r2 c% Y
Dim lLngResult
) m; |+ ?3 _7 |) R7 P( \1 K" sDim lLngIndex
" l1 u+ d1 v' cIf pLngKey Mod 2 = 0 Then ! I- B) l8 q; v' l" B* V6 v
lLngResult = 1 % r1 r7 w2 ?9 ^+ [2 i1 e5 f
For lLngIndex = 1 To pLngKey / 2 ( N% ]% x: }# I) L. N' n! B
lLngMod = (pLngMessage ^ 2) Mod Modulus
& n6 U( l/ t+ q+ {' Mod may error on key generation
8 N9 {: V1 a& ]) ^* E  ulLngResult = (lLngMod * lLngResult) Mod Modulus
2 p' A  R- u" |' _# N; UIf Err Then Exit Function 8 j2 w4 l: F+ L
Next # ~% `. |) V  ]. R0 t& Q
Else - r) i: w7 e1 D2 |1 \9 v! L
lLngResult = pLngMessage ' d1 Z( p* v, {0 p) W0 z, y% }3 v
For lLngIndex = 1 To pLngKey / 2 8 E/ m& T$ O( R2 Z0 q
lLngMod = (pLngMessage ^ 2) Mod Modulus # H( R' o. l6 u" @. o  x/ w
On Error Resume Next   d8 j' U* ?! h2 @% F
' Mod may error on key generation
9 t3 @6 Q( K8 E$ p3 TlLngResult = (lLngMod * lLngResult) Mod Modulus ! p8 i/ o; i" Y# i
If Err Then Exit Function - D$ ^7 j2 H. C* ~
Next
% @9 x' m6 e5 m3 TEnd If ! z& D8 `* E- d; t0 ?
Crypt = lLngResult , D* I& o# _# w6 c* c
End Function
) b: B+ x6 Y" L# i6 Q0 W, H
0 k6 d( Z$ K. B. V/ k3 SPublic Function Encode(ByVal pStrMessage) , A1 j) O7 ~5 E& E1 }. G
Dim lLngIndex
/ {) V8 y7 u5 ~  MDim lLngMaxIndex
. W# |" Q5 `; w  fDim lBytAscii
; G/ G; e3 ?7 R3 ADim lLngEncrypted
% y2 E- O* m4 i% ClLngMaxIndex = Len(pStrMessage)
* o$ a. [% R5 r  R% r+ Z" @& `4 FIf lLngMaxIndex = 0 Then Exit Function ' i: K2 `* ~9 T
For lLngIndex = 1 To lLngMaxIndex
+ A. ~: f! N6 llBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) $ H' o4 R0 `2 v' f; \
lLngEncrypted = Crypt(lBytAscii, PublicKey)
6 f; s2 G( H4 y  ]; V6 y4 n6 WEncode = Encode & NumberToHex(lLngEncrypted, 4)
+ J. ?; k5 k; h$ xNext
7 |9 Z  D& l# j/ ^" e1 @End Function
, r# e1 f( ]0 l- h, [Public Function Decode(ByVal pStrMessage) ( y$ L6 T9 K3 I5 @  N
Dim lBytAscii
( N" E) l  u( FDim lLngIndex ; c* H% e0 u3 O% H+ _/ _
Dim lLngMaxIndex # {* P- h. I9 n! ?+ ]
Dim lLngEncryptedData ) l' T2 k. S0 t
Decode = "" 2 |% Q+ v, d9 e0 L. }, a
lLngMaxIndex = Len(pStrMessage) 8 h3 l2 H( w! B7 E+ @$ m
For lLngIndex = 1 To lLngMaxIndex Step 4 9 U, W6 [8 t/ b5 E! L! U1 F! l2 `
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
: M6 A, E9 K7 P7 e6 }- O. \# LlBytAscii = Crypt(lLngEncryptedData, PrivateKey) - i0 i7 o0 Q( N) u( m% U+ _
Decode = Decode & Chr(lBytAscii)
% b+ D! \2 R( p* `+ G( lNext
* c% l* B' u  z& b4 w( y( t8 O' |End Function
. g% `! ^; s- l) NPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
- S# n8 Q1 c! U: PNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 2 q/ U  ]- B% o3 r/ h6 V8 Y
End Function
! g+ U- K3 F: B+ D5 EPrivate Function HexToNumber(ByRef pStrHex) 9 j  I: p- J! O0 D/ O4 C! @- }" D5 E
HexToNumber = CLng("&h" & pStrHex) : l) z; \! p" L. c# A
End Function + W/ J. G: g! F+ p& e
End Class
9 I, t& y0 I) @8 y, y* t, mfunction Encryptstr(Message) 7 g7 O) ?% w* F" ~& m
Dim LngKeyE 8 X6 M1 S$ }: N& ?; C$ H& I6 H1 H
Dim LngKeyD
. L* w7 o2 i7 J" _7 o4 r- {Dim LngKeyN : e: r. C4 J2 N, k0 @) g" A
Dim StrMessage 3 Q: n7 G5 [4 {) Z+ A7 q
Dim ObjRSA
" [: k" L5 @& n8 v) E% E* mLngKeyE = "32823"
+ R3 a; P$ `6 V& \8 RLngKeyD = "20643" - T0 ]7 E5 t* [/ D
LngKeyN = "29893"
' k; g7 V- H6 F( J  @StrMessage = Message
+ a4 t! V) J! L) u$ X+ lSet ObjRSA = New clsRSA ( U$ m7 N& b  M/ \, e
ObjRSA.PublicKey = LngKeyE
! y2 @3 K/ N! o7 pObjRSA.Modulus = LngKeyN 9 p; }8 R7 {/ u2 G: J" N2 q+ }
Encryptstr = ObjRSA.Encode(StrMessage) ) k( u- |, M/ o) i) Z
Set ObjRSA = Nothing
- O. J1 v9 {2 ~. a3 ]end function
# h" h  `$ ~8 M/ Q6 D+ aFunction Decryptstr(Message)
/ N" S: L9 Y+ D* a1 G2 d0 SDim LngKeyE
7 C! A( Q  ?2 s- o; d& P! R; }Dim LngKeyD
+ ?( Q1 D6 C7 f- jDim LngKeyN ! c$ g6 O; ~: O6 j6 B
Dim StrMessage
, y9 T5 \7 m8 l4 X  R0 m( WDim ObjRSA 6 J4 q8 f( m# ], S: u
LngKeyE = "32823"
; T9 x$ E9 b- B' YLngKeyD = "20643" 7 W( x5 a; E% z% N3 J
LngKeyN = "29893"
" Y# q. {6 o0 d. b8 V* QStrMessage = Message 7 J) \: ?& w* B4 T: ^
Set ObjRSA = New clsRSA / P0 x) b4 i6 F7 Z: T- ~" b: Y
ObjRSA.PrivateKey =LngKeyD
" E+ J) I% b* r5 vObjRSA.Modulus=LngKeyN " Z% b1 C  x8 y) H. F+ ]
decryptstr=ObjRSA.Decode(StrMessage)
0 _4 @/ u/ y1 _+ s3 qSet ObjRSA = Nothing
1 l: _# M) ~* Z1 F: mend function . m. A+ b; q# q0 ~4 w& g( G; d# p
%>
7 @/ g2 Z" v0 p+ T5 L8 U===============================================
" _- Z3 u! H2 h# c* ]
) h! j0 z  x- U6 ^7 z' e还有一个用于测试这段代码的test.asp7 p$ d4 ]1 X  g
有兴趣的自己搭建个IIS测试下
: D  W: ~) c! f<!--#INCLUDE FILE="RSA.asp"--> - @+ K  e  `" Q* V& \
<%
+ \# o5 e  D" r: c& ^function Encryptstr(Message) ; O8 K* ~- L. C
Dim LngKeyE : H3 M0 B3 C; ~) |! U$ y
Dim LngKeyD " N2 W4 y, |7 B' r- L
Dim LngKeyN 8 L: k% p1 R, s' q/ y2 [9 P
Dim StrMessage
% S$ h+ X) G; n: t8 A* x4 GDim ObjRSA   K0 r3 B4 F- V- b# C* U0 P
LngKeyE = "32823" 5 F+ t9 B1 O4 R+ n7 `3 h) x$ G4 i
LngKeyD = "20643" / X5 o% }0 Q; g8 M5 e& O" ?2 H
LngKeyN = "29893" 8 T- Q7 }. A% Z
StrMessage = Message
# P; S6 j8 U: a/ v$ `Set ObjRSA = New clsRSA : O8 d; X$ G/ D9 ^! i# O
ObjRSA.PublicKey = LngKeyE
+ |  r0 Q! |3 h% H4 _  GObjRSA.Modulus = LngKeyN ; l5 v& b$ O  G; U0 S4 I) t) t4 B
Encryptstr = ObjRSA.Encode(StrMessage) 1 h2 J! s) p0 P$ f8 h2 ~
Set ObjRSA = Nothing " I$ |+ b6 O& r3 W
end function
6 }: o/ N  O( \! Xfunction decryptstr(Message)
/ n: h  d3 ?0 m' L5 }Dim LngKeyE 0 ?$ k+ I  |! {: p, F3 J6 P
Dim LngKeyD
4 k$ m0 h: c% LDim LngKeyN 3 F* G& q: @# c3 C6 }
Dim StrMessage
6 i# @" R" M8 uDim ObjRSA 3 _& O  B$ f& }) y
LngKeyE = "32823" - y1 F& W& q6 W! j
LngKeyD = "20643"
# ^9 J4 g& q9 R" x- w' t' ZLngKeyN = "29893"
8 s8 v: [, k6 a) O7 K0 ~. oStrMessage = Message
6 p) i! p) M& K8 U8 _8 kSet ObjRSA = New clsRSA % g% p4 Q$ F6 j# Z
ObjRSA.PrivateKey =LngKeyD
8 `4 [1 J) o8 o+ Y, CObjRSA.Modulus=LngKeyN
+ H$ d. u! }7 tdecryptstr=ObjRSA.Decode(StrMessage) $ `3 r0 ]' V' F4 ^) a: g) c4 v
Set ObjRSA = Nothing   y; K5 s6 ?, Q3 ]6 O; Q
end function
, n( e' A" O% P) c$ t  wdim last,first * V1 u) }* \6 c& F& I  G
first="!@#$%^&*()"
3 ~9 G+ V" B  q& V2 gResponse.Write "加密前为:"&first
, U  v$ k; |3 j, w7 p* ^last=Encryptstr(first) 0 y& U* E6 ~; q6 J
Response.Write "加密后为"&last
. c3 _5 j* y/ _, ^. fResponse.Write "解密后为" &decryptstr(last) 6 d% x0 j5 c' N' s$ ^9 N2 b
%> ==============================================
& n% _4 a6 J) J8 k剩下的就是字符的对照表了
- d$ I9 t  ~8 S, W0 P0 q  l5 S===================字符集================
; Y  u! C0 Y0 H7 d, i1_____6EBB
. {5 F2 G+ o" B& n5 y* K2_____5C1F
4 z- |) m4 w5 X# D+ ~, `3 m3 A# ?9 a, E3_____4D75
. G+ D8 o1 x3 p4_____26CC
, s! _- P1 [* `- g% a4 B/ [7 l5_____4F88
: Y3 S+ e8 l! M7 \4 t6_____3F4E
& @2 }. k2 x6 P) J! z! t7_____0A9D
+ `3 A7 c& e( W5 O8 f# ^# k" L* A: d! B8_____1A1C
  o3 g. X! G9 a6 d9 `( |2 e/ l9_____6D209 E( J' y( }% P( |& F
0_____1089
  I+ a1 T! C) a- |7 L! r! R+ pa_____0F3E0 a( d" @: {/ T& N) s  |7 e
b_____3159
. I, n; b2 J3 s1 \1 [5 K+ D$ `c_____3517
( v6 w$ Q1 ^# S1 W+ Q2 Pd_____419C$ ^$ V: f5 Z  {7 s1 _* {
e_____615C
* O& p/ G! ?; d2 G$ s+ f" Nf_____556F( a* O( M0 m" f/ J
g_____2B7F2 w1 w; S* j7 k, a( m
h_____0F9C
7 m% r7 A! n/ W7 _( [i_____00FA2 M- i3 H/ K9 y& J1 d7 j6 s/ g
j_____5A502 O% l4 C' A' p- ^
k_____2850
" D. U7 E' J3 gl_____3E7B8 `' R1 t7 C7 T6 f7 w: o/ k3 x# @
m_____71C5
$ a% Z+ E- Q$ Y$ Sn_____1FC83 l: X3 W+ R: {9 ~! T
o_____74C16 J& f- A' P3 `( V4 B
p_____5FB8
( j9 v9 C. [4 A2 n& c* D3 l# N9 N& ~q_____60858 n1 V' U4 g( i) j1 S
r_____3AC49 q% r) P& W, r( r/ Y
s_____2F50
2 x4 G0 ?# w4 E9 K: ]* xt_____36F88 ^' W: q: ]2 ~, g2 S: c
u_____7010
0 l: f6 p+ n& j: v6 s, X" vv_____0B42
$ l, N; ~  f) s/ z2 Vw_____1C7A2 c3 H9 o7 V0 ]8 y; W
x_____16F83 I2 Y9 g* C; y2 ]- Y8 z! G& k
y_____2EE7% U; L6 g/ g* I, B' U
z_____5CF3# o. h; e" x$ J! j0 F
!_____62337 w+ f& L3 G# R! O( B
@_____3A45, r/ t  z( \6 q5 t
#_____2291
+ ?8 G- V/ ]; z) w$_____5D5C1 i2 @6 d0 Z( _9 R) j
%_____09B9
; q  X. u3 J" s/ _. O: a^_____43EA% Q* g8 n" ?# R6 |7 f( {* ?
&_____62B9
2 N) Y8 A  T- i  a* b/ }*_____63012 E9 v% c: L0 W: t$ j& Q4 d( }1 m
(_____4659, x1 Q0 i* t/ L+ z0 k  u. F
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表