返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm8 Q$ c, Z. P4 |& A: N8 r- w
原始出处:http://www.3ast.com.cm% X( U7 ?% d8 `& h5 ?& |6 c

0 h! V9 ]6 F3 R% \8 N1 F看不懂的直接绕过; q. C. |( H! b' x  S- L- a
加密前为:hwy1234567 S- Q! J4 n# h3 V0 Z2 V/ M; `1 O) \8 `
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E8 t" q1 r: A8 ?; s: \6 }4 @/ B
4 P# E8 y+ ?* K2 t- \8 N
============================================
. D; l) k6 M+ \9 G( ?, [. {* @上面是当时自己校内的心情。现在已经解破出来了,分享给大家5 x2 }8 e* X. [5 l: X7 d
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
  {" D; N, K" X' _3 P% K以下是RSA算法文件
( E/ L+ G* }5 A2 x0 Q! X6 N: W( h2 Z3 ]. i% p" S9 k1 f: }+ y+ B( g' u
文件名RSA.ASP
3 F9 S  K3 Q# @( D2 Z===============================================  W9 O9 N5 f4 U$ U$ N& ^
<% 4 h! S. V+ m, ~. `
Class clsRSA
' v4 g. j: s9 b7 z) t. yPublic PrivateKey
$ q, o5 b1 }* K5 b% MPublic PublicKey # [8 p; J) c& z* ?2 s3 r
Public Modulus
/ r, u% X8 `' }; b. V3 @Public Function Crypt(pLngMessage, pLngKey) . N* s, D* x$ M' |7 i. r0 }% g
On Error Resume Next
0 H& k9 o! S/ d7 LDim lLngMod
# u/ i7 o% h/ ~" r5 I, A8 I8 lDim lLngResult $ G% x2 Y0 |" E6 q+ g6 C- A% T
Dim lLngIndex
  W+ P* g6 C/ SIf pLngKey Mod 2 = 0 Then 6 g. J. ~$ {5 Z  _! w( H
lLngResult = 1 ; j/ H' E9 i4 s1 O& X2 m+ X
For lLngIndex = 1 To pLngKey / 2 ( }! k, W' R. Y9 [. H. `1 Q
lLngMod = (pLngMessage ^ 2) Mod Modulus " b+ {9 y$ b, \3 J# H
' Mod may error on key generation 4 w" w! z6 F* l7 t  o& e; Q
lLngResult = (lLngMod * lLngResult) Mod Modulus
: }4 W1 \9 `, E) d% r1 \% WIf Err Then Exit Function
, M4 I4 ^0 `! _8 q7 \5 n# c4 INext * z. }! l9 l2 v8 {, L- j
Else
3 E5 q, R4 Z+ L" @lLngResult = pLngMessage - d0 n2 [& k. R
For lLngIndex = 1 To pLngKey / 2
9 _6 F" s) M: t3 f' @4 b4 g1 ~5 G0 p6 [* FlLngMod = (pLngMessage ^ 2) Mod Modulus 8 m0 r$ @$ z- D9 k) x
On Error Resume Next   f( {& H# I9 l/ ~' U/ V
' Mod may error on key generation
) q# Y& L4 E, ^lLngResult = (lLngMod * lLngResult) Mod Modulus
5 ~9 w- m3 h' ~; j7 h, s5 gIf Err Then Exit Function
, n# e; |( p* G. m  a- ?; oNext # _% z% r% {/ l. p
End If
; G" \$ w! ]0 g9 O0 U! UCrypt = lLngResult ' ~8 C: K; q  ?3 c( J9 w! F3 e- f
End Function, R7 r0 n( O! U& l5 ]. W

' G/ y$ f: y1 Y3 aPublic Function Encode(ByVal pStrMessage) - X2 g; x+ m' R& k+ S0 J- u
Dim lLngIndex
- x, H3 L8 u# x; qDim lLngMaxIndex 8 A- K. @0 M! L6 F3 v
Dim lBytAscii % B* i: V7 w& D4 y6 o0 q- I( r. V
Dim lLngEncrypted
- m4 P, i8 O: C" j# _5 KlLngMaxIndex = Len(pStrMessage)
, z# ]. f1 @, B9 z6 EIf lLngMaxIndex = 0 Then Exit Function
8 v; U+ C7 D* F. ?* m3 F9 v3 v' nFor lLngIndex = 1 To lLngMaxIndex
5 i) i  }# i2 Y8 u5 M! d/ [; B5 R8 KlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) + A" i2 V% S! a$ J
lLngEncrypted = Crypt(lBytAscii, PublicKey) 8 W* {6 j( w2 g$ J
Encode = Encode & NumberToHex(lLngEncrypted, 4) ; g. K" E1 n7 C) C# ^/ v
Next / i; b; q$ b* g- l
End Function . U! p3 d- p: ]$ {) X7 z
Public Function Decode(ByVal pStrMessage) 0 [) S) [* v% z5 t+ G, ?! c, K
Dim lBytAscii 0 r, j+ v% V/ v& I/ B. |
Dim lLngIndex : v) _" a) B/ s5 J& g9 a! E
Dim lLngMaxIndex 7 B$ l) l) t8 G) M
Dim lLngEncryptedData 0 w8 ^/ b: J" G/ \- a, |0 z
Decode = "" 0 c* ^4 B( r) R+ w4 i1 L
lLngMaxIndex = Len(pStrMessage)
3 o% M# n; [. C  SFor lLngIndex = 1 To lLngMaxIndex Step 4 2 a* F. ?8 u+ Y+ B% R
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
. W# V9 ?% i, }. O2 _/ ilBytAscii = Crypt(lLngEncryptedData, PrivateKey) + d0 w& }# l* ^8 ^( c& H; I) {
Decode = Decode & Chr(lBytAscii) 5 A1 j' v2 B+ l: C+ @
Next 8 ]& o& ^: F! r6 W0 S
End Function 9 _, g4 m: c! W0 {) W8 H
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) & K+ W: F- C" m! \, N2 d' ^: M
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
0 [. I$ o! E# x" r& YEnd Function
# i% F( q( X2 x5 _/ HPrivate Function HexToNumber(ByRef pStrHex) ) v+ p! x2 Q9 V6 `! @
HexToNumber = CLng("&h" & pStrHex) ' U& s7 W) J# a/ }
End Function
/ v' b& P0 Q2 R1 U( wEnd Class
7 s3 l$ Y: l# o/ \4 _$ I1 p0 m4 ^function Encryptstr(Message)
3 l/ m, F, {9 f6 N6 j( EDim LngKeyE 4 q8 L. Y0 P( t0 Y: Q3 y
Dim LngKeyD
) U2 L* l/ O" h5 W2 k6 xDim LngKeyN
) ~4 ?/ R# [7 w' e- G8 J8 TDim StrMessage
& o, B/ Q. Y% k6 P7 b) K6 |9 ]0 DDim ObjRSA 6 N- ^) L; h3 z5 d
LngKeyE = "32823" 5 J' |6 I8 b: r* @3 Q/ u, c: O
LngKeyD = "20643" - [9 j  B9 Z  R; A; n: X
LngKeyN = "29893" 2 ?  O; J% \8 v1 t3 t% b
StrMessage = Message
( j2 P1 \: [% j2 t, h, e# f9 C- gSet ObjRSA = New clsRSA
: l! J& Q% \  j: V2 qObjRSA.PublicKey = LngKeyE
4 A" n2 Z7 H' yObjRSA.Modulus = LngKeyN
. |/ ]2 W2 n# W1 C9 bEncryptstr = ObjRSA.Encode(StrMessage)
- s4 G- t' e7 b$ Q( T2 QSet ObjRSA = Nothing
; {3 k. a2 O5 S3 ~, uend function
, |  O& h/ e* u0 B% C7 VFunction Decryptstr(Message) & ]  Y2 z* Q: I& U( n
Dim LngKeyE 0 Q* _) r/ ~: B/ ~! l: S8 ^
Dim LngKeyD / b! H4 E8 p3 z1 j0 N: U
Dim LngKeyN : Z5 [& `2 I- L, t4 m' R
Dim StrMessage
. e  H  O6 H! i' ~" KDim ObjRSA 8 ?" i. c/ l9 e
LngKeyE = "32823" & e1 \. X$ d  S* o; b0 J( J
LngKeyD = "20643"
, ]: i3 V/ ?6 nLngKeyN = "29893" - b7 B  H, N7 I
StrMessage = Message
/ ^. S0 M8 W9 A* ~, [. V, ]  t5 |& e7 D* HSet ObjRSA = New clsRSA 4 u. P) ^) J3 ^- T6 b! ]$ w3 [
ObjRSA.PrivateKey =LngKeyD - N' n2 M5 o# G$ @
ObjRSA.Modulus=LngKeyN 2 h3 r. h. d: o2 X5 ^
decryptstr=ObjRSA.Decode(StrMessage)
7 L4 f- n5 V+ o1 v+ KSet ObjRSA = Nothing 6 Q& I* @0 L- L  `. H- G. x5 w
end function
) C" X$ E' P; F  R2 ~%>5 Z. o) t) p; M
===============================================2 J9 n/ }8 Q0 k; T- Z- v

( b. n. t+ t7 K) b+ F; j0 n还有一个用于测试这段代码的test.asp
4 X( l/ e6 |& k有兴趣的自己搭建个IIS测试下! ~1 [/ E8 e, }- g8 y% V
<!--#INCLUDE FILE="RSA.asp"-->
' c  c4 [4 v2 m6 N2 ]<%5 X- T& k/ x& @4 T3 U. v* F  k8 O
function Encryptstr(Message)
0 m; }" ~7 v2 M) D7 sDim LngKeyE
6 V* `- s: \: h7 E( N; V$ y0 M# MDim LngKeyD
' c1 p& x9 k* l: B- y) G2 iDim LngKeyN
' T) L( B$ [" [Dim StrMessage
, X+ \, v6 u- i8 P, j+ J+ HDim ObjRSA
% P4 K3 c  L$ c) ~9 {! mLngKeyE = "32823" & S$ V4 l& |" ]% M( C/ y8 f
LngKeyD = "20643" & E8 Q! `. S% G3 |  q# v: c9 L
LngKeyN = "29893" 4 h1 l5 `, h, b9 _5 r2 m  [
StrMessage = Message 4 p2 X8 g; X. _. {$ D& p0 w# u
Set ObjRSA = New clsRSA 5 u3 w) d1 b( ]% ^
ObjRSA.PublicKey = LngKeyE
8 ]/ r* B0 a- Z. ~ObjRSA.Modulus = LngKeyN
5 Y* f( i0 ]  ZEncryptstr = ObjRSA.Encode(StrMessage) , b9 h' y# q( q8 u
Set ObjRSA = Nothing   d0 m8 m( K. L  c0 v. B  y
end function
+ i6 }: t0 c  J# Z2 ^/ qfunction decryptstr(Message)
! [( ~5 ^8 O( p! ^Dim LngKeyE ) g7 C5 f3 F8 `/ P1 C
Dim LngKeyD 1 ~. @, m' q' R2 b/ f
Dim LngKeyN
* ]" Q1 U2 W- e( L% Y4 e6 S& a4 }. BDim StrMessage . B  L9 b/ t' b7 z5 y/ W
Dim ObjRSA 5 A( q- Q1 m# I  D. j
LngKeyE = "32823"
  L) [' u! W9 d. w8 rLngKeyD = "20643" 5 v- @2 d; T2 J" J) }
LngKeyN = "29893" 3 Y8 p2 |9 E1 L: ^$ p) {1 c! e
StrMessage = Message
& x: T8 n1 r+ ?2 dSet ObjRSA = New clsRSA
9 P$ n" t- [& ?5 {0 N! {ObjRSA.PrivateKey =LngKeyD : e3 g, D$ q; R. \
ObjRSA.Modulus=LngKeyN & k/ ]$ @2 T: K5 Y0 E. j
decryptstr=ObjRSA.Decode(StrMessage)
! {' Z" j$ Y* JSet ObjRSA = Nothing 2 N5 _. n" E7 ~' g4 `! s5 z" R6 z5 l5 {
end function 2 f1 L+ A0 F1 y/ R
dim last,first . ?1 E& Z3 Q. x8 S( K+ i# h2 ?% e6 u
first="!@#$%^&*()"
" ^: n6 {/ j. i0 x; kResponse.Write "加密前为:"&first
0 N; \7 H5 T' {; n7 wlast=Encryptstr(first)
  Z7 {6 H, }* r  CResponse.Write "加密后为"&last
. p: W! k$ H& n( C  c* lResponse.Write "解密后为" &decryptstr(last)
- g8 Y2 x5 u9 t; }) N. G. g%> ==============================================1 U5 [8 B5 R# Q; S- {
剩下的就是字符的对照表了4 c6 c( w4 D9 t8 ~7 R0 |
===================字符集================
+ C* O. n7 v3 T  E/ @1_____6EBB
8 f( I. i* _6 r5 |7 p" @4 q$ b& k2_____5C1F
5 V8 z: x3 |* K# w  l3_____4D75
8 j# l8 ?. @/ _0 h4_____26CC6 `# f' C" T5 j8 a
5_____4F88  q8 x/ P; |) z; |- Z' e
6_____3F4E/ b9 M5 B) U# k- ^8 F2 h8 f
7_____0A9D$ E# k0 v2 I+ F8 K, D. o
8_____1A1C
$ V7 D& p0 }$ a. H- p& I& R1 S2 S9_____6D20$ K2 ?/ }% T$ F1 Y! f
0_____1089
1 a2 r' y; G! v3 ua_____0F3E$ f- x7 |% _" Q7 c
b_____3159
& T* |6 _( k" R4 l& Q! Q  kc_____3517% _$ k9 C; V# V& Z7 V) `
d_____419C
+ g# V3 n# A( A* f$ Z" ]e_____615C
) z- K4 n" ~; d1 l# Lf_____556F& L7 i- C$ @& U& r, R0 P8 P, Q
g_____2B7F! \' w7 [. O8 R4 [% ~
h_____0F9C
2 u  d3 y  ?4 ji_____00FA' W0 d/ O% U, J3 [! d' I+ U! z
j_____5A50
6 Z! w0 z. K) f7 q: o; R. Fk_____28501 g9 y& O! n& q# \7 Y) a0 B
l_____3E7B! X" \% w. e4 c/ F. n; J* ]
m_____71C5
9 F$ Q5 e% l' I8 b1 s( j/ ?n_____1FC8
% H& T, \; ]+ |8 F* q6 fo_____74C1
$ d) S9 z# ]; F6 v6 @p_____5FB8' {+ O- V& ~% V0 C
q_____6085: e* G2 E6 g7 D9 \( f
r_____3AC4
* l0 j/ k6 U4 s3 z1 m) |+ z* Vs_____2F50
$ D9 v5 |! X/ L2 J. O$ \t_____36F8
( u. U; f4 ^: N6 y& m* Z6 T7 F, Gu_____7010- u% g; i8 D* x& y. l
v_____0B42# c1 ]& `) O' v' M: O6 s
w_____1C7A
( i6 Z2 m/ r& nx_____16F82 I! ]% P" O: p. f4 ^
y_____2EE7: j0 P2 _* F7 d9 f; U4 J4 _
z_____5CF3
0 i: B1 H; ^# D% C" ?+ L5 I- Y!_____6233  {* W" D* c9 O/ r3 r: s
@_____3A453 R( o2 I) q9 q. H
#_____2291
1 B' J# L( q- E0 F7 p* x( p$_____5D5C7 M6 v$ o9 V8 n
%_____09B9, s) _( _; b& h, U) e% N5 y
^_____43EA1 n7 R, p+ a& i; H
&_____62B97 O# E8 p$ N( }( b  M, M4 i" X/ S( @
*_____6301
. J( T- A  H1 u& b) W% a(_____4659
; I/ d; C& {2 f; o)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表