返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
5 I  I) p; H8 h( {原始出处:http://www.3ast.com.cm
$ j7 D% d3 ~; z1 v8 c4 l. }5 T/ [# M) D7 F* b
看不懂的直接绕过
' q% j# X: x8 z# M9 T' c" Y加密前为:hwy1234560 p1 m0 ?6 D5 r+ w, f/ B
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
2 Z& k5 r9 H0 M& x+ M. L: J% x: }9 n+ {1 }4 ?8 l, m% l2 R7 C
============================================! d8 y* _, h, q- d& A
上面是当时自己校内的心情。现在已经解破出来了,分享给大家; O# Q0 s  C: S1 ]
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法/ s; p6 G+ G7 x. L
以下是RSA算法文件
9 c0 u) B7 ]) @! `" ~# u; V  Y2 d& K. o
文件名RSA.ASP
$ O/ L1 ]& @. e+ X- B: C0 Z4 x===============================================
9 j8 L! H0 L7 o- }' ~3 S- P<% 5 V, t4 G5 Z7 Z; E
Class clsRSA
4 W  d' ~+ X  @) j/ sPublic PrivateKey ; B' F6 P& F/ c
Public PublicKey ' y; s  x* `/ \8 u, _
Public Modulus
+ e5 F$ n! K8 J* MPublic Function Crypt(pLngMessage, pLngKey) + W& p' I6 w8 ]" [+ _3 [1 P
On Error Resume Next . Q1 }( C7 w4 J1 d7 X  \6 n
Dim lLngMod
# G! ?8 s) w; |& `1 @% G  NDim lLngResult
2 [5 Q+ K8 W1 x8 b$ R: IDim lLngIndex   q# p3 k4 S. ?, I& y
If pLngKey Mod 2 = 0 Then 8 I+ q7 R/ M5 r" v3 e% v9 A
lLngResult = 1
5 S9 {, c) O: P8 f1 r2 _6 UFor lLngIndex = 1 To pLngKey / 2
; L3 @2 k0 Q2 Q1 |2 n. QlLngMod = (pLngMessage ^ 2) Mod Modulus : r, Z3 }( E' d; h
' Mod may error on key generation 3 V2 L! a8 f/ o: T' H
lLngResult = (lLngMod * lLngResult) Mod Modulus
" b  Q( J! y, a+ vIf Err Then Exit Function
$ j$ t' P$ H8 ONext
: j( F- `7 c, R& l& z( U6 EElse * Y+ C. @3 ~: H9 }
lLngResult = pLngMessage 4 C/ x% D9 Q4 C: u) A
For lLngIndex = 1 To pLngKey / 2 ; A- c0 a. a, ^0 |! D. W. h
lLngMod = (pLngMessage ^ 2) Mod Modulus
. Z; y3 R' v- \" m# qOn Error Resume Next 8 b2 ^3 Z& G; @( ?
' Mod may error on key generation
5 E( y7 Y8 k4 c( `lLngResult = (lLngMod * lLngResult) Mod Modulus
3 Y- z! z# T, e4 K+ I# [If Err Then Exit Function
* I* Q& t+ D6 s5 Y: XNext
5 N/ c. i8 k+ W$ @7 tEnd If
1 [( Z& `* @  @+ x$ l8 g# FCrypt = lLngResult
1 ~: ?7 B( h4 p  \0 l, H: hEnd Function. P$ {! z4 v& n9 d1 m

/ r( N3 R) B2 F6 c1 oPublic Function Encode(ByVal pStrMessage)
/ i( T9 u3 r8 [Dim lLngIndex
, ]9 |9 A6 t6 R, L# Q8 VDim lLngMaxIndex
/ t; i9 H) W7 X* g) G1 BDim lBytAscii $ [0 \" w5 o. c4 S; `5 e
Dim lLngEncrypted
) v3 w5 I7 U; d0 ~8 j. ^lLngMaxIndex = Len(pStrMessage) ) r4 N5 W* M; @. @! N9 w* M8 o
If lLngMaxIndex = 0 Then Exit Function
1 A8 M6 Y3 m0 WFor lLngIndex = 1 To lLngMaxIndex ! p; V1 t) G  Q) }" C' G" Q, p
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ ~; c$ E: X1 }- W! |: d% c2 V+ V- ylLngEncrypted = Crypt(lBytAscii, PublicKey)
3 o; \/ Y! i! v: rEncode = Encode & NumberToHex(lLngEncrypted, 4)
) p, |3 W0 K; d! D5 Y5 c* }+ TNext ' E. o- v1 c1 J. ~# o; z
End Function - {, B; V5 V8 e
Public Function Decode(ByVal pStrMessage)
  M1 z4 R- ?! ^! ODim lBytAscii . D& s; L! Y' \2 p+ M
Dim lLngIndex , M; E- A6 s3 r& I3 v1 x0 G/ ^( O9 f* }
Dim lLngMaxIndex ! C$ }; h) i  B2 p; H: J3 z7 A
Dim lLngEncryptedData % _7 D! [3 i3 z' H) A2 @) h
Decode = ""
9 M1 Z/ y3 H, U. R0 wlLngMaxIndex = Len(pStrMessage)
" [: n% j2 x) o5 z' R! Z& uFor lLngIndex = 1 To lLngMaxIndex Step 4
! b) u8 p0 W- {& Q: J/ t/ y- V/ YlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
4 M' u4 H5 i6 ]6 p3 ilBytAscii = Crypt(lLngEncryptedData, PrivateKey)
% p8 t% p0 v  m9 sDecode = Decode & Chr(lBytAscii)
' ^: h% j$ C* Z6 D, GNext
- ~7 C; n( a3 x+ Z3 _End Function
5 K3 ^0 ?; W3 Y6 H) u) v( ]0 e" APrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 8 d  N% K: b7 b
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
; c' R8 W* K/ B% sEnd Function
9 o7 h) [, |7 K6 hPrivate Function HexToNumber(ByRef pStrHex) % p- o, j$ C; ]& Z9 @/ y6 K8 n, O( X
HexToNumber = CLng("&h" & pStrHex) 4 @  Q# M5 e' R! T1 W
End Function
- M& M6 a! R& O! SEnd Class 9 w7 R, ^* }* g* F  N0 n& y- E6 o
function Encryptstr(Message)   W  r- D( U3 V' ^* @: G
Dim LngKeyE ) b5 R# |, W: |# j7 `; v+ M' s+ u& v
Dim LngKeyD
, |; }  M$ ?4 j, l, }1 {+ EDim LngKeyN
4 v3 G, {$ D7 B& BDim StrMessage
2 C" i7 p7 G& S) y8 `Dim ObjRSA
& U4 a% U+ ^2 C' r8 ?LngKeyE = "32823"
" {; A7 r; H: [LngKeyD = "20643"
2 T6 |2 ]' H, V' rLngKeyN = "29893"
1 a8 J  w* q/ QStrMessage = Message 9 ~2 k8 K3 o3 q* x1 y% i' G! C
Set ObjRSA = New clsRSA : R4 K. c% j0 a. p5 |& I$ T
ObjRSA.PublicKey = LngKeyE
, B6 F1 x: @1 [& k) ]+ j1 v& `: hObjRSA.Modulus = LngKeyN
$ z7 E& _+ s. V) r( z' wEncryptstr = ObjRSA.Encode(StrMessage)
9 j& j+ ^$ B% _- xSet ObjRSA = Nothing
1 }0 T1 u5 |2 ~0 D: Xend function
4 t' {( z6 Q" C8 c+ [Function Decryptstr(Message)
* ]% H  i+ g- W& D9 S( ^" sDim LngKeyE
5 c8 B4 m5 z  c. v+ r* Z& pDim LngKeyD 0 x1 T; z+ Y  c0 X
Dim LngKeyN ' A- W5 ~: x; u) F# X5 D9 M
Dim StrMessage
( {, i) B6 o% p+ K9 T0 @, J, J$ f) xDim ObjRSA
8 i8 }; t& b* }" c7 W& |  a/ @# iLngKeyE = "32823"
( _4 M/ k# [- V/ \6 `' vLngKeyD = "20643"
. y. r% {  _, E9 kLngKeyN = "29893" 3 j- H2 u+ R, D! u1 D4 R- i# o$ k
StrMessage = Message
: x4 b! R( @8 h' ^; sSet ObjRSA = New clsRSA ! N0 x. J, \. B* T& ]
ObjRSA.PrivateKey =LngKeyD
* w' g; q6 `. iObjRSA.Modulus=LngKeyN   E$ V, i) k0 O, W( y1 ~
decryptstr=ObjRSA.Decode(StrMessage) " Y% e" R9 Q+ I8 E% g! T$ q! s" Y
Set ObjRSA = Nothing . u( D/ o. [( l( p4 {( p
end function ) o! H% A- U1 y" w* ^( B8 B4 p4 v7 i7 [
%>% f& w0 u) U( f; P8 X2 o% Y) I
===============================================2 K8 q' N! u7 t, k

2 E; Q3 b% h! z7 k, n" e! J0 L还有一个用于测试这段代码的test.asp9 Y* A+ j, `7 m% s$ R/ A- ?
有兴趣的自己搭建个IIS测试下% x) u* l$ K# Y6 ]! P/ z6 e
<!--#INCLUDE FILE="RSA.asp"-->
2 C  H- }. ^: ?5 ^, u<%" o5 Y- n/ Y- \, g& q. Y
function Encryptstr(Message) / Q: C# F. {' A2 e) B9 q: O
Dim LngKeyE
* x5 X6 f5 t- X2 r+ C  [Dim LngKeyD 8 d( [  T9 V  V; G
Dim LngKeyN " I- x8 n# x) ^0 v9 @0 F
Dim StrMessage % e  d% ^  E9 g
Dim ObjRSA
0 ^& t- V3 j% j' h; H  R) z. DLngKeyE = "32823"
. M, U1 O2 ?$ c+ j6 A9 vLngKeyD = "20643" $ V1 s- n' ]6 l# e( t3 @9 a
LngKeyN = "29893" 1 ^* _. n( p' W% |9 S0 G  O# D% L
StrMessage = Message
. h8 a! R5 f6 E) F! C1 QSet ObjRSA = New clsRSA + |0 a) Y5 c+ c. G
ObjRSA.PublicKey = LngKeyE
5 j, [/ w* c' e  V! I* y% UObjRSA.Modulus = LngKeyN
" e  x% [; P9 a  X- kEncryptstr = ObjRSA.Encode(StrMessage)
# F# ~) l5 @2 m, O7 hSet ObjRSA = Nothing
! ~- X2 D- S, K, h0 U' aend function
8 i5 \& ^  }' K) Ufunction decryptstr(Message)
. l6 Y7 T( w. H3 L( W+ T4 |! WDim LngKeyE
6 u& p" v3 }  `5 Q# C" X+ XDim LngKeyD
; l2 L3 ~2 _9 _1 `# R) ZDim LngKeyN
% J* t  W& j) x! d* iDim StrMessage 5 J; v! i0 l' a; N- \
Dim ObjRSA " R$ g" T0 B& f  j5 e1 ^
LngKeyE = "32823"   e2 i3 q  D6 B1 ?! J  [/ H
LngKeyD = "20643"
- x! E9 b& f. J8 J( SLngKeyN = "29893" $ V* R/ i' \. h' S/ Y' H$ J
StrMessage = Message & Y. U0 E& _9 ]! P
Set ObjRSA = New clsRSA
9 a! W/ p5 Z7 B9 F# @# M* _ObjRSA.PrivateKey =LngKeyD + d/ G' A& A6 N8 a4 w3 b
ObjRSA.Modulus=LngKeyN
) S; E4 C" h5 g5 o5 }* zdecryptstr=ObjRSA.Decode(StrMessage)
) `. G' S9 P8 J7 CSet ObjRSA = Nothing
' o' a1 y' T+ N9 {1 s1 C5 i6 {end function
9 _5 v8 C% t5 f; E; l' @/ n8 ~dim last,first ; Z. J& g3 i! v( y! e+ J
first="!@#$%^&*()" % P; B# C9 b& h9 d
Response.Write "加密前为:"&first   A- c3 s! G5 G4 Z8 ~
last=Encryptstr(first) 8 N+ S# T! H) b$ W
Response.Write "加密后为"&last 6 {) C! S, C4 b
Response.Write "解密后为" &decryptstr(last) 2 j) v* @& T: b% N7 m2 \
%> ==============================================$ M; s6 D4 ]1 J8 R. m$ n2 G
剩下的就是字符的对照表了
; m& j9 l  ]% b! H8 T# G===================字符集================
7 R, K# l, J9 C5 M' u0 S% t0 m1_____6EBB
- P' Q6 C  I% R+ N4 t2_____5C1F
6 n& D4 I/ J1 D+ a  B* Y/ H3_____4D75; k6 B; ?4 Z# @4 N
4_____26CC0 Y/ i. X$ h) ^5 y, R3 N
5_____4F88$ d1 |2 S( c. C5 V6 v& n. e
6_____3F4E( d) n6 |/ Y6 n* z& n0 W
7_____0A9D
6 t7 w$ H9 i8 ]8 K# r8_____1A1C& ^4 ?9 g! @$ G& E# ~( @; u/ @6 B+ }
9_____6D203 T( z( i9 G0 a7 }' o4 O1 ~5 `
0_____1089
% p% `: e/ n  Y+ N8 Q% ra_____0F3E. q6 d6 M; J& l$ t9 o
b_____3159+ W+ E# u( Y: i  Y4 Y6 d
c_____3517. h# F4 a5 h3 l
d_____419C; g- |3 U$ ~; I4 ?% e
e_____615C4 L, j9 ^% L+ [7 R, ?
f_____556F" R( a0 _# C  |, o# D6 j$ Z) R2 e2 ]! t
g_____2B7F5 x, N0 u- M  t& M2 w
h_____0F9C
# o- S; P: ^& D# a) F" Ii_____00FA
1 S- ^* R7 ~, @  E' @j_____5A50
3 b7 w) X3 C: ]" P: Gk_____2850
7 n5 W' j- f; e' l, i/ u% j7 `l_____3E7B" E" S9 i! ?- P+ g; j
m_____71C58 @, l. ~* e4 @" b
n_____1FC8' |2 X9 o7 H3 M! h9 d
o_____74C1
5 y  c( V+ w# h- \( Ip_____5FB8. O4 ]& A+ B" ~0 M7 P) m
q_____6085! K9 J0 i* @6 }3 F1 q3 O
r_____3AC4  q4 n+ @, I, W" W7 W* u
s_____2F50) e3 @9 L; X- H, d
t_____36F8, O9 X! ]: t" L0 E' [& c3 G
u_____7010
4 W# ~2 s. Y; F3 t; V9 Av_____0B42) O. ^/ H, t  E" o5 O- D9 b9 J  d# ^& M
w_____1C7A- j5 v% H/ d1 O$ E8 G
x_____16F8$ J; C7 |* {3 R# d7 e, \9 T0 K
y_____2EE7' v5 L& ~3 e  j/ k( F3 \
z_____5CF3
" W! |6 m7 B5 G1 N- S!_____6233
) U. V( m' V: ]$ `( Z6 F. Q) Z@_____3A45' [1 Q6 w: x' W- x6 {6 y
#_____2291& g: V% Y4 C0 F( A
$_____5D5C
; {5 S  ^0 y; f- U1 y%_____09B9
, U6 E5 W% N" e8 l5 r^_____43EA; ^0 Q2 A$ k6 P: M  G) H
&_____62B9
! V9 z) l/ r: v3 V*_____6301
3 b# D- h) O: Q- Q(_____4659
8 \: P( Z/ |' K& O/ @)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表