返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm9 l( W4 s# O, L6 y2 F. E$ x7 h0 y9 s7 j) |
原始出处:http://www.3ast.com.cm
; g! ]: L6 S2 l( |4 y$ L2 E0 e  ]4 p
看不懂的直接绕过1 c- r1 }# g- o7 w
加密前为:hwy123456
3 ^! U- @9 X2 Y- a' J2 l加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, i; \0 S/ c% Z3 X1 R

$ [( ~* a) I, S* ?+ ?============================================
" ]  p9 t( C; U! C3 u2 \; F上面是当时自己校内的心情。现在已经解破出来了,分享给大家( Z" m+ }( _4 g& |
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% i5 y8 j( r, d; m$ `0 V& Z/ r6 q9 ^
以下是RSA算法文件
6 B; s1 W" X! j3 ~" Q: ~( v9 z7 ]( Y$ P3 ^
文件名RSA.ASP6 b9 Z4 |8 _  B" P9 l
===============================================
, O8 c5 `$ e: }3 O/ H( ^. B4 f/ Z<%
* j- V6 q8 O$ `) O0 YClass clsRSA 8 @3 Z' ?, p5 Q; Z2 B+ S
Public PrivateKey
3 v! r1 y' t4 U( XPublic PublicKey
, L) K) [! y$ o' T8 ~3 v) DPublic Modulus
- a+ _4 M: |$ f9 S* k2 SPublic Function Crypt(pLngMessage, pLngKey)
- s5 v$ x& ]; T, e" {, @On Error Resume Next 9 e, p9 b4 T/ Q6 B
Dim lLngMod
9 O4 }" H+ ~. {# `, tDim lLngResult % e0 I* f+ ^; t0 a) y8 ^8 Q) A
Dim lLngIndex 7 h! A4 O6 F# g
If pLngKey Mod 2 = 0 Then ' n- Y6 s3 R4 |7 @
lLngResult = 1
5 B9 V+ f7 x+ }/ o4 B2 FFor lLngIndex = 1 To pLngKey / 2
1 {. ?* k  U* K" ~* GlLngMod = (pLngMessage ^ 2) Mod Modulus
9 T& l4 H8 y/ N' Mod may error on key generation
3 H3 l$ r* L  i9 {0 {lLngResult = (lLngMod * lLngResult) Mod Modulus # w" J: O: z: \6 v* N5 N5 D& B
If Err Then Exit Function
2 K3 y6 D7 g% T% @7 ]0 NNext 2 S9 j1 W* x+ @" b' S
Else
% j" A+ K' F% Q, m# c1 n0 L# t$ zlLngResult = pLngMessage 2 {- ?; @; p+ M+ \4 U  I, e
For lLngIndex = 1 To pLngKey / 2
; w  H& M# H- `- r8 c. Q8 S2 clLngMod = (pLngMessage ^ 2) Mod Modulus 9 k6 Z" L5 _. w0 s% g! b
On Error Resume Next 6 n' N8 M/ `4 D/ i* k
' Mod may error on key generation ) o) q# F* u* }% ^# A* Q, K5 J, [- A
lLngResult = (lLngMod * lLngResult) Mod Modulus / A( |1 o- Z  C: x- v
If Err Then Exit Function
( W5 u) d$ {7 f: ~2 y8 WNext
9 W( b; q) y) l8 [# o- s% P( u" qEnd If
7 z8 g, ~) K! j* S; h  cCrypt = lLngResult
/ |* n( s2 W7 B) n: X& _1 DEnd Function5 |/ y% g$ Q) v  \0 m

1 g% Q8 M$ K% U1 j% J, _Public Function Encode(ByVal pStrMessage) + U9 \- B* F: \, |& T
Dim lLngIndex
  i! `, r) U* }8 X# h- A8 b3 z% tDim lLngMaxIndex * P# ?: c* |9 G( ]8 O; F5 _- Z) ~
Dim lBytAscii & c$ f! W  \/ g2 J# Y: K
Dim lLngEncrypted 8 }, t. d) ]& i* @
lLngMaxIndex = Len(pStrMessage) - x8 X( G$ a3 X' S' y( e" T
If lLngMaxIndex = 0 Then Exit Function
# t( k. G2 ~$ SFor lLngIndex = 1 To lLngMaxIndex $ Z8 R& d( d* ~( c( v4 M. X
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 y3 u, X0 t, q; t
lLngEncrypted = Crypt(lBytAscii, PublicKey)
+ @4 m" {9 U$ S) M6 L9 AEncode = Encode & NumberToHex(lLngEncrypted, 4)
# V4 ^. O/ d. o2 o6 w/ o5 rNext
& ^" v. p( N9 o. |0 W" SEnd Function
$ P& x+ T& b3 O) W2 V$ v3 a( |Public Function Decode(ByVal pStrMessage)
' y( c3 }3 P  B% wDim lBytAscii
1 H  t: b8 ^' rDim lLngIndex - n: u+ E0 }' @( r
Dim lLngMaxIndex ( K( e% s/ c4 `# J" n$ `9 R4 L0 m
Dim lLngEncryptedData
: y+ `( e9 Y1 U$ wDecode = ""   O0 j. E6 M0 B( R' H
lLngMaxIndex = Len(pStrMessage) ) J. @2 `* c* l" n+ z
For lLngIndex = 1 To lLngMaxIndex Step 4 3 b- |# `& s" H8 g
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
# q/ q, p- f4 M+ YlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. h7 @$ T# v& }+ z: A) |- MDecode = Decode & Chr(lBytAscii) + e" n) f6 r# F3 \/ h
Next
5 H7 x" H1 O) Q& `- I1 L4 t- vEnd Function 1 ~3 L9 A* t6 _& U, s* @
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
2 p) ~, [' d, eNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; o- G5 [7 ]' p, \; O) i4 x( Q
End Function
/ {$ d& Q4 O# j, q5 V) IPrivate Function HexToNumber(ByRef pStrHex)
* D1 e, P! R' j! d8 J- R& {9 THexToNumber = CLng("&h" & pStrHex)
- l( L# D4 q3 \# b& z5 TEnd Function
+ }* g/ w' l( Z5 sEnd Class
, |) a0 U: h1 f, u/ I3 X& sfunction Encryptstr(Message) # K& d2 V6 n; [5 Q
Dim LngKeyE ; G+ W8 ?. B* {% L
Dim LngKeyD
, y, m3 c' q. [- E( j& Z( XDim LngKeyN , T2 y% A! |- G5 u3 x
Dim StrMessage 3 [& z5 i/ q2 Z2 k; ~' M) L
Dim ObjRSA , e; _* @# i* [  j5 p) T  `
LngKeyE = "32823" 2 p$ T2 n" a; C0 P- L
LngKeyD = "20643" . \, d  E+ `* N3 g' R8 C" U
LngKeyN = "29893" 6 K# T0 S* h5 p4 V+ `
StrMessage = Message 6 _$ d' H; M3 h' a7 c/ w
Set ObjRSA = New clsRSA
, h4 y- \" z* n6 K4 U! KObjRSA.PublicKey = LngKeyE 8 k( t9 s3 H' Z" W" E. e% P
ObjRSA.Modulus = LngKeyN
2 o( Z) v4 P; [% O2 R9 PEncryptstr = ObjRSA.Encode(StrMessage) 9 k8 a# D5 h) M5 V, d1 y; F
Set ObjRSA = Nothing
8 _8 z6 \. L8 @$ ]' xend function. d1 f; ]; f$ X
Function Decryptstr(Message)
  {3 k# i$ p3 {; O( Z6 {Dim LngKeyE
0 N% r: ^2 o$ y6 D: DDim LngKeyD
1 E6 X1 I$ x; y# j" W1 |Dim LngKeyN
5 f. v6 V# j. g+ q# XDim StrMessage
0 x; O" {# ~, b/ GDim ObjRSA + }$ Y7 I8 e% T) X: |
LngKeyE = "32823" 2 Y5 T2 Y6 @' V9 X( R8 |
LngKeyD = "20643" # W: `0 o( x7 D& s9 z
LngKeyN = "29893" ) ~* A* r6 W: D# ?
StrMessage = Message : W; `2 q/ G# k! q& m3 c- l
Set ObjRSA = New clsRSA
5 k) w# v. ^4 r) U2 q: UObjRSA.PrivateKey =LngKeyD
. |. ]+ g+ y9 B0 B6 W& uObjRSA.Modulus=LngKeyN ; ~# Q; W# H( z2 x6 @/ Q
decryptstr=ObjRSA.Decode(StrMessage)
1 l( Q: g. C: d; [' ?* [3 O8 OSet ObjRSA = Nothing 0 @! Q: \2 k7 J; f3 F1 Q3 |  g% G
end function 7 e' u8 D! |& z, E6 f0 q. t" D
%>
& R) r1 @$ r+ {9 E  h; l===============================================
# l3 T" M0 b7 N% _8 i1 D' h3 f* |* T: o' s& s& g: I
还有一个用于测试这段代码的test.asp
3 W9 c7 i9 f2 a& [$ P7 H' a有兴趣的自己搭建个IIS测试下0 L5 I8 ~" f) m1 b( ~) |
<!--#INCLUDE FILE="RSA.asp"-->
8 d0 }( w/ @. ]2 p; |8 h. f2 F$ h<%
( H9 R: c  l- d3 U1 L. @function Encryptstr(Message) 1 W% G9 i$ }: u9 r4 }, L
Dim LngKeyE   W& I" L! d6 Q" e7 \
Dim LngKeyD 7 a- d2 @% y* w8 ?/ S- C( b
Dim LngKeyN " \$ g! M4 y" s; l
Dim StrMessage
6 i6 i, Z# r: l: i5 aDim ObjRSA   {" A: B# l" O, d' ?# l/ l
LngKeyE = "32823" 9 R/ N# _5 d7 P
LngKeyD = "20643"
8 p6 [. w: I5 e" i; F7 U  a& b/ r6 ALngKeyN = "29893"
% |+ k( R' M7 k4 k3 kStrMessage = Message 9 {2 m7 n5 m" a4 ^' c: o4 v% m
Set ObjRSA = New clsRSA
; G( L! H1 W; @& zObjRSA.PublicKey = LngKeyE * |5 I8 c! ]4 i" F& t" T
ObjRSA.Modulus = LngKeyN ( O. k$ M9 G$ C$ k6 S! s" _& B
Encryptstr = ObjRSA.Encode(StrMessage) : y, x4 o- h" I
Set ObjRSA = Nothing & P6 U  m+ F* H( I6 S* Y8 n8 u
end function
, t4 [) _' O' |- _5 D& ofunction decryptstr(Message) - A- Z& a9 z' D- Y9 M
Dim LngKeyE
, _. V9 t! M% fDim LngKeyD
; X( Y1 A! \7 E7 t! @Dim LngKeyN   F1 u; H( C" B) h+ H+ t
Dim StrMessage 5 C3 x4 e' L: t2 {* I
Dim ObjRSA
+ ~( ^5 Z, |9 _+ S7 ^LngKeyE = "32823" 5 f* Z. z, g+ ~2 P2 h4 K" J; _( Z
LngKeyD = "20643" / w- Q! i0 {* J: m0 E" J# b
LngKeyN = "29893" 1 K+ S; }2 a1 \
StrMessage = Message 5 z& e) S. A) y& |; h% D/ p3 g
Set ObjRSA = New clsRSA " Z5 s% C- ]5 p6 ^0 C7 a
ObjRSA.PrivateKey =LngKeyD 3 y  J( _: p* b
ObjRSA.Modulus=LngKeyN
# g* s* s1 }' Y7 Ndecryptstr=ObjRSA.Decode(StrMessage)
/ d; B* E* Y1 ISet ObjRSA = Nothing & w% u; r' o7 ?
end function
" P1 N* M% E" o" m+ n+ j8 rdim last,first
% L; G- j) t  M. z+ f9 r, Efirst="!@#$%^&*()"
; t! x* I0 D& JResponse.Write "加密前为:"&first % V$ }2 k' T# M2 L
last=Encryptstr(first)
/ g' ~% q6 h" k9 [3 D; Q$ r2 z3 L- ?Response.Write "加密后为"&last
3 ?: y  a, N/ }- ]4 z: o; r8 x) QResponse.Write "解密后为" &decryptstr(last)
* b! n, _2 q4 s# c' j%> ==============================================# x- Y8 ]; t4 t' W+ ?
剩下的就是字符的对照表了4 S! e. r$ [& A' K! V
===================字符集================) a! |2 B2 ^; b& a6 U8 S% D1 R
1_____6EBB
8 m" ?) U5 L% x. Y2_____5C1F$ o" y9 D8 ^( k( E: |1 M
3_____4D75$ _" q) n' @9 j( T* }) u- ?8 ^
4_____26CC
+ i! |+ T& t" C5_____4F88
+ J- H/ H( q6 l7 V6_____3F4E
& [$ w" h! e9 z- v: n8 h7_____0A9D* w0 m! ?" S7 X8 r# Y
8_____1A1C% k6 J2 H9 S! b: |5 l8 m' \5 C
9_____6D20) U0 q4 k2 i/ W$ m' K
0_____1089
0 l/ M$ k4 \5 I$ l, Fa_____0F3E. z' u/ H$ _  P# R- s4 j6 B
b_____3159) t. S3 w" q. Q* m+ k* A7 x
c_____35174 C' ?5 W# ~4 T! J( P
d_____419C
% ^2 {5 y( U  x& N5 |& K6 Ze_____615C' V5 [' m) k" |4 x1 {; ?& c
f_____556F
' y6 O- F6 Q2 Z+ fg_____2B7F7 _2 P6 [( x2 ]% b# w$ R+ y- s& z
h_____0F9C
$ P" p4 _* |$ H# F  i; ai_____00FA
3 y) u( d/ [. m. B  _) ?# bj_____5A50
7 r* Y% N* z0 Sk_____2850
. b4 |+ ^. S( d8 T( w- m4 z: Ol_____3E7B  A9 r5 U* [3 t7 H) E. K* V: P
m_____71C55 v, l# R5 K3 y: e
n_____1FC8
- k: g* L8 L1 F( m& h+ jo_____74C1% ?' w$ M. M+ a9 G! k
p_____5FB8
' w( W. r0 j2 D& Zq_____60856 l9 T4 l+ p: J3 n0 p
r_____3AC4
- a' C: v' s0 j4 ks_____2F50+ B5 w/ [, F* T* L; ]+ Q
t_____36F8
8 ]8 d( w2 U, Y* au_____7010
2 F! }  p  l% K$ L3 f0 Wv_____0B427 Q8 |; d0 G4 `& T, d1 K+ `( p
w_____1C7A
* y% p; \' }) {x_____16F8
, k3 H6 A; D9 h! D& ky_____2EE7
) K' |# v; w1 x# Xz_____5CF3
4 A3 \' P8 q4 [9 O& a!_____6233
0 k/ g% @, X/ L% h! V/ N/ Z5 L@_____3A45
% C3 P5 I! L% }9 m& C' _( r5 G: N#_____22914 h. O. b- ^+ X3 r# a$ B2 p, L
$_____5D5C8 X3 `0 ]7 F  ^9 L/ p
%_____09B9* m* F) K" V; P6 F, n
^_____43EA
: j8 F: c0 H' h) i$ f$ \&_____62B9
$ k3 y+ a0 |' h+ _*_____6301% s+ v0 T" R- A; B
(_____4659
7 Y* T8 f+ `7 [+ N)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表