返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm: O8 x( I8 d, {  C
原始出处:http://www.3ast.com.cm' e3 V* u; }. B

' d/ K) p6 I* g2 n4 q看不懂的直接绕过2 W# `7 u# I; F* L+ G8 E9 Q/ q  r. p
加密前为:hwy123456
# u1 x' J% U* g7 Q( W4 r/ e7 r加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 |2 H/ ^. p7 S
- T4 u" `  ^: Y7 C) x9 T! n
============================================4 _5 X% |  [, ?( N& f! ]
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
* p5 t( C5 c3 K" B也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, e, E4 t7 h( g/ f+ ~9 ]0 H
以下是RSA算法文件
- h6 J  I( J% Q# ]+ o' l6 C6 q, \7 D
文件名RSA.ASP$ w3 z% O2 g8 Y# R
===============================================7 y0 L" x5 K) O7 d+ @9 q
<%
: r! Q7 s2 J# M' I" RClass clsRSA
* p  W3 ~  u. `# TPublic PrivateKey 0 p  M* Z+ J6 U! e' L/ ]! g
Public PublicKey & P1 W5 E8 ~/ w& y! f6 ~
Public Modulus
4 \' j5 ^# a. W! M6 x- MPublic Function Crypt(pLngMessage, pLngKey) 2 `$ r2 U( w6 ^! V5 ?( E% ]
On Error Resume Next
/ e% _) i. J4 }; _9 q3 b  Z; H" RDim lLngMod
) U- m5 c- f2 e$ vDim lLngResult
0 |( T. @- Q( @5 V5 QDim lLngIndex
7 J/ ~% C4 N$ S/ ZIf pLngKey Mod 2 = 0 Then * Z3 P9 |) Z  i5 X4 U1 I9 M, A( n, T
lLngResult = 1
" d6 s( N5 L, @7 F  y, JFor lLngIndex = 1 To pLngKey / 2
. A$ Y8 ?) d" K9 k6 E, \lLngMod = (pLngMessage ^ 2) Mod Modulus
( `% f. U/ g) Z% ]# A' Mod may error on key generation 1 X6 g& G6 o: u' a7 h0 \. S5 \' r
lLngResult = (lLngMod * lLngResult) Mod Modulus
& O' h, D8 W; h7 f. W2 [. h5 z" |% qIf Err Then Exit Function
: K+ ~8 m$ J! Q1 y$ YNext + f7 g% p/ t- {  w: X. r3 d+ x
Else
/ g2 w3 O' h$ ylLngResult = pLngMessage
" J7 c! h9 l; B* H) N! p" |% o" vFor lLngIndex = 1 To pLngKey / 2
7 z3 s3 j$ g4 z- ?9 r0 ulLngMod = (pLngMessage ^ 2) Mod Modulus
! C* F# \8 m5 H6 c6 F9 ~; gOn Error Resume Next 2 Y9 t2 y) s% ^9 V+ c- W+ M' T
' Mod may error on key generation 6 y' |; P8 }' ]2 I- Q: z
lLngResult = (lLngMod * lLngResult) Mod Modulus $ |8 g1 h4 T: Z: e
If Err Then Exit Function
5 D# S0 e( j/ B( kNext
8 q5 M' i! Q" NEnd If
  i) G# \, e3 J' ~Crypt = lLngResult
1 r2 Q" m- E& Q0 a& }( AEnd Function
& L# u% _: V! B6 y9 K+ I. M3 q" D1 i* l. D  H# T0 S# Z5 E
Public Function Encode(ByVal pStrMessage)
- N6 v( v/ f: W! e: J9 |* v9 NDim lLngIndex
# A: p4 B  U( u% w$ z+ t2 K' UDim lLngMaxIndex
, ?  A0 u% x. S, Y4 c, W: iDim lBytAscii ' A5 H* B& h2 w' t: u' h
Dim lLngEncrypted
/ v/ `8 X/ Y6 \& E# mlLngMaxIndex = Len(pStrMessage)
' p0 G3 e" I5 v9 n( H: IIf lLngMaxIndex = 0 Then Exit Function
* m, S3 T6 J4 v) i  AFor lLngIndex = 1 To lLngMaxIndex , X' ]4 g) o# ^$ I& \6 y5 Z9 q* l
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 M+ W7 x+ J+ |lLngEncrypted = Crypt(lBytAscii, PublicKey) " f. r8 E; m. w3 w- e; k5 `
Encode = Encode & NumberToHex(lLngEncrypted, 4) 6 X6 q+ m: {' ]7 A: H4 F2 Q2 q# K
Next ) a6 N' \9 g& B9 g1 r8 J
End Function
+ ~/ S& o" S8 |* {. oPublic Function Decode(ByVal pStrMessage)
) ~/ E) u9 T, f7 F( IDim lBytAscii
- t6 O% R4 b# [# b' ?- L7 n1 kDim lLngIndex - w. n. p7 B7 E- y/ h" f
Dim lLngMaxIndex
) j6 G8 {$ M' v2 l  B) }1 oDim lLngEncryptedData
. Y, }% F  q$ UDecode = "" 1 g+ I/ \& G6 `& ^: g+ h1 F% t: ?
lLngMaxIndex = Len(pStrMessage) ' Q* r& t+ D& B0 C) R0 l- d
For lLngIndex = 1 To lLngMaxIndex Step 4 2 y: B8 p( b: ~1 s5 H3 @
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
; `4 b3 O" G! C5 m& qlBytAscii = Crypt(lLngEncryptedData, PrivateKey) # z8 N' {8 ~8 O
Decode = Decode & Chr(lBytAscii) ; K9 H& D0 i% [1 j( p; J' Q5 z, I
Next
8 P% |8 g5 |+ w; E$ j6 WEnd Function
5 v' }0 ]) t8 rPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
) B5 Q4 @- c. z2 CNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) , Y& f/ w  n- u) i7 A1 {$ W9 }
End Function   L% o+ h: A6 V0 A
Private Function HexToNumber(ByRef pStrHex)
: W& M0 `; d; d8 c4 j( ?2 aHexToNumber = CLng("&h" & pStrHex) & [8 D& E. D' W4 _. [) H
End Function . S, Q0 u# k. d  S& i- O; \# s
End Class - p& ?  \' o9 ^: }4 i, P
function Encryptstr(Message)
# d& A  I$ a- q7 HDim LngKeyE
: o+ w; m, m, y! K! s; IDim LngKeyD
' h: [4 z& L9 G! H- v, XDim LngKeyN
! L" u6 S+ a# J8 k# n5 z4 p. v7 iDim StrMessage   `, n# r& z4 P3 t
Dim ObjRSA
) b1 {* P5 d  Z' R/ LLngKeyE = "32823"
/ u3 H) g) ?" W& JLngKeyD = "20643" ( K. W5 f2 m* X# W
LngKeyN = "29893"
1 W7 {4 e* O+ JStrMessage = Message $ j/ i7 H$ @# u* Z! k
Set ObjRSA = New clsRSA
( j7 `2 i  E' q$ GObjRSA.PublicKey = LngKeyE
0 |* B7 A; Q6 u) P4 ?6 b- AObjRSA.Modulus = LngKeyN
2 R1 l/ s6 n+ G! @, ~Encryptstr = ObjRSA.Encode(StrMessage)
5 S0 c: b7 f, n& H6 P; x/ sSet ObjRSA = Nothing $ _9 ^+ M0 r3 S: I9 ]% @
end function, o$ t5 t. [. e$ \5 [* o! A
Function Decryptstr(Message)
4 y  L* X. ^6 H7 TDim LngKeyE % c; m- K. {7 c
Dim LngKeyD # z2 y2 E* g3 _
Dim LngKeyN
; M7 {! i5 H8 x9 e- V# E6 XDim StrMessage
+ u! c# r$ P+ |5 a! q6 L2 |Dim ObjRSA ( w" @$ p1 J/ X2 ]. ]
LngKeyE = "32823" 8 c9 b% V( [% b6 z1 ?3 h4 V3 e
LngKeyD = "20643" . q+ w' d" Q& k
LngKeyN = "29893" ; f8 ?/ T. b2 U0 a! I/ a5 y8 Q
StrMessage = Message 5 J6 I2 L- x, E$ d7 m3 E
Set ObjRSA = New clsRSA + P; K+ A- s, N9 N
ObjRSA.PrivateKey =LngKeyD " }, J5 f+ F! I% l
ObjRSA.Modulus=LngKeyN % u: ~4 K; Q2 N3 y$ x2 A
decryptstr=ObjRSA.Decode(StrMessage)
5 c5 W+ q. J/ Z9 {Set ObjRSA = Nothing
- t* z9 q/ K- ^, N) ]end function ) p/ Y5 x3 B; ?" g& L$ E/ }6 T
%>! N  B( n6 e/ z/ ~
===============================================& l1 V! M8 |3 @" a! s8 R7 I
: T8 h$ ]# q3 b: D* `
还有一个用于测试这段代码的test.asp
( M7 h- `  @) I3 i3 d5 J. F, T有兴趣的自己搭建个IIS测试下; ]6 g, a. k, h3 _6 G0 B' u
<!--#INCLUDE FILE="RSA.asp"-->
. Q% S% m+ S- Q6 X0 R( |1 ?<%
0 G  m% U2 o# ?* I8 Ifunction Encryptstr(Message) 3 F5 z( b& g! h: E4 x% R
Dim LngKeyE
% `1 P/ N" X% B4 P, }Dim LngKeyD / t, }: j, L2 g; K& S7 D7 G+ [
Dim LngKeyN
. N7 g+ ?- W: Q9 ?! r6 t' fDim StrMessage % H, U  {( \/ y
Dim ObjRSA
" U2 p. }: E: @LngKeyE = "32823" , _: i# D/ F, {! x. V% c
LngKeyD = "20643"
5 V' d( H3 y# @& }" f9 tLngKeyN = "29893"
, b  J$ f: m% t$ D( uStrMessage = Message " U3 N3 B9 }; ^7 U
Set ObjRSA = New clsRSA ) a  z9 D( i" ?6 O) g7 N
ObjRSA.PublicKey = LngKeyE % [% I! v/ n- l
ObjRSA.Modulus = LngKeyN 8 @4 e+ u% S( `# Y5 ?/ F, D
Encryptstr = ObjRSA.Encode(StrMessage) ! Z! C* }9 |, X1 ~* ?! i* z% k# P
Set ObjRSA = Nothing
& [: t& |. e- H+ x* @. n! mend function
4 D" W7 w- P1 m4 Y  @1 @% gfunction decryptstr(Message)
' ?, [: y; `" MDim LngKeyE : ^4 W4 }! z9 v4 ^. A9 z
Dim LngKeyD
$ Q, m& ^# ^6 |' |9 C% sDim LngKeyN
+ [+ E( S* u- E; h* H5 ]. XDim StrMessage 6 r0 \' L4 W8 h2 `
Dim ObjRSA
4 U3 ?5 H' |2 QLngKeyE = "32823" 4 F* ]( K6 _8 ?- i$ B# t
LngKeyD = "20643" ) z& {+ X+ \8 Y1 k% E
LngKeyN = "29893"
) h3 `! C* E! ?" Z0 {9 u' b$ }StrMessage = Message
3 w; }0 O9 p0 H% S* oSet ObjRSA = New clsRSA 4 e/ _, |! I0 r) h
ObjRSA.PrivateKey =LngKeyD
1 @. I6 O% }6 p9 s) ~3 h  `0 jObjRSA.Modulus=LngKeyN
7 M% d1 E+ t( x: y/ Zdecryptstr=ObjRSA.Decode(StrMessage) ; d9 Z* r3 B( \
Set ObjRSA = Nothing
7 _5 l; ?' ~% Gend function
7 A  P, y  K: l; y6 @% h8 g- adim last,first
' W* f. S4 I. lfirst="!@#$%^&*()"
# ^' _, E) E+ S9 vResponse.Write "加密前为:"&first . x2 _1 w3 _1 ~+ M: H& G
last=Encryptstr(first)
8 |& E: O0 j* e( ZResponse.Write "加密后为"&last
/ H. p& U$ W4 W7 WResponse.Write "解密后为" &decryptstr(last)
, y% u% ~- w! U' O" {. d$ G" p; U5 z& w%> ==============================================
, I( Z" e, m4 ?: E2 r8 b$ J3 T- t8 P剩下的就是字符的对照表了
' m) p7 W" N1 \  u- a' r===================字符集================, ]9 M" o% X" \. ^8 V8 M: x% p* Z( ?
1_____6EBB
; S; h& Q8 v( j2 z2_____5C1F0 m3 @6 z2 O2 f5 A
3_____4D75) w$ g% K% w0 J, N5 E/ \5 v
4_____26CC
! ^& y* R/ v/ }9 V, o2 P5_____4F88: O# I- V4 A9 h
6_____3F4E/ ^3 B, H5 b/ h
7_____0A9D. ?! `# ]5 u/ L) D( |
8_____1A1C
- A  q! i+ U- |$ U  J5 u9_____6D20
! o$ J9 ~' i( Y  B1 o3 Z0_____1089
5 ~9 ?7 K# s3 Q9 D( K4 Qa_____0F3E! _4 s- A4 U  j1 n; G, z; Q
b_____3159. p7 J) r$ `7 B7 n: Z% Y
c_____3517
; K! f# Y+ `7 h$ M6 M8 Hd_____419C5 j  O" Q3 g& [3 w4 F
e_____615C
( `* h% o: p) [# k( B* L1 w: t0 p' bf_____556F4 u: s5 Z$ X+ A. }% c/ q
g_____2B7F# n1 V$ I& c4 X: `* B
h_____0F9C7 A9 n! A. s6 `% m
i_____00FA
4 o$ N! C: S- vj_____5A50( L5 ]$ Q: D5 N& b+ G* f/ `$ m
k_____2850+ Z& C) b9 q4 Z" @) s
l_____3E7B
, f6 G& s6 J1 L! A! Dm_____71C5' ]% }+ l# o0 O; G" g; p# o0 S
n_____1FC8
: f) {. \' p: m1 T/ P9 {o_____74C1
7 y) @1 T7 k& s7 {9 G9 Mp_____5FB8/ [* V0 W" x7 ?1 P% k
q_____6085
0 m. p* u7 K5 `7 ?0 T4 j6 Rr_____3AC4
+ _7 J9 x# H3 es_____2F50
9 V2 Q6 T2 ~2 R- l3 a, Bt_____36F8
4 G" k7 e6 B! v, t$ q1 Au_____7010
% ]1 e# w6 K" F  ]+ P3 R# Fv_____0B42
5 d. k) {8 A$ b: Pw_____1C7A
3 i  P* X5 W( g% j6 Z0 |  Qx_____16F8) |; M% R/ j4 x  G0 K7 l# d
y_____2EE72 D$ }- ]) @3 j" K2 E0 ?4 X/ X
z_____5CF32 ], R' E4 [2 n
!_____62338 [& m/ U% m7 }4 U/ ]4 ?# Q
@_____3A45
8 B5 T1 j  _' N* }4 o0 D#_____2291. ]9 K5 l9 Y8 _# Z+ i4 ~; m
$_____5D5C8 v; q0 Z( a3 {' l1 M4 F3 f9 z
%_____09B92 {+ w$ ]8 w: _0 ^: r$ W7 X  B
^_____43EA* @% x) `! {) Z% U6 e
&_____62B9
: V2 V7 P( x. {- J*_____63017 v5 M# Q! p- |1 y* C/ ~8 ~
(_____4659
9 |2 s) I/ c/ ^, A- l* r  V" @)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表