返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: _3 [  g2 J0 q# j& a+ v6 j8 }原始出处:http://www.3ast.com.cm
  n1 D# r8 B1 ~5 q
% y7 b9 S4 \1 j' v" f6 [8 R" x* F看不懂的直接绕过/ S( P& ]$ T0 V. X5 ~& i: I1 d
加密前为:hwy1234564 G3 ^. Q$ D2 Y8 v! j; |
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 {! v7 u$ `6 y2 [- H  A+ o6 J% u  Q" c& q1 M: b8 J% {1 R
============================================7 D" L# p. t) J5 i/ H1 ^
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
3 @! r1 f; a/ u- G& U/ P也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法* ^; ^  }  R9 n
以下是RSA算法文件
) T6 M5 i+ }6 D4 W4 c, G
; @" L1 v% }7 e: L* F. c0 e文件名RSA.ASP
( N% Z% n% u5 t* d===============================================5 ?+ t* Y8 C7 w1 w& z; X7 N  B
<%
+ K2 Z9 l" e( H- W+ u5 Y/ HClass clsRSA
' I5 H5 T, A0 N1 hPublic PrivateKey ) G5 t7 c& y7 V' P: q* T* s
Public PublicKey : _; E( s. v0 ~: k7 N5 I9 {/ j7 l6 C
Public Modulus $ g; m" }4 l/ a5 Q; k
Public Function Crypt(pLngMessage, pLngKey)
! e6 J2 Q( j1 c' P7 aOn Error Resume Next
2 P; v$ G  [: kDim lLngMod
" ?, ^1 z0 U; f9 j/ R2 FDim lLngResult ! P8 s# f6 |) [7 L! H, w
Dim lLngIndex
+ L" q* k1 c$ `' iIf pLngKey Mod 2 = 0 Then ; I( h4 b# ~" [+ n7 z! V
lLngResult = 1 * ?3 D7 W1 Q( T3 f' j
For lLngIndex = 1 To pLngKey / 2 & ^! x$ [$ q# z  F- r) ?
lLngMod = (pLngMessage ^ 2) Mod Modulus
( J- Y! X" P$ g; o' Mod may error on key generation
1 _  p* a- \7 Y: _! d. plLngResult = (lLngMod * lLngResult) Mod Modulus $ {1 m% x: P0 `0 J# Z
If Err Then Exit Function 5 B0 \6 P* n: j
Next 5 B- J( z3 x; x* F
Else
  o2 i$ Y1 \- i4 Y5 s- f: ~lLngResult = pLngMessage + d" `" w  e2 ]$ _( b/ l$ I( d6 D
For lLngIndex = 1 To pLngKey / 2
* H  s4 m6 L$ p% R" ]lLngMod = (pLngMessage ^ 2) Mod Modulus
& G- x0 L7 W& F6 }; y* }# KOn Error Resume Next
) O. j) q7 W) c. Z3 ]' B2 J' Mod may error on key generation
9 x. b1 a8 j. e* U; \1 m2 rlLngResult = (lLngMod * lLngResult) Mod Modulus 3 j  t' f8 i& v- ~5 M
If Err Then Exit Function 9 u3 V1 R& ~; T" X- s+ k& h9 S
Next   T& q5 J2 ~+ x, o
End If
. j, T9 P4 l- w# YCrypt = lLngResult
& s6 c% h! a( q( `End Function
, t. B, a' R; w+ Q& V
( Z: t$ J7 n( i8 oPublic Function Encode(ByVal pStrMessage) 3 S4 N! S0 d+ g9 D7 p
Dim lLngIndex
0 Q4 J. |+ @/ A5 @9 r6 ?' W- WDim lLngMaxIndex
4 S$ w, E8 k8 A$ R: s! Y$ WDim lBytAscii . r2 G: R/ y: A" c
Dim lLngEncrypted
% M' _. H, ^& r! M; c2 A$ G1 J- hlLngMaxIndex = Len(pStrMessage) ( L" r- D3 C9 t2 X/ X# B
If lLngMaxIndex = 0 Then Exit Function 0 F0 R3 _9 c; g
For lLngIndex = 1 To lLngMaxIndex & x: F/ J( d) m. s* [/ }( E. y
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ; R! c" ^( l2 C: @$ Q+ U
lLngEncrypted = Crypt(lBytAscii, PublicKey) 1 W; I* ?* G" _6 V+ O
Encode = Encode & NumberToHex(lLngEncrypted, 4)   X7 Y& g! @! i
Next
6 G( P% @+ G8 E% c; Y) iEnd Function
; r2 T& v+ q4 YPublic Function Decode(ByVal pStrMessage)
5 S  G1 j. R* P7 o& g; E7 E1 m0 H! uDim lBytAscii
) u  J; i' c( T# }Dim lLngIndex
0 o4 e5 v! `# LDim lLngMaxIndex
; U1 J0 B4 k% V1 i, JDim lLngEncryptedData
6 _  u% r+ J; Z" Y' C* \, lDecode = "" $ D: j, f8 C- H# F% c( w7 F4 f
lLngMaxIndex = Len(pStrMessage) 0 J9 t/ R8 O! ^0 ?; B$ X  q' u4 y
For lLngIndex = 1 To lLngMaxIndex Step 4
9 u; w( l1 u2 ?6 a! YlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
! Z. [+ a" |4 \1 {' D8 r. |& RlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
1 ~4 v8 t5 w! R% [Decode = Decode & Chr(lBytAscii) - L! x, g& H1 B2 ~1 P9 N4 }8 z4 R
Next
, k6 J! p/ Z0 q7 vEnd Function 3 H3 H4 ?: k$ _- e2 j
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ( h4 F- B# L# W. L% o3 ?4 r9 ~4 ?6 I
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
) u9 l- t. n# E- ^: R/ T" XEnd Function
/ Z) O, P6 x) m  V6 tPrivate Function HexToNumber(ByRef pStrHex) 8 I  C- V$ T3 F6 U+ z
HexToNumber = CLng("&h" & pStrHex) ! c1 ~  ?: t$ v" K3 ?# d6 x6 h* x. \
End Function 0 o: O& X: e" j  p- X" R: t. T
End Class 3 h+ d: l9 X! e* d, @6 i% `6 q
function Encryptstr(Message) ) ^7 `' P8 S9 w: `* K
Dim LngKeyE
2 J1 W7 q# k8 V" A/ C% q: zDim LngKeyD ' ?( Y7 g# v7 m  H8 O! A
Dim LngKeyN . c0 Y4 |8 [% L& \4 l, ~
Dim StrMessage 3 t! V3 [  v7 ^; p( Y, C- ~
Dim ObjRSA
7 h6 q8 J. U/ }2 U. m( Y, ZLngKeyE = "32823"
( v  i' @* Z+ v* KLngKeyD = "20643"
: F0 u2 j+ N0 jLngKeyN = "29893"
# }( I  z8 }. A: CStrMessage = Message
' x9 @. L0 H; E' R$ G) rSet ObjRSA = New clsRSA
& L6 Z, d; l/ LObjRSA.PublicKey = LngKeyE ; e8 t& t' ]' {* l
ObjRSA.Modulus = LngKeyN
8 x" W* R# u# d3 a! u% Y/ JEncryptstr = ObjRSA.Encode(StrMessage)
: O1 M: T0 w8 K8 d5 jSet ObjRSA = Nothing ' P; z. {; v" k, W0 `
end function5 m/ g0 N. A) ~
Function Decryptstr(Message)
) Z" N  q) |; l$ |! Z% x  R' tDim LngKeyE
, A9 y7 f; H# \Dim LngKeyD
- t* g3 W; U: i  ~7 QDim LngKeyN # n5 r  z2 R! \: h% t2 T
Dim StrMessage 6 L& [; B+ G; N( e- w. `! I8 {: ?
Dim ObjRSA 0 o' A4 h% B  W3 A5 ?. o, N: U
LngKeyE = "32823"
7 s# g  ~7 D8 l* _# ~: [LngKeyD = "20643" " k+ a" A) Z: E& M7 G
LngKeyN = "29893"
4 U7 [1 o6 ?/ O5 u* G( X! uStrMessage = Message
+ v4 {( t( v- \& eSet ObjRSA = New clsRSA
! N5 b8 {" G# I: K+ |) ^: [& r1 ~ObjRSA.PrivateKey =LngKeyD
( E9 H# t: V2 s. ?; V8 `ObjRSA.Modulus=LngKeyN 0 F4 p+ W7 N) O
decryptstr=ObjRSA.Decode(StrMessage)
- e9 U  a2 d! E- NSet ObjRSA = Nothing
- h; [5 _6 F6 L1 m. Pend function
9 O1 |. \, z  M  `8 D! a%>1 n3 v5 g/ M7 p# U
===============================================! j# ?. f8 o' v5 Y1 r" P
, @. z7 v5 g$ z9 s4 F9 h
还有一个用于测试这段代码的test.asp0 ]/ i7 r  q3 c
有兴趣的自己搭建个IIS测试下
) X' i& q4 A% T* c0 I/ `<!--#INCLUDE FILE="RSA.asp"--> 2 z) }+ {  e& o" w
<%
/ M1 r- G/ l& @6 m, V# z' jfunction Encryptstr(Message)
( k7 Q6 J5 L& \5 p* h& Q8 QDim LngKeyE / W  P; [, d+ I* k# u3 |
Dim LngKeyD 5 \, S" ^# W, b2 S, F1 ]% q( @0 B
Dim LngKeyN
# A9 p  v5 k& o6 GDim StrMessage
" A! u& C+ y: _" m0 l3 C/ ]* i% N$ bDim ObjRSA & N9 ^/ F2 O: I6 ^  k
LngKeyE = "32823" 8 O: y6 @8 s% [- y+ Q' ^. k
LngKeyD = "20643"
; d5 G3 `7 A$ m' J0 iLngKeyN = "29893"
4 P  C' I- t+ r3 k! s# w1 i+ `7 AStrMessage = Message
! }8 w# m) ?$ Y4 Z7 vSet ObjRSA = New clsRSA 2 R! I% P7 X- l/ ?0 ]# J) m
ObjRSA.PublicKey = LngKeyE ) @7 J  H# g- h
ObjRSA.Modulus = LngKeyN
8 @: P! v+ y$ l" ^9 X8 g* T* yEncryptstr = ObjRSA.Encode(StrMessage) 9 \* B. \8 {# _# D7 u% @
Set ObjRSA = Nothing 4 e" [# J2 L7 e4 Z2 h* E
end function
; @. W' ^8 p1 X3 U9 K: c. I/ yfunction decryptstr(Message)
4 @6 b" X* y( d! l, fDim LngKeyE 0 W5 W" W* r' S* T* J; p
Dim LngKeyD : h4 K0 o) s: X2 G6 T1 m* N# b
Dim LngKeyN
  P& @4 {6 z( p/ x9 M2 R/ mDim StrMessage   o' u; X4 b# R$ e
Dim ObjRSA
* Y0 b$ j) ]% @4 }LngKeyE = "32823" 0 r; T% |. z7 @- ?( a# Q2 {
LngKeyD = "20643"
6 j6 I: U1 S/ y2 x; pLngKeyN = "29893"
+ ^, b& D) D: z' @5 N% KStrMessage = Message
: S" m7 D, k$ u0 r" D, W$ VSet ObjRSA = New clsRSA ' C% H6 F% }# j' Z" b
ObjRSA.PrivateKey =LngKeyD
. f" v6 r; @3 D! ~* R, T( @& n0 yObjRSA.Modulus=LngKeyN
6 Y1 d: N" X, U* x# ^, w& q+ Cdecryptstr=ObjRSA.Decode(StrMessage) . z) |% a# U' `' f& D) n
Set ObjRSA = Nothing 5 L) X1 o* G1 X& W  B2 N
end function
  A& X1 N3 C6 j: F5 y: J; }+ Gdim last,first - K7 i- {* U8 m. `
first="!@#$%^&*()" $ G/ {4 x4 y" [9 `3 I- Y8 Q  w
Response.Write "加密前为:"&first
) A( [6 _0 W1 \5 l( ~, P' Qlast=Encryptstr(first) $ O8 y0 a) g+ A
Response.Write "加密后为"&last 9 O6 t  _" ?. T; w7 w# r  h! j
Response.Write "解密后为" &decryptstr(last)
0 q( b7 d  f7 f- Z( l+ U%> ==============================================7 s5 r1 ^) N. p) R: R1 Q9 r
剩下的就是字符的对照表了' n  t- f1 P8 I4 p9 {) G5 a
===================字符集================1 N& F& `# r4 \0 J9 Z& ^  C6 C+ Q
1_____6EBB% ]! D4 m; P7 H+ B; y  Z* \1 V
2_____5C1F. Z9 g* |% f  f8 [
3_____4D75
1 S. s- l* p9 i& m4_____26CC
& r" n1 C* n) E4 L5_____4F88* d  Z) j6 A) r5 C
6_____3F4E
9 K) D6 f8 `1 [0 a6 w1 E7_____0A9D3 n/ d3 Q- O9 h1 u0 j4 w+ z
8_____1A1C5 ]4 |9 i: U4 X% K9 i
9_____6D20& d: F6 M; f4 c! Q2 N  s) |
0_____1089+ K+ h1 B+ X& g
a_____0F3E0 e9 ]$ E7 ~+ V# J% I# K- h
b_____3159
2 g" |6 v* k" Jc_____3517
/ H8 c3 A: r( K7 Qd_____419C- A" p; C' H9 K6 p8 C
e_____615C" z$ I4 g5 ~" L7 B5 d+ C  n4 H
f_____556F
  h: ]* B" {. i2 y; a3 n  Wg_____2B7F; i# \' @2 U  R. @' F
h_____0F9C. s% O4 Y% ]) }# d  f
i_____00FA) P. f  _* e6 m+ F/ U1 k4 M% t
j_____5A50
5 ^4 I# C7 [- R. t) I$ P  Ik_____28504 ]/ ?( s% L  J& p, O
l_____3E7B5 o$ F5 y2 D* C
m_____71C5
, P+ I# D! [" V2 F& Kn_____1FC8+ g/ j5 s7 o2 L. j. U9 I
o_____74C15 v9 a# U4 X$ |" T; C2 w
p_____5FB8/ [5 E2 P; e' ~! k: ^1 G7 ?1 y+ j7 f
q_____6085% c# t  w: p4 l# f4 C, [+ I; ^8 d
r_____3AC4, R# A* b! j# Q7 c0 `! u
s_____2F504 K. X+ g) p% a
t_____36F8
7 S" ]  h3 p. Q# bu_____7010- u" E. F. w2 W( l* P/ J
v_____0B42
. w. Y$ L/ t4 M5 {! s7 M' [( N/ T" Vw_____1C7A
/ ?4 E1 }3 s0 r5 d3 Q  b  {9 ^2 Wx_____16F8
* D4 k& n! N2 ?y_____2EE7) ~1 I/ y$ i: T/ J- R; E2 G# D  ]
z_____5CF36 g( W) }  F. h% E# o
!_____6233
- S6 @5 ?. N4 c! h& t) z, a" K@_____3A45
$ {! H. A# Y. w: m/ K/ @4 r& }#_____2291
/ ~8 s) D8 i4 U4 y" V8 [" w9 g. }$_____5D5C$ K% K' R" y& a1 x8 w9 ?) k
%_____09B9
9 H; e; H$ z- o8 W" i^_____43EA
, h0 T$ z- @! ?* P& o&_____62B9
, E" O, p/ T& J1 \*_____6301
2 ?$ S& L7 M3 U# l(_____46597 s4 q+ r+ z& ?1 \
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表