返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm& q4 s, O" |" z! q8 n
原始出处:http://www.3ast.com.cm% c0 B  f$ e3 W/ m9 S( x

, u9 b0 j# x3 T/ G1 f看不懂的直接绕过
+ E6 G. X0 R: L9 }加密前为:hwy1234561 b/ e' I0 m+ |3 M9 q% v1 ]: z
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
8 x) X" Z) y( B( M0 G* _4 i. M
, q" v* f$ K0 N: _& f* w* D+ E2 {4 W============================================5 ?' G- j* R! Z. ^9 E9 ^
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
. A$ [" Z; |! y  l; \3 o8 [0 x# o也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, k  e4 k; Q5 ~9 Z" q
以下是RSA算法文件3 T# W& A) A- u2 |6 B9 x

- ^, ^& P( s5 Q0 A3 P3 ^文件名RSA.ASP5 d7 L9 S/ p+ a
===============================================# P0 f0 a6 k4 ^# r1 B
<%
( e% v$ |! p3 b& _) d( m: m5 lClass clsRSA
  K. H; z' y) I. N0 {6 yPublic PrivateKey % }7 h; |# C& f$ l  A/ a1 u, |
Public PublicKey 9 T$ Z( P9 N$ s
Public Modulus
  y6 W. m" F- d! c0 f! Z9 [Public Function Crypt(pLngMessage, pLngKey) 4 A* h- g- Z5 O
On Error Resume Next * C. {% }2 U# V4 J+ t9 c6 R
Dim lLngMod
4 t) m& ^, X  @1 ]0 jDim lLngResult
& K& e7 s. l1 |* ^% o& rDim lLngIndex
2 J4 y1 b) E' a3 \9 s; UIf pLngKey Mod 2 = 0 Then . i( e; v8 ?; s& S! N. D7 \
lLngResult = 1 % P+ f4 b6 J4 W" r
For lLngIndex = 1 To pLngKey / 2
3 W8 q+ W  B) m; k& xlLngMod = (pLngMessage ^ 2) Mod Modulus ; m- m+ [) S% j
' Mod may error on key generation
0 a9 _8 H( _! x& M) K$ c% ~" wlLngResult = (lLngMod * lLngResult) Mod Modulus 9 I. O3 ?. {6 j
If Err Then Exit Function   B8 u8 S) D  s+ Q8 H# ^' {3 i
Next
9 _+ Q# L2 L5 Y+ \# F* u8 dElse
5 U/ E/ D6 d2 ^3 R! R6 @7 E2 l" q( ]lLngResult = pLngMessage : ~  v/ d+ f. d$ y6 b- f
For lLngIndex = 1 To pLngKey / 2
; f% V# H2 Q5 klLngMod = (pLngMessage ^ 2) Mod Modulus   R% t6 u% T2 m. R* n% ?, `
On Error Resume Next
7 x9 I7 i$ x, f( ]% R- G: T3 B' Mod may error on key generation * |3 u. {" h7 S  @
lLngResult = (lLngMod * lLngResult) Mod Modulus 5 U4 m5 l3 b5 o' O5 h
If Err Then Exit Function
9 z9 }9 i& b  ONext
( e3 `4 x! k; u; K4 W/ dEnd If $ H" N) `' b7 `1 c
Crypt = lLngResult
7 a+ U* l9 C7 [% h( pEnd Function% h/ \5 b. Y! U1 j2 J3 ?

: M' p6 K  h% I. nPublic Function Encode(ByVal pStrMessage) ' x( R4 [0 ]! q( _# I
Dim lLngIndex
- o# a' Y* w4 x3 B0 `Dim lLngMaxIndex . q3 M# Q+ [& z2 M
Dim lBytAscii   v* U0 V( x# [2 s
Dim lLngEncrypted
. H0 R* U; T: AlLngMaxIndex = Len(pStrMessage)
. T4 {* s2 B1 i% s9 vIf lLngMaxIndex = 0 Then Exit Function 9 G: g4 n; U# e
For lLngIndex = 1 To lLngMaxIndex % [! x6 }5 R5 S  O( c# Q
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 6 _8 R- {# V; F. D; G
lLngEncrypted = Crypt(lBytAscii, PublicKey)
4 u# l( |' L: {3 qEncode = Encode & NumberToHex(lLngEncrypted, 4)
0 ^5 H* k2 U; Y4 b7 u+ z. `Next
9 N0 `6 e* ~9 H: {End Function
. @* b  ^( T/ J: E& A( i) IPublic Function Decode(ByVal pStrMessage)
& v- j  \$ F% g* \; n) kDim lBytAscii
+ |* S7 [5 p# ~0 tDim lLngIndex
2 H% d* n  _- lDim lLngMaxIndex   q2 W2 c2 y) e3 v9 A. x
Dim lLngEncryptedData
$ ?6 r8 d) j# x* G3 @' W- TDecode = "" 3 X% b- u' v1 V8 {, w2 Z1 Z/ |: g7 b
lLngMaxIndex = Len(pStrMessage)
' b) k; {* w0 N- z4 R% W6 lFor lLngIndex = 1 To lLngMaxIndex Step 4
; \  N, f: w' C; M  H3 KlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ; w- [5 b4 W) A+ C* Y- @# x4 w8 O  J
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 8 ], B2 N9 \3 p8 h% h
Decode = Decode & Chr(lBytAscii) : e9 R# a9 e* _
Next
$ h  P% n9 c6 w3 b; ]End Function
; s- i, f5 _% p1 Z% n2 j" w6 l' \Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! a1 W  }9 T! f# S+ u5 Y9 E
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ) M" D, N5 N0 C& L
End Function
- L% e- H/ s! m1 \% DPrivate Function HexToNumber(ByRef pStrHex)
& }$ L. s# H$ P& v  x, D& zHexToNumber = CLng("&h" & pStrHex)
$ q+ o, ~. [9 k5 w; ?( M( QEnd Function # ~, f7 @1 z: a4 ~) ?
End Class
1 R( P3 T5 q5 r4 U0 @, O- Kfunction Encryptstr(Message)
7 W( {) c* w: v# |! @9 bDim LngKeyE
* r1 q3 J+ B- ~* oDim LngKeyD
" i" ]6 {7 x9 [* A" eDim LngKeyN
) |0 P) x2 ^& L) v* g9 k/ ]" ^Dim StrMessage ) c" y  X% |* G) k
Dim ObjRSA ) N1 U9 h' ~, f3 s
LngKeyE = "32823" + w7 m7 O: k7 Y8 G- z) u' j3 r. V
LngKeyD = "20643" 4 R3 x7 b6 `0 V( K/ k  n
LngKeyN = "29893" ! Q) s: z3 x& n* Q
StrMessage = Message
  H5 U3 L+ Z; ^# N2 T$ u! F  jSet ObjRSA = New clsRSA
* @3 [8 x1 x$ X6 Z; |- y# s$ n' ]ObjRSA.PublicKey = LngKeyE * _! o% h& U, P
ObjRSA.Modulus = LngKeyN ; q! W  s9 V& s  L( T
Encryptstr = ObjRSA.Encode(StrMessage)
5 p8 a1 i0 _9 H9 GSet ObjRSA = Nothing 6 B# }9 f. d+ J) c8 @
end function. m( o+ n; H! E4 E
Function Decryptstr(Message) 3 B  |* }" c9 e" V2 P
Dim LngKeyE
$ |" W! Q6 H; \# I7 DDim LngKeyD ( s) Q( R9 I4 g" D. L7 N% s9 K& t
Dim LngKeyN
2 j' o. N) ?( x/ BDim StrMessage 5 _1 n- \7 _! ~2 ?
Dim ObjRSA " D  w/ H% Y7 T3 t# m/ N* d
LngKeyE = "32823" # |  }! K) a* N; w, A% K. z* N
LngKeyD = "20643" - V3 N" i/ A* ?; S( I. w" @
LngKeyN = "29893" + J6 E2 k  ?: _5 j+ r) T
StrMessage = Message
4 X6 t4 c! W' y8 `) S9 g7 C" n7 TSet ObjRSA = New clsRSA
. Z) ^. b# L3 [ObjRSA.PrivateKey =LngKeyD
% R0 s6 R2 k0 j# F9 U* x2 w9 u6 IObjRSA.Modulus=LngKeyN : [/ p; b, J4 p0 [( z2 c7 {: H
decryptstr=ObjRSA.Decode(StrMessage)
  b: Y* ?2 i, S7 _( ISet ObjRSA = Nothing & @8 D# W" R9 O& F# ^
end function
; f; Z4 s9 e1 `/ t$ a% Z%>
8 m1 J' l5 ?- m, {8 |! P8 x  M$ L===============================================' K! K# t  d( R& u; a/ N+ J" K8 v

7 q  Y! Q- i, I1 Q还有一个用于测试这段代码的test.asp
. `8 J" \2 ^: s6 p有兴趣的自己搭建个IIS测试下/ ^% p2 M. k8 e0 u" ?
<!--#INCLUDE FILE="RSA.asp"-->
3 K! j8 t7 }& g/ t/ e% c: D/ g<%
5 ~( C% O: ^/ {6 c) |4 P  Q* k2 W3 ufunction Encryptstr(Message)
8 `) E% g+ {# E' y% ?* x( pDim LngKeyE ( ^  T+ ]' L4 t
Dim LngKeyD 7 p3 l2 F- q1 \# G0 r5 b" G
Dim LngKeyN ! K$ [9 r& T6 ^$ ~3 |+ y: t: O
Dim StrMessage
1 k$ L9 y$ |0 d! b7 P# ~# W# N  W6 ADim ObjRSA
% j( b! T+ }# J# aLngKeyE = "32823" 1 p6 ^" h+ A, E! C8 e3 \) m( ^
LngKeyD = "20643" 9 f3 @) x  `3 @" D3 Z* r1 k
LngKeyN = "29893"
0 x) {5 y! A% b* }" A/ PStrMessage = Message
. j& F8 i- L! B7 N0 `; G) I! x5 KSet ObjRSA = New clsRSA * m) L* X9 [+ V! r6 W
ObjRSA.PublicKey = LngKeyE * H7 |5 r6 N# W1 X5 ]# d
ObjRSA.Modulus = LngKeyN
8 {/ ~* ~& r. z( C: v% eEncryptstr = ObjRSA.Encode(StrMessage) + w6 \2 Q. s  O1 o% @+ x% ]
Set ObjRSA = Nothing
5 O8 g& i3 q8 vend function 6 v* g4 E' n; T& Q- s' y& V
function decryptstr(Message)
( m& E* d7 I4 _* A0 i# iDim LngKeyE
, j8 a$ N: K+ E1 w7 ~Dim LngKeyD % ^9 |' v9 b, t8 a$ w" G- x
Dim LngKeyN 8 c- V4 a1 z" S! W, d! q! R  @6 H
Dim StrMessage
* z! f) @: A/ j: u  x$ j9 P6 iDim ObjRSA 4 z2 \$ H! M( A7 W9 ~4 x( v% X4 ^
LngKeyE = "32823" , m2 b  ^# g1 g" o/ n  Q
LngKeyD = "20643"
1 ~9 b) C2 O. ^: F0 V5 K5 `! L6 d: DLngKeyN = "29893"
+ Y- b. j% d$ Y5 f" e# F3 v1 vStrMessage = Message 1 R4 J, _  c; k1 V
Set ObjRSA = New clsRSA 7 `/ k) E! H# O1 S7 v  D% U1 G; m
ObjRSA.PrivateKey =LngKeyD ' r* t1 k! L' _7 ]- F3 C
ObjRSA.Modulus=LngKeyN
% J8 b5 E, R+ |# X. _* Y4 Gdecryptstr=ObjRSA.Decode(StrMessage) 4 H5 ]- B' C3 t3 ^& ?
Set ObjRSA = Nothing - Y! C6 m! A  O. H( h/ h) J3 Q
end function ! J6 V" W- {8 V+ l- A
dim last,first
3 R3 t0 A5 h/ S8 zfirst="!@#$%^&*()" * d4 X  x4 r5 L* L
Response.Write "加密前为:"&first # [* l0 z' u# Y; q# R2 }
last=Encryptstr(first) ; s1 m' x% T* e3 l. A5 B
Response.Write "加密后为"&last
% O3 c' J9 A" X5 G# l. Y8 Q" ]. {6 WResponse.Write "解密后为" &decryptstr(last) 3 A# E, i. ^. `" x
%> ==============================================, _- y( n0 R5 ?: O
剩下的就是字符的对照表了
; w# C: T) q1 Z" O$ \+ P" z===================字符集================, b- ?4 `* k0 `" m+ T
1_____6EBB. H* T% e; x! {* x' g* z
2_____5C1F
* p8 I: y& ]+ w/ w3_____4D75
0 l/ b, d; ~1 U5 X4_____26CC9 X" A- L+ P& V* T/ f
5_____4F88, b$ p* c  |+ b- P; x
6_____3F4E
5 ~% C! q3 y- L% K- k0 |6 T7_____0A9D3 f. \& @5 R3 i" d7 `2 j: d' l
8_____1A1C
1 `% E3 N, }6 `+ @- h- V1 G9_____6D20' [. s7 Z" t/ H7 d3 ~
0_____1089
1 F  \) [7 }; a1 {5 ^) ]a_____0F3E+ C: J/ Y* [# g! s2 G% I
b_____3159
+ H' }/ \/ E6 ac_____35176 x0 U2 ?* J% N* v( {# F. B
d_____419C/ k8 b. F6 c  Q) l4 X  A$ B, {& S
e_____615C
/ ^* H- _) N# Hf_____556F
! N& W# y/ V4 l9 d9 wg_____2B7F' g2 B6 n' o6 k4 s$ H% v" S
h_____0F9C
8 C' p' F$ K  h+ B' Di_____00FA
2 V2 \' ~1 l+ e7 n+ v" ]j_____5A50" e4 X' t$ P% g$ ~1 J* E
k_____28500 j8 O) n0 }' \! f/ f
l_____3E7B
' k9 W( l5 B8 L. c2 Cm_____71C5& E  B5 |) h/ D
n_____1FC8
  o9 m/ O/ i" Ho_____74C1/ x& S* o4 ?7 W9 z' E9 O
