返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm2 ?% I6 A* O* z+ @' S6 v
原始出处:http://www.3ast.com.cm) u5 j: I7 g% }7 A; S

$ ^, K$ |) k7 A6 w8 i看不懂的直接绕过* Y! i" }2 G8 t0 k# e, J
加密前为:hwy123456% f+ l/ O7 J8 G
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
9 u( u# x; n( _
" C: J0 A! C- d  {9 g& r============================================3 P) P' ?' g: {  |
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ N  {' b2 |$ E0 m2 P8 l) s也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, U- w; H# [0 R8 J9 b
以下是RSA算法文件
& ~$ ^8 P3 r$ i3 f4 [5 T; G5 }: }4 F3 d
文件名RSA.ASP  J  a  a  g# Y: T7 ^3 n7 K# U
===============================================: q- p- y" L* s+ l* H/ y. U
<% " E, s6 P+ r, I7 c* F3 i) ?$ n
Class clsRSA
* x* {. B' p+ a4 X, J9 zPublic PrivateKey
& R4 V9 b$ X# K# o" s) L9 tPublic PublicKey : s9 k5 K2 X( Q/ ^" h+ x
Public Modulus
4 p/ C- z' f8 n' R3 E) DPublic Function Crypt(pLngMessage, pLngKey) ; U8 R) ]. f& O2 o( W6 z2 X3 n7 l
On Error Resume Next
' V# w2 H( E% M$ {( r" h+ I( }Dim lLngMod 3 x1 H0 n2 ]0 D6 K: k
Dim lLngResult
  k& q- e& Q% N! w% YDim lLngIndex
. r# }% Y+ k+ w4 l; wIf pLngKey Mod 2 = 0 Then : H) X) f( c: f9 q3 n
lLngResult = 1
* f, P, t  r& W) h% x- Q2 RFor lLngIndex = 1 To pLngKey / 2
5 Z8 n7 n  }7 N( q  {- A2 KlLngMod = (pLngMessage ^ 2) Mod Modulus
; f1 }6 O, ]% ]1 W. c' }& N, r: A5 a' Mod may error on key generation & o# s8 }& m! K' a  s6 a, @
lLngResult = (lLngMod * lLngResult) Mod Modulus & B% w. A4 h% P: r( S8 c
If Err Then Exit Function
2 D9 d) J3 j/ u" x0 v. VNext 4 S/ x0 m( j! z  n, R
Else ' k4 o/ {( f9 d- P
lLngResult = pLngMessage
: B4 W4 ?& \+ k  n" I) tFor lLngIndex = 1 To pLngKey / 2 . d: ]; S( Y2 K8 @! A( q7 G5 @
lLngMod = (pLngMessage ^ 2) Mod Modulus
4 b, C9 j7 @2 K) gOn Error Resume Next
9 h, v. e& O% S& V+ t7 y' Mod may error on key generation / }6 D9 y9 w6 y) V/ Z& z8 g
lLngResult = (lLngMod * lLngResult) Mod Modulus 6 W0 @$ X" c9 i9 Q
If Err Then Exit Function , f9 ~, Z! ^/ K( ?: Q9 Y
Next
2 \1 l5 ~, z6 e7 s8 x3 T3 ~. E7 eEnd If 0 a) ]: p# ~: [, r4 W& D  L4 ?6 M
Crypt = lLngResult
4 j$ @! I9 Q8 q3 @' E" D2 B4 uEnd Function
( u& e9 ]6 h: t4 j  S: c
4 H- K3 p3 R- I% EPublic Function Encode(ByVal pStrMessage) ' ]* Z8 p. X5 Q8 U/ K" q/ ]9 q
Dim lLngIndex
3 J1 x  P7 g6 x. K- a; bDim lLngMaxIndex
: J6 O1 ?7 b3 H9 Q3 V; T  m3 FDim lBytAscii / ^2 j) }( s* K0 {2 D5 o3 o! e
Dim lLngEncrypted ' o0 l5 O9 Q! \2 S
lLngMaxIndex = Len(pStrMessage)
& S& M' [$ _& x8 {& a/ V5 lIf lLngMaxIndex = 0 Then Exit Function 2 ?7 M7 \  t" I. u! \6 t- H
For lLngIndex = 1 To lLngMaxIndex
0 A6 t$ M0 z  [) s5 c( j7 |lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
- |; k3 g& M. ~" E' M( I" IlLngEncrypted = Crypt(lBytAscii, PublicKey)
* X0 l0 m* d) a6 ?7 N5 S& L& gEncode = Encode & NumberToHex(lLngEncrypted, 4) " _/ e0 C- w% S0 F- L; a2 m
Next " {  N  |6 L. }7 o
End Function 2 b) m6 j7 B* e% X5 v
Public Function Decode(ByVal pStrMessage) 0 X$ X* t# M' h- j
Dim lBytAscii 3 X- }8 G: m% f0 U8 g3 n
Dim lLngIndex
' s5 c2 C/ Q  a6 W6 fDim lLngMaxIndex
6 S4 {( X. K1 t" x, qDim lLngEncryptedData
) c: H+ ~& t6 G4 [8 ?. ]& LDecode = ""
" Y' ~. l! i1 }8 ZlLngMaxIndex = Len(pStrMessage) - q9 z" X! ?0 h2 X
For lLngIndex = 1 To lLngMaxIndex Step 4
% p& g# B0 h6 v1 E; _# D, ^0 NlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" b0 w5 Q; y* [! r. C; [lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
: e( q% k6 m5 s! ?( D4 u) WDecode = Decode & Chr(lBytAscii) : G% w3 B5 X  S3 v" z/ C! V/ \: d
Next
% V: n8 s6 j. SEnd Function 0 j3 Z6 _; @, V6 |3 K
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ; m. F7 T  l2 j4 d' }! H+ _
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 2 N& a  Q- H6 g4 s- P
End Function
) O" o6 C9 g! KPrivate Function HexToNumber(ByRef pStrHex)
9 y4 d# ^5 a% U7 \HexToNumber = CLng("&h" & pStrHex)
! \' @# N* w7 |End Function
# {! R. B1 p# _2 L  V: {" KEnd Class
* ~1 @- O/ ?9 |3 T" C9 {7 Bfunction Encryptstr(Message)
/ |- [4 e; u7 a2 P' K" t/ PDim LngKeyE + A- y0 H6 d) ~; W8 g& ^
Dim LngKeyD 2 g# R$ \+ v! A' e! i3 F
Dim LngKeyN ! W# v6 I, }5 p# h: G4 ], H# c
Dim StrMessage
1 ?" B7 I5 K6 N" g- h* sDim ObjRSA
; d+ E7 q% p2 i( t6 R5 yLngKeyE = "32823" & ?+ k! x! Q/ m# ^/ P+ A
LngKeyD = "20643"   d' L, O1 o+ w* ^; ~
LngKeyN = "29893"
6 Z. K: B$ \3 w- f* nStrMessage = Message 0 }- N# x) s7 g8 v, g( Y; J
Set ObjRSA = New clsRSA ( r, Y/ [0 a, i# ]. `1 q
ObjRSA.PublicKey = LngKeyE ; W4 w; |1 o3 {7 \! w
ObjRSA.Modulus = LngKeyN
0 _8 e: h, M$ ]0 u) PEncryptstr = ObjRSA.Encode(StrMessage)
" S$ ?4 B& l- I* x$ T6 cSet ObjRSA = Nothing 0 G1 o  h/ m3 N' U0 T
end function) m7 k0 T- ?) M9 Q' A
Function Decryptstr(Message) # `+ N* g3 F3 i  }9 x
Dim LngKeyE
' Y2 q# G3 I  t) EDim LngKeyD # K& Y- v& c& J, ?7 [5 A4 t
Dim LngKeyN
" z" A# w% \+ w1 v  `3 YDim StrMessage 7 }' T, p) Q) x- f, J# C* t
Dim ObjRSA 4 Z# F' L; Z; G( G
LngKeyE = "32823" 9 m9 \! O0 }, n8 e
LngKeyD = "20643" ) Z" T8 ~( B5 I& K: y+ u
LngKeyN = "29893"
. P0 _( C4 y% z% fStrMessage = Message 8 p# |$ g2 _2 ^( c2 S( ^+ U
Set ObjRSA = New clsRSA
5 W1 A! U$ f9 _  x. NObjRSA.PrivateKey =LngKeyD   e0 m8 _7 G0 [2 o" ~
ObjRSA.Modulus=LngKeyN
# |4 i  p: n- s7 [& p' F% R" Adecryptstr=ObjRSA.Decode(StrMessage) 9 C% `& {/ \, A7 {+ @
Set ObjRSA = Nothing ! }! y1 P% U1 }4 A4 z+ @# K: h
end function & f; }; g) h( g, M) @7 n) X
%>
# b" q8 a- R. s9 l# N& m/ O===============================================3 f$ F* r6 ]3 l7 n; }
& j2 Y: }8 B( {  ^
还有一个用于测试这段代码的test.asp6 n' c4 M1 N: ^4 I9 m
有兴趣的自己搭建个IIS测试下7 C) ?& z/ l$ p# M" M1 S! k# @$ i
<!--#INCLUDE FILE="RSA.asp"-->
. M- e, y9 X* A9 Q* T<%: M) P: w1 w8 n: ?7 [" z
function Encryptstr(Message)
" q5 r( W0 T# D6 n: T3 \* ADim LngKeyE
& u$ D0 p- t* d2 u' J( E/ ^Dim LngKeyD
, N  \. G, g% @7 a7 k2 x+ r6 pDim LngKeyN 5 v+ T$ Q$ \! }; n. S8 J+ V. e
Dim StrMessage - h: d/ q0 [0 Q3 U6 z9 ?9 F
Dim ObjRSA
" E/ r+ v' U4 a1 `6 ?  tLngKeyE = "32823" 2 a0 t& U& q6 c2 N' J" p& w
LngKeyD = "20643"
4 t7 _0 L1 H1 y# H' _4 ^- DLngKeyN = "29893" ' d' ~+ R) r+ \3 [# ^6 l2 D
StrMessage = Message ) L+ r9 b/ q( M& ]% _
Set ObjRSA = New clsRSA
7 Z9 ?& a- Y( N+ n/ u( h. b2 OObjRSA.PublicKey = LngKeyE . j( [; [3 Z/ h5 {
ObjRSA.Modulus = LngKeyN
+ Y2 U' |8 w, Q" TEncryptstr = ObjRSA.Encode(StrMessage)
3 O& k% t5 i! T1 s& f, aSet ObjRSA = Nothing
& l7 H( d  D& H5 }- xend function 3 Q9 i1 L& i- ^% R' p, }- U1 k- @
function decryptstr(Message)
6 D5 B' Q7 f, W0 D7 H5 T1 @Dim LngKeyE ( y/ s5 w2 ]3 J4 Y6 C) z; |5 G
Dim LngKeyD % p& U) t; i- j* q
Dim LngKeyN
# S1 I: m. e# tDim StrMessage 1 Y2 q: u9 B% g+ t8 _/ i
Dim ObjRSA
& t7 D0 e: t7 _' J9 x' qLngKeyE = "32823"
! b- m7 k/ e* ]LngKeyD = "20643" / a3 L0 V. D2 D" l
LngKeyN = "29893" / Y- N! U/ \* w8 v+ {$ t+ @  G
StrMessage = Message ' I8 z- J& S7 T' f$ W8 l+ B0 G
Set ObjRSA = New clsRSA
2 X& S1 N+ Q, K/ e9 S. T. xObjRSA.PrivateKey =LngKeyD
+ k$ j7 l* y% \ObjRSA.Modulus=LngKeyN / r" v  n- L" C9 V' y# u* y/ E) P
decryptstr=ObjRSA.Decode(StrMessage) 8 v- r: c4 j% b7 S7 E, o- a" v
Set ObjRSA = Nothing
3 k& r  V/ ?$ N9 ~4 Nend function , B# H: G/ p$ A$ y% S
dim last,first
: ]+ v* R: _5 F7 S! P( v" w8 ufirst="!@#$%^&*()" 4 T- U" F( g! ^, S
Response.Write "加密前为:"&first ; `1 D9 a( ^: q! U
last=Encryptstr(first)
8 a& ~# f0 @9 |: ]) E3 y6 S' sResponse.Write "加密后为"&last 2 M! _; e* F0 \
Response.Write "解密后为" &decryptstr(last)
0 B) K5 W4 V) `: \% M%> ==============================================
' L/ E  \9 k" {1 F( I$ }' _) O3 g( |剩下的就是字符的对照表了' ?7 v; y2 Q" U, J5 `; ?- v
===================字符集================5 D& ]- |* W  Y6 O8 ?8 O) _
1_____6EBB: ^: {9 x* S5 k- r  E
2_____5C1F; U+ H" A- d3 O9 w3 F5 f
3_____4D75) B8 _: P1 {4 X* B7 Q
4_____26CC0 V) H" d3 ^, A7 P7 T: q
5_____4F88. @2 r, _. [, o. ^$ h- L" t
6_____3F4E, |9 `0 X, A2 K
7_____0A9D
7 G9 m3 T0 q" {, J3 j8_____1A1C& @7 @" L% l/ |) m& z: }" o
9_____6D20
$ Y: Y/ ?5 x0 R5 y; x& h0_____10895 _( \9 V' }3 b/ l5 a1 ?" y/ c
a_____0F3E5 o( G7 y+ o+ T& v) n
b_____3159) U& S9 a6 R& o) p, ~9 t1 v
c_____3517& E  ?+ n8 {+ s0 ^' R. w1 P
d_____419C' L" m) s- P( ^/ c; @) A& R
e_____615C
$ w( A7 w1 `8 `# F  zf_____556F
: B6 h, O- U7 K) \g_____2B7F! O7 O0 A: b8 X1 H; K4 H
h_____0F9C( ~) U+ a0 B! L3 Y6 J
i_____00FA
& x" n* P( c% }; Oj_____5A509 {) J& U( M5 q+ Y6 f" x7 k
k_____2850
8 s) n5 h' N( Z- \8 v; ll_____3E7B3 y- J& F8 X5 z
m_____71C5/ X  Y' c2 e/ m9 f/ W) F; q; G
n_____1FC8
8 x  v2 Z2 ?0 k" `, z) Co_____74C16 F; I2 w; N, e, E0 p( {' W, o
p_____5FB84 f* Q) T4 V! |" z1 P3 s/ ], d
q_____6085
$ u' J- D! j* C: _r_____3AC4
; s1 ^+ w- y7 @  rs_____2F50% Y/ b( K2 p8 ~% e( o
t_____36F8
/ c; E7 u+ Y- a" J5 eu_____7010
# q* W' X" l& g1 Sv_____0B427 b# s' v! h9 O
w_____1C7A8 n+ p% e- E/ o4 w4 K
x_____16F88 d7 `6 c; I% O. A
y_____2EE76 p9 {4 [  d, a) G
z_____5CF3" b7 ~8 h+ e8 \/ z
!_____62339 e" i& O8 n& n- M
@_____3A45
; ], q  L( |- J1 t#_____2291
1 p. _; U8 v, z( M" F  o$_____5D5C
9 M* B5 {5 o) |4 u' s2 H  E%_____09B9
/ d- s3 _7 X5 \1 ~- n^_____43EA
. B, Q0 h3 H) g$ d/ e&_____62B9
( R+ y6 w  q# L' H1 v! m: s*_____6301
: |( G$ f/ y0 W(_____46593 M* `  J. |+ M& ]# ?8 c) G4 E
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表