返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm6 |; X% F+ J: T4 O/ I
原始出处:http://www.3ast.com.cm% N6 }" M. h- k: T6 z+ s* d

9 u7 t- h. w4 }& O3 {+ F1 N看不懂的直接绕过
; {" X5 f! e8 T' Z8 h加密前为:hwy1234569 N  W+ g+ l7 u0 u" P  W& V
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
& }) t  G8 @9 i1 x* ]0 f$ h  Y+ N5 N5 c0 f* _7 J( d
============================================
- P4 C3 K  _6 M- `* ~上面是当时自己校内的心情。现在已经解破出来了,分享给大家
6 l8 P, f2 k, j5 c' z# ?8 [也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
+ ~( P7 ~- C& e) O1 R% t- R以下是RSA算法文件( t. N- O& S1 [' p( z
" z5 W4 L& P& W  s) P: |' D: k
文件名RSA.ASP
/ p$ r% f( |, a===============================================2 ]. r, n7 G5 F1 L$ b! n
<%
. ]1 j5 Q% T+ A4 `1 x" _4 V8 {Class clsRSA
! |" s, S$ S5 o/ {% g/ rPublic PrivateKey
5 B. _: V8 q; X+ C" \: T; @Public PublicKey 0 A* Y* ?' U4 [( s
Public Modulus
4 s. V1 s; ~: S: b& y9 FPublic Function Crypt(pLngMessage, pLngKey)
: t5 ~. a# d7 H! B. o4 lOn Error Resume Next
& S, `8 b* R$ T5 U" d! PDim lLngMod
" Z2 E1 B, e# X5 T, q& ?" SDim lLngResult
8 `  a4 r+ p' T3 Y& W( g3 dDim lLngIndex 6 S" D" b5 U1 J2 o
If pLngKey Mod 2 = 0 Then
% p2 K+ s7 c4 q" NlLngResult = 1
; F% u% K/ Y# \9 h$ TFor lLngIndex = 1 To pLngKey / 2
! A6 b) Y5 y2 G/ G7 R: MlLngMod = (pLngMessage ^ 2) Mod Modulus 2 d! v; f) r! |/ i! E- r
' Mod may error on key generation 9 I  D6 \8 D: I- g
lLngResult = (lLngMod * lLngResult) Mod Modulus 9 W2 u  y- y; B# `' u) a6 L
If Err Then Exit Function
/ n1 u& p6 R$ G. W: H4 lNext ; z9 m2 n+ y+ s, U6 I! u
Else
& ~  D  m5 D& t) Y$ ^+ p7 Y) VlLngResult = pLngMessage
+ V0 J7 w" f3 T4 PFor lLngIndex = 1 To pLngKey / 2
8 i- {: i: q. Y7 slLngMod = (pLngMessage ^ 2) Mod Modulus 0 _6 I$ o1 G0 C/ @
On Error Resume Next - [' N8 r! a% x- s4 ?  m/ g
' Mod may error on key generation
8 n. N- t" c, S) ~' ~4 T. e# R0 RlLngResult = (lLngMod * lLngResult) Mod Modulus
2 j2 z2 _) b9 l) Z% h/ CIf Err Then Exit Function : c* S# Q& X  Z4 c! }  O
Next , T* j( t  f( ^3 X, E
End If
6 L2 l+ U2 o$ `3 @2 y0 PCrypt = lLngResult
8 P: Q/ b' a1 M! N" z0 EEnd Function5 ^5 x1 f$ J& W0 Z! ?. z3 y

( o3 a! p& M- H9 z# HPublic Function Encode(ByVal pStrMessage)
. E0 H% Y' D: }3 ~8 \Dim lLngIndex ) A5 H1 L; w4 K- I7 k( c
Dim lLngMaxIndex ) P8 y  E/ s7 C6 U  w
Dim lBytAscii
$ c% h$ ?. z; lDim lLngEncrypted
/ Z; e9 M9 j+ B1 a) jlLngMaxIndex = Len(pStrMessage)
0 _% g5 u+ }* `, ?7 K! a3 v, `If lLngMaxIndex = 0 Then Exit Function . C/ p5 _/ v( y* u2 K
For lLngIndex = 1 To lLngMaxIndex + Y) W# e0 c& B! Z! d
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
3 R% j( p& Q/ F' I3 vlLngEncrypted = Crypt(lBytAscii, PublicKey)
. L  v" F9 Q# k* w, wEncode = Encode & NumberToHex(lLngEncrypted, 4)
# C/ B) \* O8 N* T* \Next 5 q' E, M) M  o; U4 _: o
End Function 2 l0 L" O3 T. ^' S
Public Function Decode(ByVal pStrMessage)   V$ A" n6 I! e2 R1 U
Dim lBytAscii
$ @7 o5 C' }5 wDim lLngIndex
4 s  C: T6 Y# O  C0 q, RDim lLngMaxIndex
3 J) ]5 h7 l, O. B/ pDim lLngEncryptedData
/ s+ b4 J0 K; T) |- n2 w; |+ T4 pDecode = ""
9 ?0 X8 }( Z6 A1 t0 MlLngMaxIndex = Len(pStrMessage) $ N5 ~+ S) c0 a# a; n
For lLngIndex = 1 To lLngMaxIndex Step 4 9 h$ h- m0 a. X. H3 t8 r2 h# P
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) + ^  p( r" O( }5 R% x
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
' H0 o+ x0 H6 B/ u! ~Decode = Decode & Chr(lBytAscii) " `; H; f0 {& L8 ^( `" e, q
Next
& I: T# Z1 \  |8 IEnd Function   ]1 t, V# [. C4 h7 x
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 1 Q5 ~& o4 }" P2 S7 y# ]3 [$ ]
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ( v$ X& N3 z' t9 ^. d: G: u& n
End Function
8 A0 Q6 G4 Z3 N. b& nPrivate Function HexToNumber(ByRef pStrHex)
8 z! S0 I9 V3 wHexToNumber = CLng("&h" & pStrHex)
( T. E5 V' }, yEnd Function / V* ~. w. V- r' b( A
End Class 3 ^/ x! X6 w7 s7 J
function Encryptstr(Message)
& N$ ?) Y  l2 j0 ]+ iDim LngKeyE
% c, X( u$ N: j  a% Z2 b: c8 rDim LngKeyD
( s$ W9 O. f# }$ z/ PDim LngKeyN . O/ g' S2 k$ \4 W  W
Dim StrMessage
3 g# M6 H4 |# SDim ObjRSA 0 K1 p7 O+ q. W- \# D" V: O. ?
LngKeyE = "32823"
! A+ @$ r  y( V( [LngKeyD = "20643"
, f, X* ^$ u+ }- v  @) mLngKeyN = "29893"
$ z: x. b% K# v8 u& b. ~6 R7 wStrMessage = Message ( v- S. o% `) y# x& v
Set ObjRSA = New clsRSA 3 `5 o, I! y6 Q" a! g$ E
ObjRSA.PublicKey = LngKeyE 0 g7 P" A" o# C* [: ], y
ObjRSA.Modulus = LngKeyN
) z5 A* @8 v- |; T( P: t' i$ M: CEncryptstr = ObjRSA.Encode(StrMessage) 2 Y$ C7 X5 }& a* c( {: u+ ^
Set ObjRSA = Nothing - y; A- d% S" O! o# J$ ^% O( d
end function
3 r$ H; N8 J  q9 @( E/ k; m/ zFunction Decryptstr(Message) # y0 g1 @! z  l; x  K
Dim LngKeyE
) T$ J. Q0 P7 S7 ~7 \Dim LngKeyD
) [6 i8 C) B+ z( |+ rDim LngKeyN 9 i9 C- `% _# A9 s. y7 y! `
Dim StrMessage # h+ I7 L' V: f
Dim ObjRSA 2 e' N7 X% d8 r+ z3 P  J
LngKeyE = "32823" 0 M8 n; s% v% a+ y$ H* A
LngKeyD = "20643" # D: t" C/ Z* ~2 }+ Z
LngKeyN = "29893" $ v# C, e* m5 R0 J/ }& G1 C
StrMessage = Message
. s  @" c& A  USet ObjRSA = New clsRSA
# ^% \6 k1 j9 J- j2 ?5 eObjRSA.PrivateKey =LngKeyD
0 x: }7 E; R1 J; t( X, X3 \' mObjRSA.Modulus=LngKeyN
* z/ I& E2 Z1 Fdecryptstr=ObjRSA.Decode(StrMessage) 4 ]% W7 s, O' }7 C3 k0 V
Set ObjRSA = Nothing * ]+ D% S5 ^, U
end function
6 d; o( D  m7 S: v/ o%>
; Y5 z) s. h, _+ A; J===============================================- H+ A1 e3 C* ~4 d, A; X
3 I. A! T1 o$ u3 a2 l  }9 Z) J
还有一个用于测试这段代码的test.asp5 B" P% z  t  p, T9 l
有兴趣的自己搭建个IIS测试下
# ]8 ]( x- u% p- P/ D% b<!--#INCLUDE FILE="RSA.asp"--> / x3 x4 p; h: T" M8 e
<%
. [( w: \% s. _7 ^- m% pfunction Encryptstr(Message)
- t. a$ @  B6 z9 o0 T, d  _5 GDim LngKeyE 4 \- U. m3 a8 N, r# N( ?( @7 a- e2 |; ?
Dim LngKeyD
+ @! m, n0 Z/ X& `, B6 LDim LngKeyN
3 d% r* _! v! A! `* s2 u/ PDim StrMessage
+ y* K; P! }  P# Y4 n7 L2 DDim ObjRSA
& e& s: `* n- M2 E6 ~+ zLngKeyE = "32823"
/ P, B% f; A' T8 T$ {LngKeyD = "20643" % Q7 A! J1 c# ^/ w
LngKeyN = "29893"   j- J) O* h* O! d3 _9 J
StrMessage = Message # k7 D8 d: o& f1 [$ l. A
Set ObjRSA = New clsRSA 0 t( x+ O: U, k" q
ObjRSA.PublicKey = LngKeyE
+ y: `. k) `7 W, y1 q  Q( mObjRSA.Modulus = LngKeyN
  w: O/ H& S* p9 I- LEncryptstr = ObjRSA.Encode(StrMessage) + }$ r$ f- ~& j5 m5 _- v( Y
Set ObjRSA = Nothing : p; I& j, P4 e5 i+ |5 R) G
end function 2 _5 Y$ X9 Z; a/ K3 V: l
function decryptstr(Message)
- a( v/ {( J* x3 a: r& wDim LngKeyE - _; c8 p; t; m; V
Dim LngKeyD ' k3 G+ J8 d% y
Dim LngKeyN $ a( h; m  q' t
Dim StrMessage
" L  ^& n' j( p, e1 ^: q2 NDim ObjRSA - f5 f. W* w& ~
LngKeyE = "32823" 9 h6 Q5 P- @* ^- O# l
LngKeyD = "20643"
! j6 Z6 k: N* T+ t. n) K  vLngKeyN = "29893" " _. O, k2 I2 b* c7 _( M
StrMessage = Message
3 H; g- l7 k3 E6 [Set ObjRSA = New clsRSA
# y% t( o# |* c) y" k. d) yObjRSA.PrivateKey =LngKeyD
) k# K" E- V  M3 W: }7 w( IObjRSA.Modulus=LngKeyN & j/ O6 e6 s( K  [$ p5 v; T) r
decryptstr=ObjRSA.Decode(StrMessage)
, m6 P; X4 |0 P# |Set ObjRSA = Nothing
8 U& p$ p; ^6 c1 q) `! ~* s! }end function
4 F0 L6 Q. ~; h7 I. Z5 Q2 c: D8 Idim last,first
' H: x! j0 S' b; V! F4 a6 a7 [first="!@#$%^&*()" 1 k, k5 r+ z7 ]7 D/ j6 b0 m
Response.Write "加密前为:"&first 0 V" i% w& Z+ j1 g3 m
last=Encryptstr(first)
9 \/ j, T2 |; r! e1 E1 u0 qResponse.Write "加密后为"&last
. z. B+ |5 T# i+ Q, cResponse.Write "解密后为" &decryptstr(last) 6 N0 I+ q9 |0 U& `
%> ==============================================
+ e, q: |  Y2 \  k; L+ K( k剩下的就是字符的对照表了
. w+ i8 g2 P) C$ Q( S8 \' s0 p===================字符集================
& J) B/ _( r! {  `5 d/ }9 j5 r1_____6EBB, g2 P. E& r$ H/ ^( A. r
2_____5C1F
* \: s! z) |% b3_____4D756 `& D  ?7 ~8 E: a* C
4_____26CC
" x* I8 h0 c6 L* u1 A4 a. X5_____4F889 D3 [3 z1 W4 D+ ^4 e
6_____3F4E& ~# ]: s# M. V6 t* V; P
7_____0A9D
: l# V" Q! r; L# Y5 c8_____1A1C- C/ I  Q9 L% E1 C6 G1 c: o$ _; D  b
9_____6D20
9 N; b, \* v1 S! n& d1 E% m- Y0_____1089& k1 Z8 k; L6 m$ M
a_____0F3E9 d/ F4 d. E! v& r
b_____3159: m2 c0 Q: d2 {! d1 H0 m, u
c_____3517
' |) Z" z/ \5 t, L6 |4 ~% Ad_____419C
- @% X8 w6 I  K: d7 qe_____615C
7 o7 N. v$ K+ r+ Lf_____556F9 Q1 M2 r! \: B' \  h6 U
g_____2B7F; J0 h& r* ]/ ~% |8 f  _; R0 O/ t
h_____0F9C4 V3 X0 L7 `, o; z& g' a3 R
i_____00FA0 s8 T* F+ _: L! ^, F2 x4 A! d
j_____5A50
! W! W0 \6 @; }, D  U4 fk_____2850
; u: E; U' F' c: K# r% R. ^l_____3E7B% S( n/ Q6 I  S1 m8 l
m_____71C5  v+ R% ~9 P0 ^7 r# a
n_____1FC8
. k( F, g( H! L* B2 [0 W( g/ }. h, T8 Ro_____74C1% @# Q7 I+ [9 _% u
p_____5FB8
. H( k" E+ q& C  X  eq_____6085- s6 }( T4 Q, M3 D0 j5 ^% q6 D7 S8 e
r_____3AC48 V( @8 {" X6 \' x. j% H: D
s_____2F50
' J0 o* \, n- s# r9 st_____36F8) H. a1 I9 Z+ l* c: K5 e3 P
u_____70104 I4 Q- a9 a( g) p( ]
v_____0B42
* f. R6 |  Q+ |9 c* Uw_____1C7A* G/ e. j- f: r
x_____16F8  W% Q) p+ u/ O) h- R
y_____2EE7( r; f* g. {2 N/ E% \" E
z_____5CF3
8 g( K2 ]+ b. l7 h( v, U, r/ G!_____6233) ~9 \$ Q8 @) ]
@_____3A458 x1 [% k% u/ r, K
#_____2291$ P6 x) r+ l, J' t
$_____5D5C
( W& r/ v7 X& m%_____09B90 N  Y) }" K/ l3 V
^_____43EA! [' G& W& _6 O% d
&_____62B9
  u1 V  ^  L5 O' ^6 }  F3 A$ J7 P; M3 r( p*_____63010 e- y) v, x) \3 v5 t. i. ~
(_____46594 K! ^& h4 h3 Y7 w' @; V5 Q+ V
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表