p_____5FB8
7 b4 s/ w. y' R& {# w& [7 Vq_____60852 a- h1 G7 |3 Q4 s" D2 G! d+ _  b
r_____3AC4
8 z  {9 ], X- q9 ?( ^7 i0 ]s_____2F50
) Q2 [' g2 R+ W& W# u5 i- l, H* Bt_____36F8
  P, |& P( v$ U" s) ^+ Z9 {. A# Su_____7010
* I: j. I( E$ B; `7 m/ `4 X* m6 J) |v_____0B42
3 [( H8 |! `8 Sw_____1C7A
4 o3 e+ J. l% D5 {  b8 V$ ux_____16F8
2 G- M/ h( x  N7 ?& [y_____2EE7, x+ Z- X; Y0 b% N1 G! o
z_____5CF3
% ]4 @8 B4 _8 [( }: Y; s!_____62330 F) P4 j$ {/ x. `
@_____3A451 x0 K$ I5 l- {! f- o2 F
#_____2291: s* o) T# m3 e' }* J
$_____5D5C
7 \9 T& m# S5 V% p* R& ]%_____09B9
4 }# n/ i3 P) N! C^_____43EA
4 F6 O! R: z: ~1 W&_____62B9  ]- O2 U' e0 K$ r6 z: O
*_____63014 q; Y( Y" z2 E, J# S2 Z
(_____46599 u  C1 N+ v8 z5 E, o* B
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表