返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
1 U& U7 N5 H6 P7 l9 T0 w原始出处:http://www.3ast.com.cm# W! f/ f$ y% ]% J
0 U% z2 f2 ?7 \% r) r! g, [
看不懂的直接绕过
# k( f7 n: i& C+ I+ i8 l加密前为:hwy123456
3 w7 L+ }6 `1 O3 o, [, A0 Q加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E2 u! U, b* o% @6 P

$ w0 z" y( a3 {2 x============================================
" q. \( m; Z% a* e) y- W7 Z1 y上面是当时自己校内的心情。现在已经解破出来了,分享给大家# \0 E  i. q  ]2 P
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: a. b5 t' k( \0 h4 }+ c, E以下是RSA算法文件2 W  g: J% S9 |* Q" ~9 @

! J8 X: I7 }, z2 C; y文件名RSA.ASP2 o& I# U3 t! [$ A& |; t! J/ C
===============================================
# j' v( h! L: q/ x<%
3 R# Q- Z# C  n9 E& e$ k( ?Class clsRSA
) t- r$ W2 X4 Z. `Public PrivateKey
* D2 P% e/ {4 zPublic PublicKey 5 e3 P# z" P2 i* w4 _8 k7 @' Y
Public Modulus ; i5 p& c7 e, Y. x
Public Function Crypt(pLngMessage, pLngKey) ( M. c7 c- ]& I2 R: e
On Error Resume Next % w5 I, z4 z1 S
Dim lLngMod
& g1 ?4 Q! s1 WDim lLngResult ' z3 m! y4 d1 o" Z. d
Dim lLngIndex
& Z* y2 H+ O/ I- G3 N, IIf pLngKey Mod 2 = 0 Then
) ?( Y5 e% D; `& y6 h# d) h7 blLngResult = 1 " o9 h2 ]1 u! O' s4 d( \+ S) ^
For lLngIndex = 1 To pLngKey / 2
, k; B7 j. O& r* r0 H# H1 p; olLngMod = (pLngMessage ^ 2) Mod Modulus & t5 B& {) P. c  s7 L+ C! ^
' Mod may error on key generation % C7 _3 X1 q: L& G, i  @
lLngResult = (lLngMod * lLngResult) Mod Modulus 0 s& a+ i* [) }* `) l2 O
If Err Then Exit Function ( C, l) N" Z, h3 x3 ~. ]7 k
Next
* i- {( X* z0 u, q) ^Else + m* i) f& A* f) K) t& w  C
lLngResult = pLngMessage
$ {9 c' h$ d6 o: R2 E! A) KFor lLngIndex = 1 To pLngKey / 2 0 M0 B+ q" k7 [
lLngMod = (pLngMessage ^ 2) Mod Modulus % I" r( P4 ]5 k; H6 y/ E
On Error Resume Next
7 ]/ k  k. @2 k9 W& \2 \; V' Mod may error on key generation 8 P4 E- ^; s: t# U( W  D
lLngResult = (lLngMod * lLngResult) Mod Modulus
4 J& }: \* Q2 j+ R$ Z# cIf Err Then Exit Function
' d2 y7 @; y' Q, w" V) X" \Next
- ^2 y$ J. Q" F; c; F+ ]7 lEnd If
+ V8 h9 O, V& M/ _9 Y7 J8 pCrypt = lLngResult
/ A& D$ h! I3 M, R7 s4 o& rEnd Function
4 E+ N/ W0 {. j  e& d0 k0 o. U. }
$ ^% D" N9 U7 z2 h# g* W* mPublic Function Encode(ByVal pStrMessage) 5 g( T. c9 m' m( G
Dim lLngIndex # {" _% ^% \; \7 {+ q
Dim lLngMaxIndex + ?0 {3 w! w' h2 C0 }* |
Dim lBytAscii
. w9 Y! ]8 E1 X9 T8 G3 @Dim lLngEncrypted " T, |/ {( Y+ U- U
lLngMaxIndex = Len(pStrMessage)
: O& n4 P5 `+ ?0 w9 Y# n! N' S. \If lLngMaxIndex = 0 Then Exit Function 4 M0 r1 k) y0 B- [. k1 b
For lLngIndex = 1 To lLngMaxIndex
, k7 g& M1 |, `8 m! M( R( A3 j  _lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
. w  c' ]: h5 J4 glLngEncrypted = Crypt(lBytAscii, PublicKey)
& t1 H% }2 a: OEncode = Encode & NumberToHex(lLngEncrypted, 4) + V1 L/ j' S" c  _0 K6 }, \4 B- i
Next ! Y1 A9 u* ]% B5 Z; k# s- W
End Function
( x+ N5 e% l3 H4 {% |1 \, j) [. L& XPublic Function Decode(ByVal pStrMessage)
# r/ y* f0 U1 Z7 l: _" ^( XDim lBytAscii
* M4 K  Q1 ~& w: IDim lLngIndex
+ k) P5 Y, Q# Y: DDim lLngMaxIndex 8 e5 @- J& h0 [+ g3 A+ q
Dim lLngEncryptedData   J" _0 L  O% }: |$ b
Decode = ""
& i6 U( @5 R/ z- g/ Q( ^lLngMaxIndex = Len(pStrMessage) . I+ a7 r# i2 ^1 ]% O. X* q% l
For lLngIndex = 1 To lLngMaxIndex Step 4   c1 |: a) D2 ^/ x2 P1 P
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ( t4 K* j9 e4 e" B
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
+ S* ]1 x' ]3 R3 Z1 B1 BDecode = Decode & Chr(lBytAscii)
* Q, T- g- F4 e0 pNext
  i& W5 R) W9 t. zEnd Function
/ g0 `8 r, S% e  {Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
' j7 S' g5 j0 s. r7 i  g+ JNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 _* ~. T9 t, C  f# J
End Function
# X0 q+ n8 S5 rPrivate Function HexToNumber(ByRef pStrHex)
: E: ~3 \# t6 O& ~' M! `HexToNumber = CLng("&h" & pStrHex) & t' N; Q  V% N  {% y5 ?  k
End Function 3 w0 f, J; @7 @. p; [
End Class ( t! g. V2 W7 m; ~% P( A, K( @- R
function Encryptstr(Message) ! j0 D* N3 B$ B( t1 k( O8 X
Dim LngKeyE & V. a  l9 K' }$ H
Dim LngKeyD
( O8 ?% B: n2 G6 E, f: e) aDim LngKeyN 1 |) `& e! g' |$ l* e
Dim StrMessage
) v. _; o1 I, \/ R4 b5 vDim ObjRSA : s# s3 I! w7 x6 |# F2 P
LngKeyE = "32823"
3 X  `5 B# C( O& z6 o. QLngKeyD = "20643"
$ x) u# O6 X7 ]8 J5 CLngKeyN = "29893" - P/ c! [% L4 P* E
StrMessage = Message
5 G$ I$ c" F. Q7 Y3 W6 DSet ObjRSA = New clsRSA / n- l7 ?' i# y6 b! l# A& T
ObjRSA.PublicKey = LngKeyE
  ?& k$ }; u- J' i* sObjRSA.Modulus = LngKeyN
; S3 W- N, N1 x7 ?) }3 H: o) _) I, HEncryptstr = ObjRSA.Encode(StrMessage) / Z; ?  Y8 |, q7 \4 ?
Set ObjRSA = Nothing
% O7 X1 @3 p0 [+ b! \; |end function! h. m4 L3 O9 C/ i
Function Decryptstr(Message)
; H* }1 l* Z0 S* V% {Dim LngKeyE
8 z5 G% T2 L" Q! n: x- @- NDim LngKeyD " m. S0 S+ W- w
Dim LngKeyN & i2 I& b4 T0 s$ c0 F5 V. m/ F7 O
Dim StrMessage
  I/ Z$ Y/ _5 [) E! k! ?1 c5 gDim ObjRSA ! H/ z' {6 z* s6 j  Y. M8 H0 j) _
LngKeyE = "32823" , N5 ]' W! k1 J! m6 I' n) X" R
LngKeyD = "20643"
( K/ X5 J, s2 R0 S/ }0 eLngKeyN = "29893"
3 t' o% T3 \" Z" j  ~StrMessage = Message
" @6 ?4 Z; L6 V5 SSet ObjRSA = New clsRSA
- C4 d0 o4 W& |ObjRSA.PrivateKey =LngKeyD 4 @8 e( ~9 V7 w) U$ ^, T
ObjRSA.Modulus=LngKeyN : I* |- R; i# p! i
decryptstr=ObjRSA.Decode(StrMessage) : p- }5 }! ?, w. O3 p" ~
Set ObjRSA = Nothing
; g* Y2 D) H2 `4 ]' a7 {end function
7 m2 {# a7 k& u- M0 {: y& u! K$ l%># R- g8 |! D" U( @
===============================================+ T0 F) E  o3 K

0 S  O, j0 X, }& @# F还有一个用于测试这段代码的test.asp
- B5 {+ k4 Q" _& w4 H有兴趣的自己搭建个IIS测试下! p, J) O% \  V. D
<!--#INCLUDE FILE="RSA.asp"--> / O6 @* g& J1 b# k
<%
( k6 O( I4 [8 F' B- K8 \) ]% c/ {function Encryptstr(Message)   A* E# r6 ~$ U* I! q$ I% q
Dim LngKeyE + Y( J6 H. e9 F. i+ s9 ~+ S
Dim LngKeyD
" @2 d# l' g( C4 T6 D% d2 C5 LDim LngKeyN " R1 q5 [* v* M$ B( G: p4 c
Dim StrMessage
9 f- R# Y& l# VDim ObjRSA - C& C5 m/ k5 f5 b& G; [
LngKeyE = "32823"
# j+ J/ b+ b3 ]0 i: S6 vLngKeyD = "20643" / X  a9 E; e( b0 h+ s
LngKeyN = "29893" 9 v: P: H0 i7 P/ N+ T
StrMessage = Message
" w2 d( ?+ W, J# Y& ^% gSet ObjRSA = New clsRSA 1 A# |$ u& A- ]) B* _7 i, A( f
ObjRSA.PublicKey = LngKeyE ( z) G1 o, ^& P; Q/ n) W
ObjRSA.Modulus = LngKeyN
6 P- B  i0 P8 ?) Q" a7 ~Encryptstr = ObjRSA.Encode(StrMessage) 3 o# g2 T2 R- j5 d: J4 ^, i7 V
Set ObjRSA = Nothing . w/ A( G/ L2 _9 n5 G
end function , e. f* i8 L2 B/ s
function decryptstr(Message)   _0 S, _+ E! Q3 h
Dim LngKeyE
2 ^9 M7 H4 ~1 }, L% sDim LngKeyD
- |4 B, U3 ^) t- l) \- TDim LngKeyN - d" i- S2 W  B; h) M/ w% ~
Dim StrMessage
( [* `" @* l% X  G. U/ ^* s7 k. vDim ObjRSA
8 Y8 ^4 `1 v7 w- N) O- WLngKeyE = "32823" & D" r/ @9 o: g- w1 g
LngKeyD = "20643" ! d; E! v; A! |5 z* t1 V7 I
LngKeyN = "29893" 5 Z+ q" ^9 d* g' B2 g" ^
StrMessage = Message   r* ~( K+ ^# Q- f% A& ^% c, P1 M# y
Set ObjRSA = New clsRSA
, B4 |$ D8 n0 Z' |ObjRSA.PrivateKey =LngKeyD 9 D, G# w+ q. i, e8 a3 ]) p* A
ObjRSA.Modulus=LngKeyN * G( `  F/ ?( `5 Z1 s
decryptstr=ObjRSA.Decode(StrMessage) 4 d( I- o9 C0 p+ {4 n
Set ObjRSA = Nothing ! p# k! T9 w9 h/ K& _
end function
' R) ]* ]% f1 y, qdim last,first # R8 @" I/ N, W* z) W& |
first="!@#$%^&*()"
0 P, W6 _7 _$ pResponse.Write "加密前为:"&first $ |! q; z+ H$ J2 n! t4 K6 i" b8 i
last=Encryptstr(first)
  V9 q) K: c5 g  ^" s$ F5 @Response.Write "加密后为"&last ' `: G3 g. m  W0 j% j' M& H
Response.Write "解密后为" &decryptstr(last)
2 _# B6 {& K2 {0 ?, ~. z$ l%> ==============================================
7 Z  V- b; i; {9 S2 D剩下的就是字符的对照表了
( k' a& h3 \( k: a1 L  B===================字符集================
" ^: l; Z  [) q+ }! J1 M( G1_____6EBB
  u5 R1 f# p% d. n3 E) M2_____5C1F/ T% b6 D9 Q0 N& j' {( w
3_____4D750 g8 ~2 }# l& ^2 s# t3 B9 E
4_____26CC
/ Y* v# L( u+ s8 l5 y5_____4F88/ Y# R' e7 k$ w6 _5 C
6_____3F4E
4 _8 |; n$ Q" \2 X2 A, V* o7_____0A9D+ }8 ~5 X8 s$ n
8_____1A1C
" V3 M4 G) r* V9_____6D207 b6 I: ]" c' y( U  M
0_____1089* W$ g2 e$ ]6 F3 s2 F" J
a_____0F3E
7 a% {( w9 m0 s. c( ub_____3159% i9 w% i7 }' N# A: ?1 Q: A
c_____35173 v6 J5 X- F" |& n9 z7 W6 A; B
d_____419C4 H+ p2 x0 Y9 T. D2 G
e_____615C
; Q/ S2 L, U3 ?6 E% }6 @& h, kf_____556F
9 V/ a6 P/ h& G6 C$ \) d; [9 `5 Fg_____2B7F, J. B" R& _0 {: c6 ]
h_____0F9C6 ]3 Y" V0 m7 C) ?
i_____00FA
& r; W* f6 T& d% Jj_____5A50
' X: }) C' X1 q/ G7 @5 Ek_____28508 Z0 @1 Z3 v  b7 q% h7 A
l_____3E7B' i6 M# d- t3 Y. E
m_____71C5
: F: T0 a1 k& W; N! e' T! nn_____1FC89 G# e  T# Q0 R, m; q# J+ R8 U
o_____74C17 D" G/ x; F( t6 }: [
p_____5FB8
$ ~8 m, E4 g( h4 lq_____6085
+ z5 K7 _3 X6 u0 |( r* Hr_____3AC4! A' L  B; I) g) ?" R
s_____2F50
4 X2 w( T4 T6 T( H6 ~3 ]t_____36F8
: ~9 k- t4 r# U& g5 I1 Y, au_____7010
; p+ I! u! ]6 J# rv_____0B42( M+ y1 W. ^1 L' H0 o8 D
w_____1C7A7 C9 F4 }; Q, L. ?" Y2 Z
x_____16F8- K0 ^' a/ f4 q) Y1 Q7 s
y_____2EE7
$ o" ~3 I$ F. c7 x& z& Mz_____5CF3
6 q6 a% _. O4 e4 ^8 W!_____62335 `' u* }8 n& A. {2 s0 B  V& ?
@_____3A45
* K% b2 L% j% F' e$ z" f#_____2291
4 N' o  C! B) v8 p9 q$_____5D5C( Q9 T" Q7 M$ o( a4 S
%_____09B9* l1 A" \5 w0 z: ~
^_____43EA$ S: }( Z' o/ c
&_____62B9
, `1 `/ Z$ M& o7 i! j*_____6301" ~, x& M9 ?  O1 E* D
(_____4659" n$ s, u$ ?3 g+ p# u3 O
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表