Board logo

标题: [原创文章] 关于国内某知名大学网站加密算法的研究 [打印本页]

作者: 柔肠寸断    时间: 2009-4-19 21:52     标题: 关于国内某知名大学网站加密算法的研究

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm; f! B4 G( {1 k2 j+ H; w9 P- `) s
原始出处:http://www.3ast.com.cm
) `6 i/ N/ ~/ p3 J; h) ]& e3 _# ]( ?
看不懂的直接绕过
6 L9 n# V" ^* w2 f加密前为:hwy123456
8 X5 b# x; U  b: A- c9 m% `: ]加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
" e3 C# z3 t5 ^0 I; {
3 F# C: ~7 Q2 O- n============================================
+ _9 Z/ n7 W4 F2 j- Z$ s# H上面是当时自己校内的心情。现在已经解破出来了,分享给大家
; w( o. m' K% h% J4 w也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法9 L) ]" Z& G% E
以下是RSA算法文件+ L* H% C- X* v( X/ X

; T9 H, ]9 Y! S  K文件名RSA.ASP
* q, H5 }* Y& Y* D$ D===============================================
1 P) y* @6 N# v/ S- [, ~) M8 L<% ! ^6 u$ J1 k* N0 G! P- S
Class clsRSA 4 G0 j+ j2 m% |1 W/ o4 U2 H
Public PrivateKey
8 ]8 }$ y/ ?5 x- c! \7 Z( FPublic PublicKey + w9 M" m9 [0 I" o$ U! z
Public Modulus
2 w; q$ i) L- ?Public Function Crypt(pLngMessage, pLngKey)
6 X6 M8 T+ b. ?& b0 FOn Error Resume Next
5 A6 {# h4 ]8 v: W: }( M6 xDim lLngMod - b' p8 l! r0 Q* g. L2 _* G5 a
Dim lLngResult
7 B/ g. ~3 E. ]- N% H7 M2 j0 {* CDim lLngIndex ( X4 {& x7 n9 `6 |* j
If pLngKey Mod 2 = 0 Then
" F) H8 j9 H0 l: w3 q. b/ KlLngResult = 1 & H( d. |% x; E$ I8 H
For lLngIndex = 1 To pLngKey / 2 1 D: l# C9 @! {/ r% x/ {& M
lLngMod = (pLngMessage ^ 2) Mod Modulus
3 y6 W+ z6 {/ T' Mod may error on key generation
3 y; k' g7 }- \4 H& M9 Y7 P! c' mlLngResult = (lLngMod * lLngResult) Mod Modulus 2 D# r# x3 h  ]0 R& v& I
If Err Then Exit Function & m& }6 a+ v% t: R/ S! D8 L
Next
) @. ?+ U; t7 ~* GElse
: \& x0 }7 v1 v8 I0 U( A/ dlLngResult = pLngMessage 2 R& |+ x% ~- I$ c
For lLngIndex = 1 To pLngKey / 2 * A  L  S4 }; `2 H" n+ o+ Y6 c* H( g! K
lLngMod = (pLngMessage ^ 2) Mod Modulus ' d/ Z, W" w: W1 b
On Error Resume Next
8 p+ x# \$ p% K8 w$ m' Mod may error on key generation 4 W' c, ^4 I2 u1 d9 {4 @4 x$ l8 ~
lLngResult = (lLngMod * lLngResult) Mod Modulus , H' I) @% C  ]% a! H
If Err Then Exit Function - ?) M6 z8 {7 g$ l
Next 3 ]" k" c7 |. M4 E5 r1 ~3 [
End If
) Y! {6 r  s8 O% \( Y  _2 N  d, dCrypt = lLngResult
5 H# B2 |; d! @5 ~End Function$ ?% Y/ A& k# ?2 @, g  O

; o0 e/ G) }4 s6 c; {Public Function Encode(ByVal pStrMessage)   F6 u- {: }- Y
Dim lLngIndex
7 t: B+ y  O+ ]- j8 L( ~1 LDim lLngMaxIndex
9 q% N2 n" h1 E' w& P9 k, zDim lBytAscii ) z+ ^0 r* A7 D/ s! L, Z
Dim lLngEncrypted
& E2 a4 ~+ x0 P0 o. I. GlLngMaxIndex = Len(pStrMessage) 4 ~/ `/ ^# \5 |# s" q$ i
If lLngMaxIndex = 0 Then Exit Function * J# J' d1 d0 k  X: M5 R- S
For lLngIndex = 1 To lLngMaxIndex
+ U' N* \* A/ D! K/ g# nlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) n) g/ O5 k% r5 G7 Y. ~2 qlLngEncrypted = Crypt(lBytAscii, PublicKey)
" W% `2 N: U* G6 y" SEncode = Encode & NumberToHex(lLngEncrypted, 4)
4 R' R/ ?/ D+ DNext ) K2 ~4 |2 Y, G) G
End Function 8 r7 Z# D7 ~* b7 N
Public Function Decode(ByVal pStrMessage)
! r  ?! S+ @& X+ F0 xDim lBytAscii
7 G; i0 p9 c& |/ cDim lLngIndex
* L& |1 x) `% k$ H- v1 SDim lLngMaxIndex ! n3 ~/ r& v; F- i
Dim lLngEncryptedData
0 d  P( ^" Y4 ?9 k" R9 sDecode = ""   V+ V5 D& w8 P/ U: ?' a9 i
lLngMaxIndex = Len(pStrMessage)
+ d7 ~( c; X) \& o/ _For lLngIndex = 1 To lLngMaxIndex Step 4 ( w' _5 |6 d9 K$ z
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
5 Z2 b  k6 E* j9 k& a& [7 R: Q: TlBytAscii = Crypt(lLngEncryptedData, PrivateKey) % A8 a& ?7 c) m8 u! e. C+ w* n
Decode = Decode & Chr(lBytAscii)
4 Z, c/ W. Y) \1 W7 H- c8 h2 ZNext ; a0 n8 @" L  W( @/ ?
End Function
( h* c. @% p: P- z: R; |/ l* sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
2 Q) a4 P; n. z. F2 ^8 _NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& @; E# B- M9 ]- i/ o* aEnd Function
+ j5 t# h( F4 yPrivate Function HexToNumber(ByRef pStrHex)
( j7 W' w/ R$ w' V5 vHexToNumber = CLng("&h" & pStrHex)
+ P. ]% J0 f# ^9 BEnd Function
/ C' E+ R2 H9 X) P9 ~* b& e  _7 YEnd Class # o  M. d9 `1 M7 I
function Encryptstr(Message) # f, z6 D. d9 n4 ]5 D' [2 c1 p
Dim LngKeyE 8 L" |" U: }7 t. M8 R, A- R$ g
Dim LngKeyD % e( p$ P, B( ?8 g  S* e+ d
Dim LngKeyN $ x) v7 ]9 X5 Z5 R6 j- q4 n% r
Dim StrMessage
# _4 D8 g8 d% _9 jDim ObjRSA
2 k$ r: v; y1 S0 n8 T+ \LngKeyE = "32823" , K7 B! n% o) X
LngKeyD = "20643" 9 e, r3 R9 J1 j; @" j2 B8 I
LngKeyN = "29893"   e0 h7 x' n, Z5 ]/ I
StrMessage = Message
4 ^/ D* Q( N  r0 Q: l% tSet ObjRSA = New clsRSA
% }$ r. t2 U" x( L8 EObjRSA.PublicKey = LngKeyE
7 E9 f& u( F8 G; `! t) \5 g% [+ W5 IObjRSA.Modulus = LngKeyN
0 i% `; [+ i4 f5 @, yEncryptstr = ObjRSA.Encode(StrMessage) + v' t# _' a8 {! R) f# i
Set ObjRSA = Nothing
) Z7 I/ M2 m4 _* d/ [  I& O8 _9 P0 Bend function
* t9 l, `  M3 J$ D" TFunction Decryptstr(Message) # s% m8 ]2 [( B5 F
Dim LngKeyE
4 o# h3 v$ ?& q; V8 C. P( HDim LngKeyD 6 ?! I, D* x! ?* W& G
Dim LngKeyN
- ]3 _6 p/ k3 u" {5 D/ Y: z7 eDim StrMessage
% ~! r6 `6 p  M; c+ i" BDim ObjRSA
$ |3 {0 Z3 a" G- rLngKeyE = "32823"
* O1 P/ Q% E( o* q- [: Q$ {LngKeyD = "20643" ' _  K! t4 g) W7 O' N
LngKeyN = "29893"
4 o# d7 d) @2 c0 dStrMessage = Message 1 J- l. f. K; ~! W: h
Set ObjRSA = New clsRSA
4 p: t, s" D1 ?  t. A. {4 _" H; C" ~ObjRSA.PrivateKey =LngKeyD
" g6 e5 `) S; y$ J% k6 l. nObjRSA.Modulus=LngKeyN
& r! j3 N5 a" ?. ydecryptstr=ObjRSA.Decode(StrMessage) : N1 P* I6 ]/ u- T
Set ObjRSA = Nothing
  H6 M  _- w# @/ i( Dend function : h) j* i% Q* T% q/ I
%>$ e4 Y' |) e3 g* A" M$ _( B5 r% O
===============================================
8 P8 I: h* g* B* q" q
. |6 F8 L' a9 q% @* ]还有一个用于测试这段代码的test.asp% o3 @; Z1 I, G) j* z  r, n
有兴趣的自己搭建个IIS测试下
' j3 d( U" e0 @. _/ N( ?" f1 C<!--#INCLUDE FILE="RSA.asp"--> . A2 P1 X! B! x# l& b9 N
<%- ?. f! w  n& i' G& c. |' [
function Encryptstr(Message)
1 I  C5 N) S, uDim LngKeyE ; G7 D- I; N, @6 a2 s4 C
Dim LngKeyD . K+ M( l+ p( s6 p/ W3 c7 L
Dim LngKeyN
, V1 g6 O8 m3 n; ?Dim StrMessage # X3 h) j( |$ z# F, y
Dim ObjRSA + i3 g4 V2 Z. R/ A
LngKeyE = "32823"
! o5 |7 ], U! |( u8 aLngKeyD = "20643"
) b) o2 s" p' T4 J8 ]LngKeyN = "29893" 5 R* Z0 w- v  ?/ ?
StrMessage = Message
8 k) g: j$ _! B  p# o3 d; ~/ RSet ObjRSA = New clsRSA : N% `. W% J9 a9 K- S4 T9 N
ObjRSA.PublicKey = LngKeyE , d! j) z' X4 ^* D8 M6 j+ j6 r
ObjRSA.Modulus = LngKeyN / g) y0 P/ \7 Q* H# D' B. ~; K
Encryptstr = ObjRSA.Encode(StrMessage)
4 ~& v5 J1 O: V9 H! wSet ObjRSA = Nothing
" R+ w2 L: w2 A: \: B' I; Bend function ! T7 S  n, A; e+ E) ?; L
function decryptstr(Message)
3 C5 H- @. g- s$ d' XDim LngKeyE
. E& A8 H+ c: Y/ lDim LngKeyD 6 W4 _9 V; k' V
Dim LngKeyN
7 \0 J+ P: }: M% E' X/ FDim StrMessage
& N$ O# k9 m: CDim ObjRSA
0 A* Z5 W: x1 Q$ nLngKeyE = "32823"
  |& l( [6 {+ T4 c" A1 Q0 LLngKeyD = "20643"
3 _: D% ]& M5 g7 a5 e1 qLngKeyN = "29893" 3 H* W  [9 T8 ?
StrMessage = Message 7 z+ l# X% f' ^! l( D$ W$ T0 G" h5 [
Set ObjRSA = New clsRSA 4 d! H0 F: y" a$ w$ V
ObjRSA.PrivateKey =LngKeyD
4 r. b! }6 |1 t  iObjRSA.Modulus=LngKeyN
% ?* b3 V' o/ t( ^% \decryptstr=ObjRSA.Decode(StrMessage)
, H; o2 l% r8 R+ Y5 U/ ISet ObjRSA = Nothing 2 `5 F, S: f! H3 n$ f% X5 O. N
end function 4 I2 N: W* l' r6 z* x( I+ x
dim last,first
8 A3 w# A3 |- p0 A& dfirst="!@#$%^&*()" ( b" u+ s% }: u( b
Response.Write "加密前为:"&first   W& D% B% ~$ B- R1 g3 n
last=Encryptstr(first) + Y3 z% y3 j* h8 Y/ X( I
Response.Write "加密后为"&last
- g8 I$ D- U' qResponse.Write "解密后为" &decryptstr(last) ; S8 c# z6 E( y; v; K5 u
%> ==============================================5 Z3 b9 ~- B4 T# \9 b7 J
剩下的就是字符的对照表了: V8 K) d! e. X9 P/ z5 P
===================字符集================7 h7 ^  D/ o( T, A
1_____6EBB
5 I9 ]' o7 |: G0 E2 P0 H3 V0 x5 w2_____5C1F- ?1 z) C' {, H/ ~( A& H7 J
3_____4D75
' X, _! I; r3 \6 Y; z4_____26CC# q, I4 U8 }0 {$ O- q' k
5_____4F88
% x7 c0 x% h8 B/ Q! {6_____3F4E
" |: Y* L, g- ^% n' w' p2 {, ^7_____0A9D
9 u- X, h1 \  Y8 j" x7 U6 Y' l8_____1A1C) c; c: t* V3 c' h
9_____6D20
6 c* d4 ]4 E8 R  S- d$ L  T0_____10895 _/ o- F; M1 f  t( m6 a
a_____0F3E
: s  v: E/ g* L; X* N3 bb_____31594 s3 {. v. d: B( @* ?! k+ t2 |6 Q  m
c_____3517
) Y0 C1 V; {0 @( A: ad_____419C
/ ]1 n) q, m5 s/ ]. y3 |; b2 [e_____615C
3 \# |$ I  ~/ o# rf_____556F+ W$ N4 v3 ]' B, I  T2 e
g_____2B7F
- S! d  j& _& T1 i1 L- _1 d! X2 eh_____0F9C
" u* m5 K& E1 F9 }9 P+ |i_____00FA) x, J( H6 N& r4 h
j_____5A50
$ I# o0 d/ a" b* dk_____2850
) i6 i/ D1 M4 R% s2 d0 z$ I: jl_____3E7B4 }5 w3 e# m! U& X: x
m_____71C5
* ^% \9 u* P' {" x: l# in_____1FC81 Q" z. ^+ O5 N
o_____74C10 p/ Z( G+ r9 F% t* q% K" D/ A
p_____5FB8- F; W4 I; _6 H* x
q_____6085
7 c- Z* y7 o9 A7 Nr_____3AC4" v$ l  q5 F0 P
s_____2F50+ W; T6 q: w5 U5 Z% j4 P6 p
t_____36F8
& c5 [- \, `/ D, j9 {) ou_____7010
0 n) M8 \( E$ M, k/ ~5 T6 Av_____0B423 `8 x  J" d  L! I' P3 V7 e8 M
w_____1C7A
6 n8 c: C2 h. ?7 A3 K! jx_____16F8
) A5 N" `" P  R: `, e; }4 I' {y_____2EE7) Z- Q0 i: ~5 A, i0 X) n
z_____5CF3
8 z& u/ g, o: Y% d8 \!_____6233  G# n( d$ w1 }3 @
@_____3A45
' f/ g8 Y& W8 m: I: j2 F. l+ V% ?- R#_____2291
, O: o$ P' T3 Z2 P* {0 b$_____5D5C
* D! N  ?: t/ M7 [%_____09B9
) t: f7 m3 E' d# H0 v^_____43EA
  r7 x7 {! E: T+ b# ^3 V/ k&_____62B9
& W8 M9 H# g- b# v# @! O3 M, n*_____6301
# Z! {0 B" H  Q* G( M(_____4659( P+ d& N% ~2 d$ K* K0 S, k! E
)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




欢迎光临 【3.A.S.T】网络安全爱好者 (http://www.3ast.com/) Powered by Discuz! 7.2