返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
/ K: `+ N# \- u; V8 X5 |0 c% M" {原始出处:http://www.3ast.com.cm
% T( j( v2 F; T2 q4 I; M, H- i( T3 v7 O- F7 L8 X0 C8 H
看不懂的直接绕过
  T7 Y: t& {& ~. M" c加密前为:hwy123456
% Q9 k& [6 Q. `0 m1 I加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E: N! w: {& `$ c5 Q% i5 O& G! q, {+ i

1 O1 L. j' V2 ~' q3 H! x============================================
7 @, ^2 e/ I8 D" }上面是当时自己校内的心情。现在已经解破出来了,分享给大家
7 I& H" P3 p  h( @也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法: d0 Z( e# |0 F% @9 e
以下是RSA算法文件
, k1 H. S6 B; \9 x$ X1 J# |/ K8 k$ @5 p& P/ h& I
文件名RSA.ASP5 v2 Q& U) ]$ t; `; ?* C3 F- V
===============================================8 D- Y$ x$ a, s  S8 P7 v
<%
$ ]8 |( X5 }; Q9 M5 ?Class clsRSA
0 x# t- Q" v$ ?$ CPublic PrivateKey
9 u; ?1 a5 T2 h9 K8 B7 Q" ~Public PublicKey
+ h' b2 \% V& U* A  O; PPublic Modulus - F/ v5 l( O8 W# E+ I2 i# u3 E& j+ Y
Public Function Crypt(pLngMessage, pLngKey)
8 |+ x) R( M) @( @; rOn Error Resume Next
; x1 ?/ O% f9 x  }Dim lLngMod
2 c/ O$ B; t. J0 y6 {0 [3 }; vDim lLngResult
" `" [1 z3 J! D. }% `& k( NDim lLngIndex
3 P. g- |$ v9 QIf pLngKey Mod 2 = 0 Then 0 Y0 F; r) `3 |1 }
lLngResult = 1 / B3 X8 n0 b' r. O; P! F
For lLngIndex = 1 To pLngKey / 2
7 d/ z5 m5 A) z$ _" }lLngMod = (pLngMessage ^ 2) Mod Modulus ; Q9 t! M+ w& Q. z5 [, a# f8 ?
' Mod may error on key generation
* t+ n$ E& P$ ?& |9 glLngResult = (lLngMod * lLngResult) Mod Modulus * m5 ]1 }7 r- f! B. \
If Err Then Exit Function
! M( a. M2 y: D/ R& RNext $ X' b- N, G) ?4 w! b
Else
0 k  A9 S/ H4 k0 K4 O* WlLngResult = pLngMessage
( j' W3 \# H9 IFor lLngIndex = 1 To pLngKey / 2 / H4 v0 D+ I2 Z* J5 I
lLngMod = (pLngMessage ^ 2) Mod Modulus 7 E: [1 C; n. D2 o
On Error Resume Next * R% i) z/ ]' m( O" F
' Mod may error on key generation
/ P7 [0 @. o" L5 XlLngResult = (lLngMod * lLngResult) Mod Modulus ' f5 S- c& T& m" L' v- d" D
If Err Then Exit Function
% y& j! T5 w8 T. ^: v3 CNext
: b! }; A/ Q4 _1 f1 G" ]- @' LEnd If - ~4 V& B* u: j/ K+ x9 N! O. T
Crypt = lLngResult # A4 k4 a' H* S- w' u
End Function
; b2 e) L6 F+ Y1 U" ~  V& ]1 H: z  [, r& m
Public Function Encode(ByVal pStrMessage)
# l$ I9 Y5 N2 X6 Q6 c( t6 U# ~6 oDim lLngIndex 6 l3 l# t# v, P% R9 y8 _% N
Dim lLngMaxIndex
, o9 M6 n, w( EDim lBytAscii / Q* G- O5 r+ D8 E# Q
Dim lLngEncrypted
5 q  M: c7 r. tlLngMaxIndex = Len(pStrMessage) " S; K- f  U+ q( q5 E8 Q
If lLngMaxIndex = 0 Then Exit Function " H# ]6 a0 I& s* V3 u
For lLngIndex = 1 To lLngMaxIndex & l* H( g1 y8 O- F7 q0 F0 I6 F
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
! M" G" p- |7 L* U( m" vlLngEncrypted = Crypt(lBytAscii, PublicKey) + d! b7 n7 c: @: |+ n
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' U" z) y" P" k2 MNext
$ t6 V/ m5 M0 v) MEnd Function 4 H7 z2 d8 Z# C6 S" x
Public Function Decode(ByVal pStrMessage)   x" w9 o* o1 C) D- [4 o( q
Dim lBytAscii
4 u8 D5 E' B) B, y* e4 j$ }% NDim lLngIndex
& f/ L; X/ w7 S5 JDim lLngMaxIndex
3 L# |& Z: Q( L. G7 p- R' }6 ?Dim lLngEncryptedData
, R8 d. A$ n" }! m8 nDecode = ""
! ?6 A; A0 }, \' ylLngMaxIndex = Len(pStrMessage) ' n: R2 e5 e* d$ A* L9 q  D
For lLngIndex = 1 To lLngMaxIndex Step 4
+ H8 |  ]% W) @) h5 ClLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) % f* p/ a. y" v# w, ?
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) & o# q8 U4 i, A0 [* Z' A- @
Decode = Decode & Chr(lBytAscii) 3 _2 I+ W" [4 }
Next
. g$ s+ I* v  i( N* X- y* TEnd Function 9 |0 i3 U7 S; q. V2 R+ _
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)   l: k) ?% P9 B% g
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( N/ ^: T) F7 d( j8 \+ ^$ g) _End Function
- s0 V: F; c- CPrivate Function HexToNumber(ByRef pStrHex)
- Z# M; U. R* N: ?9 |HexToNumber = CLng("&h" & pStrHex)
3 J; L" m. Y1 m5 UEnd Function ) P/ o' Q" c) `  r5 x' Y, X. ], H
End Class
5 B+ @' c6 l2 E; U3 b8 h% l! ufunction Encryptstr(Message)
5 W- o4 D4 z2 }2 x8 h& mDim LngKeyE
' @" h9 K& z9 S1 SDim LngKeyD
1 S7 N0 j* X( FDim LngKeyN $ y6 m( R; R+ V, O! B
Dim StrMessage / z) N& O/ D1 J- C
Dim ObjRSA
& ]" b9 F+ i2 y( ~2 J, E. jLngKeyE = "32823" 7 @$ ]3 ]% w' I- F. _( k/ ]$ D
LngKeyD = "20643"
* `, b/ i- b  {0 M( `7 WLngKeyN = "29893" 0 o* v# B+ }; p9 I( b+ X7 [4 z
StrMessage = Message
; X0 ]% [: W* D5 i6 cSet ObjRSA = New clsRSA
# u' g) j8 E, i+ h8 e" l9 `ObjRSA.PublicKey = LngKeyE
4 e" ], v" t9 ^+ P3 F2 O7 VObjRSA.Modulus = LngKeyN
& _3 P( K3 W- W) b" }Encryptstr = ObjRSA.Encode(StrMessage)
! V0 m: Y+ Z  b. H4 C2 G# D# A2 C! USet ObjRSA = Nothing
; x- `! g2 R: ]6 t9 q; {) O5 n6 Mend function
' C( g6 a. L. q- D5 VFunction Decryptstr(Message) $ ]* R& D) h3 u
Dim LngKeyE
; r4 a4 Y4 ^4 [' ?6 h! |7 c% `. dDim LngKeyD
7 t- l) G  _! |- ^Dim LngKeyN ) U+ `" b5 B( n
Dim StrMessage , z# ]2 L; e9 `' K- w+ `. B
Dim ObjRSA 4 o' @2 t/ N$ S4 |" s
LngKeyE = "32823" # v) s3 l. l& \
LngKeyD = "20643" ' o. c8 d8 {. u
LngKeyN = "29893" . M1 A  Q* P* [8 U" Z8 J& L
StrMessage = Message   }! V0 J# n( L
Set ObjRSA = New clsRSA
( j  R5 A6 X  t- I9 `$ LObjRSA.PrivateKey =LngKeyD
5 U' O' j8 Y; a% A7 I8 BObjRSA.Modulus=LngKeyN " t+ \8 ]. G* ?' Y2 \% T# h9 r
decryptstr=ObjRSA.Decode(StrMessage) 1 p( i. n' ?$ d, j5 Q6 ~
Set ObjRSA = Nothing
! `$ d/ |7 Z0 \  N5 M3 pend function ) B$ M9 i+ a1 K% b, f0 ^
%>
; s; Y2 j" z9 k5 {+ K( r===============================================
+ R1 `8 p6 i7 F
  L- L$ C1 d( i还有一个用于测试这段代码的test.asp5 K4 z# E) H; H5 n7 u
有兴趣的自己搭建个IIS测试下7 p3 H! z; B/ o7 X( O5 i. X
<!--#INCLUDE FILE="RSA.asp"--> 8 \+ d) N) l' f0 [
<%
, q1 L% W' p! m5 bfunction Encryptstr(Message) 9 N( q% n4 N% ^* R5 [
Dim LngKeyE 2 m4 F. @8 K* {( S& x' C
Dim LngKeyD ! B7 @  f, ]; r1 _, O0 u
Dim LngKeyN 4 r6 v% @) M! B
Dim StrMessage
1 j; E; [- v5 H1 y3 tDim ObjRSA
! g2 y0 D9 o! s/ P$ ALngKeyE = "32823"
# i) R, W' M/ jLngKeyD = "20643" 6 A( N4 j, h3 H2 c! r8 e4 \" \& |! k( G
LngKeyN = "29893" ) M/ M8 L, q' d9 ?6 s
StrMessage = Message 5 X- @3 H1 A6 F- A6 s
Set ObjRSA = New clsRSA ) f/ k8 M9 M8 _! ]
ObjRSA.PublicKey = LngKeyE
$ K  @/ L* m- V0 JObjRSA.Modulus = LngKeyN
8 _  y- [' |5 J) r5 N! cEncryptstr = ObjRSA.Encode(StrMessage)
" \8 X, T8 ~) }; y# iSet ObjRSA = Nothing 5 H- r$ E" n6 O6 l# w& O) Z
end function
+ n- V. t" T: n' r8 Jfunction decryptstr(Message)
5 k/ e! W! Z& v0 D( UDim LngKeyE # G# G  k+ j4 S/ ^
Dim LngKeyD $ O8 X! Y4 `" v8 e+ P9 I8 T9 |8 l
Dim LngKeyN
. p' e2 d8 P; Q# n! fDim StrMessage
' Z$ Y4 k/ T) J4 |Dim ObjRSA 0 r" ~7 N2 B4 ^# P+ ?3 `" A
LngKeyE = "32823" 8 J0 y. e) r+ m. c- ], K( f, p
LngKeyD = "20643" 7 k9 [. D3 G( W- Q: p
LngKeyN = "29893" 8 L  H: r7 ~% D0 ]$ ], p8 U
StrMessage = Message   q) ?9 T, ^, A
Set ObjRSA = New clsRSA
, O% D+ |4 J: x8 D/ cObjRSA.PrivateKey =LngKeyD
  B( a3 Z* d2 D! w/ i3 C# qObjRSA.Modulus=LngKeyN 0 B5 k1 m9 Y7 ~+ H$ I
decryptstr=ObjRSA.Decode(StrMessage) 0 n) \# R6 V# y3 J) E0 x5 r0 Z
Set ObjRSA = Nothing . J. y, T  z0 ]9 C' F
end function
4 F: F  k' ?, b+ O2 l8 A: Zdim last,first 9 K0 e( a3 R7 ?# q4 x
first="!@#$%^&*()"
6 B2 @2 e( S! _# R  kResponse.Write "加密前为:"&first , t1 _/ g$ K8 b) i
last=Encryptstr(first) # v1 Y+ b, g0 J
Response.Write "加密后为"&last : l4 V# t# }0 N) }1 e" @
Response.Write "解密后为" &decryptstr(last) % F$ n3 `& a; _* P" ]$ T
%> ==============================================6 u3 @3 e; ~$ v$ i
剩下的就是字符的对照表了! I, ]+ n" w1 `+ \0 M& E) ~
===================字符集================' M6 \, B$ _+ T% P0 I
1_____6EBB
% C, Q+ Y% \1 x% K2_____5C1F
6 \) f# p) s5 w1 I4 t! d/ b3_____4D75! |3 ?. f1 o" f* W1 f5 g: _4 x
4_____26CC# \; _2 ]" T. s
5_____4F88, Z  s0 |# q# z: H; q
6_____3F4E
/ z' s% h. Y+ o9 }4 m: n7_____0A9D# D& M5 ~1 I5 ?
8_____1A1C
- [" R- I9 i7 N0 L4 m9_____6D20, H# P2 u5 ]' T: e
0_____1089
; i2 ]; Z' p. ya_____0F3E( J& T; m; ^; z" R
b_____31595 w# P! q2 Q; m8 C, ^
c_____3517
1 h, o6 L  Z5 n9 U3 x% gd_____419C
7 t  _- X$ t, A  Q; q5 n8 {. Ge_____615C! f1 A) Q9 Q' P5 I. L
f_____556F* M# ]* n9 P# c9 F: j, m
g_____2B7F
- Z! H5 b7 d: n/ [( a( r8 J/ P6 Ah_____0F9C, g/ u7 M. n/ l& e7 G
i_____00FA0 G3 K# j6 N, |4 j; b
j_____5A50
* J! @6 K6 t7 G3 \k_____2850
) C# K  R6 K0 Jl_____3E7B
; b3 p7 R0 I/ V' b# |7 f' b6 W6 u2 `m_____71C5% }, H9 x/ z; W7 {3 [
n_____1FC8
8 x% H+ Z0 P+ r& q6 ko_____74C1- c' K, X$ B# V' S: C) M0 [+ R) _: q
p_____5FB8" E! P! U2 c6 n" H
q_____6085$ V5 x( {  g! T& ^- j. W
r_____3AC4
/ |2 Q) ?! }, {* J, ~- G2 f" H9 ys_____2F50
9 ?7 a3 w0 e, ?6 _1 It_____36F8
! ?  |3 O) y, _9 X$ ~u_____70109 B. u; _1 v" m9 o& u0 k
v_____0B42
$ }9 D; W& k7 o3 _1 d4 s# b5 W. B, hw_____1C7A
" p8 _6 ?, ^6 zx_____16F8
4 K+ a* j* R2 |4 E( G# G- ty_____2EE7
& b: [5 v) f) l3 e# Wz_____5CF3, j* \5 o' K  J5 Z& T
!_____62339 p1 c' d1 e6 D; i! K9 @7 o
@_____3A45# m$ z5 w1 @2 u7 [
#_____2291
) ^7 t2 T& \( g; U: t$_____5D5C
  i; F/ e! g; A2 B%_____09B9+ {# F3 {; ]. j4 @  m, F. u
^_____43EA' x6 v0 `; y* B
&_____62B9/ H; P+ m' i8 X6 r2 ~
*_____6301
8 ~4 ~6 a* E5 ~7 U* I0 f9 ~9 l' D(_____4659
2 d8 @8 }* h9 |7 m; |2 A4 H)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表