返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm  L; Q2 S; S9 [" v, g! \" `- N
原始出处:http://www.3ast.com.cm
5 x* [; w& ]# V: q3 q( P4 B3 P4 k* z1 l- c' h! K% o# h
看不懂的直接绕过
0 N' C  n2 [5 h& \+ Q+ D加密前为:hwy123456) F+ U. w- U( k# N
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
9 f2 L. g+ k4 `2 L9 Q& h9 \' H, y7 T$ ^" e0 c5 \/ J: d0 R
============================================
4 z1 j; F$ p# t6 V6 T1 ~0 Y' N上面是当时自己校内的心情。现在已经解破出来了,分享给大家" E( F4 p9 W* _+ C9 s( P2 O* c- c
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法4 b, ?  q0 c' d' t
以下是RSA算法文件' t8 l9 `3 ?- V8 @; \! X$ A& s
% H. P( n$ c: s+ P7 A
文件名RSA.ASP
! j" j9 H. |: }1 A6 r===============================================
, y+ I0 |! }) U, v' t; _<% + y  Q9 J7 ]" _. j
Class clsRSA 4 W2 h: ?0 Z, ]/ \. |
Public PrivateKey 3 s4 {( g6 y. |% M+ L) n* [# r
Public PublicKey
5 X  P( F4 J- h$ ~: LPublic Modulus 1 A, G& }1 N: d  X! D  C5 {
Public Function Crypt(pLngMessage, pLngKey)
, _- S2 y1 t2 D- |) JOn Error Resume Next 0 e1 d- l, b9 I" ~9 `6 o
Dim lLngMod
- w( y# K/ x) H( q+ BDim lLngResult 1 z; M3 j& a! q7 i$ K, {# R5 \
Dim lLngIndex . W' p* {1 [% @9 o% G
If pLngKey Mod 2 = 0 Then 9 u. n7 m& U  M# |
lLngResult = 1 7 Z2 O7 T* ]$ L! H: N& ?- e
For lLngIndex = 1 To pLngKey / 2
0 x6 t0 L1 U! ?* j7 M! |lLngMod = (pLngMessage ^ 2) Mod Modulus ; M, V% r: K$ h8 N2 D
' Mod may error on key generation 3 ]" w8 o1 b) p  E$ @$ b7 g+ D# L
lLngResult = (lLngMod * lLngResult) Mod Modulus
' I. ?+ x5 ]3 }3 g2 H9 X; q4 WIf Err Then Exit Function 2 q  B2 z6 V# b( N7 z/ q0 Q
Next # g6 J% N8 A3 J6 i( z$ R( V4 o
Else ( _7 s1 a7 M1 r. S
lLngResult = pLngMessage - p) T9 ?8 |5 J7 B
For lLngIndex = 1 To pLngKey / 2
( l" p5 r. L0 m; t; TlLngMod = (pLngMessage ^ 2) Mod Modulus 7 h% t) |2 U  w
On Error Resume Next
# N! Q, w5 g9 w' Mod may error on key generation
- Y$ e7 c7 T& K; [  `, g, D1 T& MlLngResult = (lLngMod * lLngResult) Mod Modulus
0 B; h! f( r; X8 Q1 |4 u4 D/ u. `If Err Then Exit Function 3 f0 }' T& ?( x: h$ o, A
Next & A9 v+ h  ^- D5 r' Y9 _( v
End If
$ ~# o5 F. R. V3 {. T) lCrypt = lLngResult
$ |4 s( z. v' F* TEnd Function
2 G/ w4 z% s2 C% @0 H
# @& h1 }/ `3 S3 }. yPublic Function Encode(ByVal pStrMessage) / y( N9 X5 E; t# C0 P
Dim lLngIndex 4 \* K0 H) C0 W" G) y0 }
Dim lLngMaxIndex
, B6 P4 s' a' g, t' `Dim lBytAscii ; T, ]0 b5 O& }& b8 U0 s
Dim lLngEncrypted ( c. |& K0 t  U! ?3 m0 p6 T
lLngMaxIndex = Len(pStrMessage)
/ X, n4 r  h, _- o8 Z" D4 _0 X/ {If lLngMaxIndex = 0 Then Exit Function 6 S3 q7 N' L% M$ i5 t+ J' C8 Z" |% s/ x
For lLngIndex = 1 To lLngMaxIndex 1 g7 D  x" t  X) e* o9 q9 I% c/ W
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) s( n2 w1 O( z/ V# \( H3 h% ?lLngEncrypted = Crypt(lBytAscii, PublicKey)
5 `! y5 N. F+ d7 A6 @Encode = Encode & NumberToHex(lLngEncrypted, 4)
3 U0 b) N5 x& a- d$ X+ M) }Next ) z. p, V! e& L5 Q# D
End Function   Z) X, O5 G9 z" i6 I( F
Public Function Decode(ByVal pStrMessage)
0 y! G5 G' l' k1 }2 gDim lBytAscii
6 P( e1 b# n' m$ G( h& }7 z% dDim lLngIndex
8 {/ m) {, ~2 b1 m9 n1 JDim lLngMaxIndex . e, }6 l/ Z. s1 {9 x' d
Dim lLngEncryptedData
- F; I# S( z- t: o8 H. ^1 qDecode = "" 4 d) e1 b: r; c# n) j
lLngMaxIndex = Len(pStrMessage) $ y$ L9 m( {0 G
For lLngIndex = 1 To lLngMaxIndex Step 4 3 A$ \* I2 T. J; k5 n
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 7 @6 t- h; N8 ~5 u( z
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
5 A% L$ D6 b+ M. B+ W3 ?& R0 ~5 NDecode = Decode & Chr(lBytAscii)
7 n; d/ f1 Z  `* cNext % j6 _! w$ X( \7 J1 y
End Function 4 `2 w: S4 @1 o
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) . k! e* Q; M9 ~3 E- O
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) . H& ~( V0 W4 d/ p; ~0 U: M; R
End Function
- B! ]* o1 w' a7 g* mPrivate Function HexToNumber(ByRef pStrHex)
0 {) Q) g5 U* {, b2 [! NHexToNumber = CLng("&h" & pStrHex)
4 x5 Y; b% G. P% [End Function % B2 S) H: V3 f3 U+ S
End Class
  m1 W% ^0 M1 A6 U$ wfunction Encryptstr(Message)
/ l/ o( z# S$ G3 B3 EDim LngKeyE
% z$ f" P  Y; _& \+ bDim LngKeyD % N; @! A9 Z+ U) Q* R, V9 y0 N. b
Dim LngKeyN
) a0 j( B' I* N" j8 K0 @  NDim StrMessage ( E$ M: p' t4 Y% Y4 F2 t) @
Dim ObjRSA
# v$ W2 [' j: m+ J8 q" gLngKeyE = "32823"
. ^8 a9 I* h; t; x/ r8 `LngKeyD = "20643" 2 O8 G2 z0 y. a' u- p* b- o
LngKeyN = "29893" ) ?; H3 L; q# _6 a' t" o, i6 F+ v
StrMessage = Message
8 [" ^" a2 E6 w& s+ W1 d; ]& J* S6 G, zSet ObjRSA = New clsRSA 5 j/ @% O% W+ \+ o/ I/ q/ E
ObjRSA.PublicKey = LngKeyE $ x! j/ S% v9 j1 {- G5 j0 ~
ObjRSA.Modulus = LngKeyN , y: _& C% u/ d( ^. w
Encryptstr = ObjRSA.Encode(StrMessage)   n' z$ F/ m- X- Z/ l' \, W6 P
Set ObjRSA = Nothing 1 q% R$ r& N- s9 _+ Q+ \. k) b2 B
end function
" f( A7 T( R4 K6 o* @. bFunction Decryptstr(Message) " y1 q5 x" n0 V( n4 }5 o/ S
Dim LngKeyE
* O5 L7 \1 s; E# {Dim LngKeyD
3 Q! P9 s9 O1 \1 r( Z' h% lDim LngKeyN
/ d8 W/ T! e0 |% {Dim StrMessage
2 h2 ]0 G% R- s& \; I  oDim ObjRSA
! X$ [- U. ^# HLngKeyE = "32823" 0 R/ ]( m' J# T- B
LngKeyD = "20643"
/ J9 S+ j- Y& ELngKeyN = "29893" 2 [' Q/ t6 h6 n! l
StrMessage = Message $ g8 Z+ m- P( f  Z- Z
Set ObjRSA = New clsRSA
  c5 J, U0 A+ G( J+ B+ q+ i- V) s: eObjRSA.PrivateKey =LngKeyD
, J7 M% y! r; Y- |ObjRSA.Modulus=LngKeyN # N4 Y/ l9 m, ^* N
decryptstr=ObjRSA.Decode(StrMessage) # X8 P- }$ d6 f4 P# T# U
Set ObjRSA = Nothing
+ M3 K+ Q/ B& a! l  }& send function   H( a. u8 @/ n2 k' \. k% A* t0 [; p8 B/ _
%>
0 }: |8 z5 G. `# c$ Z/ \+ U' q===============================================: D4 Q4 q$ x1 B: z  y( T4 M
+ d! ?$ a4 d, K
还有一个用于测试这段代码的test.asp
% {8 T: R- k: B7 Q9 @有兴趣的自己搭建个IIS测试下
" {; G' e/ E. h<!--#INCLUDE FILE="RSA.asp"-->
& h: S' X0 T5 s<%& `/ a3 k" \. l2 _  s! Y1 X- ^
function Encryptstr(Message) / R' h2 S: ^5 q
Dim LngKeyE 4 Y9 b0 t- {" {3 l3 y; h
Dim LngKeyD
$ u$ g$ G/ z% j& q, o% N. ZDim LngKeyN
# {6 W7 d7 @: w" [Dim StrMessage
; P! m2 _+ K3 d4 L1 ^8 [Dim ObjRSA
8 J( V) ^1 ^4 A6 FLngKeyE = "32823"
- C2 v* _7 Y  I! R9 U) ]LngKeyD = "20643" * w$ a9 g/ K2 i6 p" w- p
LngKeyN = "29893"
# K4 S8 n9 A, Q7 x8 ZStrMessage = Message
' c9 p/ u: e0 XSet ObjRSA = New clsRSA 5 |5 d3 x4 [6 D/ I6 F
ObjRSA.PublicKey = LngKeyE . j2 h. _' }8 j$ j
ObjRSA.Modulus = LngKeyN , K5 O) v( g! Z
Encryptstr = ObjRSA.Encode(StrMessage) $ ?9 x- t4 h+ k7 u
Set ObjRSA = Nothing 3 `- g3 S* _! _( e
end function 2 A& f; d8 t6 }' c- h2 M+ R5 t
function decryptstr(Message)
6 q$ G. C( Y* ^& p2 h' |Dim LngKeyE 0 S4 S2 \" e& H+ U* [& u
Dim LngKeyD ! z' Q( m* U; ~/ m0 M1 `: ?
Dim LngKeyN
* \; W% `, L. @% H$ S' yDim StrMessage 2 _, ]8 ]/ V( y- ?  w& ~
Dim ObjRSA ( I6 C8 J( m' t+ h9 _, @
LngKeyE = "32823"
4 w! r& l; n5 d% MLngKeyD = "20643"
  [* I0 g4 ~7 W* p+ M' lLngKeyN = "29893"
9 o  w) M8 k: f5 [StrMessage = Message
) {$ A8 I. g4 }5 E8 ]Set ObjRSA = New clsRSA
% z/ N* n* ]) \. f" G/ _4 L- \6 _( w  VObjRSA.PrivateKey =LngKeyD " ^+ A, T8 W9 I  a5 R
ObjRSA.Modulus=LngKeyN
! o; [, c' h9 _0 V1 U! p+ ]3 cdecryptstr=ObjRSA.Decode(StrMessage)
' S* `4 c: s$ b$ ESet ObjRSA = Nothing
- \% }0 h. |# ?3 kend function . {0 U) V8 K, L0 d! K6 {, w& }
dim last,first
$ T: r- s4 D* \$ jfirst="!@#$%^&*()" 3 W+ N$ s4 L0 U4 j* s5 `
Response.Write "加密前为:"&first ! s  _- [; H% h& q8 h
last=Encryptstr(first)
4 Q3 k! S' p# k* W' l" Z) oResponse.Write "加密后为"&last 9 V0 m9 h/ e+ D: d
Response.Write "解密后为" &decryptstr(last)
) Y" J% ~' z% q* x5 f1 _; V%> ==============================================
4 |! f0 K: |! b" H. \7 G* n剩下的就是字符的对照表了2 T! D* c& X# n6 w3 \/ z, _. p, n3 {
===================字符集================
3 H2 ]4 S0 T8 }8 W1_____6EBB
8 D  }2 D# R5 i! {2_____5C1F  G$ _# p2 c* u. p
3_____4D758 w- l" a) j+ W+ M* g! E+ }
4_____26CC
2 s! _3 G5 \. c8 r9 Q5_____4F88) q% E$ b( }) x; f2 g) d
6_____3F4E
! z2 J' H6 T7 {6 q$ ^# [8 P1 C7_____0A9D$ t3 U! T- H# X$ H, g
8_____1A1C8 d; `8 N% S: }6 v4 A
9_____6D20
- ~" f) \; F. N( {9 _  |3 Q( t3 e0_____1089
% N0 r3 y8 Y+ O$ Q, Ca_____0F3E
, E! K1 o) h* K7 }' i2 S9 Hb_____3159( n8 l* K& e0 u/ w5 {
c_____3517
) f+ p* l, d, K% M9 t- jd_____419C
: [8 Z+ p  e  N% @! e4 e4 ?% Z, Xe_____615C  T6 @0 r7 {8 q7 q* I; I% j) M
f_____556F( v- l; D3 N4 m: q3 S- J7 z9 j
g_____2B7F
( e* ?5 B! d8 y. \' S+ H6 J* Y9 Ih_____0F9C
  r& F# |# P2 x, Z: x7 C; n; T0 Z9 ]i_____00FA+ ]; [" ]) y4 \- @, l) E3 c
j_____5A503 t$ E7 k( u9 {$ s
k_____28507 Z( {1 v; N! j+ G$ Y+ y4 f" g
l_____3E7B2 j3 V2 n$ l$ `* O9 L
m_____71C5
3 l( R+ r% U5 S3 ]# R; b( pn_____1FC8& F' P  W5 j/ o5 F$ J
o_____74C1
% J: C$ }6 D: Sp_____5FB8, w; T8 X4 e6 P1 J& B
q_____6085+ Y0 G" o0 e# f: {) W: Q
r_____3AC4: P" F7 D$ X, ]1 b# v
s_____2F50
$ X  k$ z- }- Zt_____36F8+ a& @; S+ u" ^: U# H
u_____7010
% N0 l, r& e6 v, p7 y+ p, Yv_____0B420 C& j  [+ N2 U$ p
w_____1C7A
+ O$ E- p. S2 ^1 h/ q- ^/ A1 J- ~x_____16F8
! r! r; t$ ^' ^% Z' e% \9 N8 Iy_____2EE70 B, y, W* \# ^2 z; n
z_____5CF3
* Q& l6 e: `+ T! `5 d- \!_____6233
. z, E3 U3 C) m9 f- O@_____3A45" q1 W7 c7 ?9 a' t" T: P; f
#_____2291
% y; v! A3 |! h. v$_____5D5C
6 H+ r* Q7 h2 Y8 _- j( `4 Z%_____09B9: O# t0 S2 ]! u/ ~, W
^_____43EA
3 a7 V. J" o' |# z5 L; `&_____62B9
, e9 B4 M- U2 G9 q4 O  A! c*_____6301
4 X7 y; V1 x% M4 U5 _7 _(_____4659, ^/ [: z8 \7 R0 D8 |; Z$ w4 B
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表