Board logo

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

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
. K6 }* w. L! d) I1 Q原始出处:http://www.3ast.com.cm
0 X/ W- m/ v7 B6 V+ b! s9 Q0 S  Q' C% L3 [: o1 ^
看不懂的直接绕过
8 K/ p( F% \! i$ j( W加密前为:hwy123456: H4 N+ i, s9 m: a  C0 D7 Z( V+ _
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
6 n' S4 z- K9 X) C/ T5 o6 K" f! W; @* I! V+ a5 Q0 }# O! o$ ]
============================================
$ p" Q# x: L  D: M上面是当时自己校内的心情。现在已经解破出来了,分享给大家: M/ E, l+ o0 [; i. ]
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
( d3 L7 Z. R8 i" N6 j& d以下是RSA算法文件
5 V3 |7 ^5 n! e% {, ~( p$ \! Y+ d4 q* ~4 P
文件名RSA.ASP/ X& i) M! X0 |' V; l. _  r3 r
===============================================4 Z% N' V3 ]; @8 M
<%
1 Q+ ~! x$ b) W. nClass clsRSA % N' @' k) u! A) Q% z* {
Public PrivateKey
' m3 f5 q" A& }6 v/ ~% NPublic PublicKey
- S+ [6 P3 Y( E; bPublic Modulus $ k9 E6 A; @& X- n* B
Public Function Crypt(pLngMessage, pLngKey)
, C/ D3 ?. [: ^4 \7 r9 xOn Error Resume Next
3 I/ ~% M/ z8 {9 ^6 e) d' [Dim lLngMod * U1 w4 h8 r  d8 W* O
Dim lLngResult ; J! c# X$ l- L. ^% \- ^9 ?
Dim lLngIndex - ^$ q8 E  V" y! A5 T* A5 w
If pLngKey Mod 2 = 0 Then 5 s+ m9 h. e* d3 U& ^4 j
lLngResult = 1 8 C/ U& J+ f4 S5 W' K
For lLngIndex = 1 To pLngKey / 2
4 g% R6 L' Q9 m1 \: n3 }* E$ ylLngMod = (pLngMessage ^ 2) Mod Modulus % q; p, d( n# J; E6 r* z
' Mod may error on key generation , c0 s8 E! b  u* h( C) V: u
lLngResult = (lLngMod * lLngResult) Mod Modulus
+ F+ ]4 i- j% l2 x0 p1 QIf Err Then Exit Function
3 Q) A) V: C/ HNext , Q0 E) B0 \& M* |9 f! {
Else
8 Q6 v* H1 ^7 p  V. wlLngResult = pLngMessage 7 K" X, q5 i- _4 p$ a* Z
For lLngIndex = 1 To pLngKey / 2
3 c4 O2 V4 v9 J0 N5 x. elLngMod = (pLngMessage ^ 2) Mod Modulus   B. s9 d, w; x; `3 b7 b' R* }
On Error Resume Next ' K. r  D6 M" M' o. W  K- {
' Mod may error on key generation
8 t2 \+ V! h4 z+ Z2 C) YlLngResult = (lLngMod * lLngResult) Mod Modulus
% T7 t% @' q' x9 l2 tIf Err Then Exit Function
2 ?- `! D9 R& [0 ^. k! c' ZNext ! X% R' g  U9 n
End If 4 ~1 n* i" ]; d- u1 k
Crypt = lLngResult & z4 N5 ^9 Z9 U' ]3 q7 G
End Function9 M% N8 n6 G" D
5 g9 m- e& ]) N5 \2 u7 t. o) r
Public Function Encode(ByVal pStrMessage) . A  G! y( n$ g, N0 T! c
Dim lLngIndex
0 K4 @2 q: r5 i0 t) m/ Z. v/ lDim lLngMaxIndex 4 J/ W5 c& [6 F( s
Dim lBytAscii 5 h: I7 U5 g1 u; W% @
Dim lLngEncrypted
" v$ h' f+ R3 M# I9 f! o! YlLngMaxIndex = Len(pStrMessage) ) ?  W1 o' e& V" H
If lLngMaxIndex = 0 Then Exit Function
8 W* U2 M4 Q$ q. d1 f# Y& hFor lLngIndex = 1 To lLngMaxIndex
# j3 I  l' ~" D: }lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
# T5 S  j) }9 q0 qlLngEncrypted = Crypt(lBytAscii, PublicKey) + b! f8 y, k6 n( J
Encode = Encode & NumberToHex(lLngEncrypted, 4)
4 U1 z( Q0 G$ ]8 @2 LNext % V$ ^7 ?0 h7 C/ N3 _# d$ G* z; G
End Function : }& r/ y' l0 k  b; ^4 \% e: m
Public Function Decode(ByVal pStrMessage)
! y* O* a$ H: FDim lBytAscii + }/ @1 c) U; Q: ?9 T- z* ~  d
Dim lLngIndex / m9 |4 z5 j/ a. ]
Dim lLngMaxIndex 5 C# g0 o# h$ D5 Q
Dim lLngEncryptedData ; n& `; o' {9 }& \+ B
Decode = ""
  m9 S# _+ [: v) p1 N. W. NlLngMaxIndex = Len(pStrMessage)
& [) [) @8 Y( Y. U: r+ o  jFor lLngIndex = 1 To lLngMaxIndex Step 4
* V. a/ |* M) R3 R! G" s" T! blLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
( l2 c) J% j* A, V. g+ O6 glBytAscii = Crypt(lLngEncryptedData, PrivateKey) + m" D+ r  Q4 ?2 |$ I/ S. ^
Decode = Decode & Chr(lBytAscii)
2 u4 `- F2 f3 H( c3 z- qNext
9 U, t8 i5 a' K, ]& n" nEnd Function . b: m2 i: f+ R% {( D; s
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) $ d) P+ s5 x/ b5 [8 |5 n8 \9 _
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
9 ?. n& K( S5 f. u; q! y2 GEnd Function
$ F7 Y' n9 o+ D0 M8 L- s% mPrivate Function HexToNumber(ByRef pStrHex)
( Y( P/ A$ f2 D6 yHexToNumber = CLng("&h" & pStrHex)
' i1 W' `4 a" e' iEnd Function
8 \, K: t$ a. |% t* oEnd Class   J; _% u6 o( Z3 C( h
function Encryptstr(Message) ) |5 s& P2 v7 d- N+ J# {
Dim LngKeyE ! g8 r; f8 G& R: g  A- U( E
Dim LngKeyD
. W: y" e/ O# ~$ w7 `Dim LngKeyN 5 e# D8 B- \) R6 c! R( ~; P* C$ B
Dim StrMessage
. @9 b+ v6 e% V$ Z( \- X  lDim ObjRSA ! z7 B2 p5 ]1 D' |8 S8 }8 Q: S
LngKeyE = "32823" 2 @: b$ w; k4 {+ S, \9 g. M" V
LngKeyD = "20643"
! c* o3 g/ t  M; `, Q' K% B2 OLngKeyN = "29893" - Q% G; L9 C; }: ]+ O! |) f' c; H
StrMessage = Message
$ h# E( j: a( o! a6 }2 aSet ObjRSA = New clsRSA
7 u9 ^+ ?# J# w$ Z# m# OObjRSA.PublicKey = LngKeyE 6 K$ s, l8 [/ S, L% x
ObjRSA.Modulus = LngKeyN
2 }; m. V% Y$ T/ }3 mEncryptstr = ObjRSA.Encode(StrMessage) . D+ J* }* y6 N; q6 J
Set ObjRSA = Nothing $ L3 D5 N3 f& {( @. w' l
end function* N, Y3 u5 h7 d6 `0 ]* Y& t* [
Function Decryptstr(Message) : D8 c7 \. ?0 A6 p) ^# m# S
Dim LngKeyE
0 G" f: m/ |1 a# P) A6 gDim LngKeyD + a- g2 F& a1 q- m/ |
Dim LngKeyN
6 }4 r* ?; w4 B& A6 \+ ODim StrMessage
% s- k  a5 L2 DDim ObjRSA
) r& O" o" z7 n) CLngKeyE = "32823" 6 n/ t& R. S3 A* O
LngKeyD = "20643"
' K- m9 q6 v* i7 g  t% I. OLngKeyN = "29893"
, K: m+ M) x* l& T; a/ m5 sStrMessage = Message
+ ]$ f% H) t3 s3 Q6 sSet ObjRSA = New clsRSA 9 W0 h( f0 F' j9 [4 N2 Q
ObjRSA.PrivateKey =LngKeyD
1 D4 L% P/ i6 W/ P& J9 E" g' jObjRSA.Modulus=LngKeyN ) \# Q( V, p: L$ i# O* x
decryptstr=ObjRSA.Decode(StrMessage) 7 i3 \" T: A) U2 p& s- @, P
Set ObjRSA = Nothing ! O. q* P& Y: w8 R1 i
end function
& x3 h4 Q" i$ V- j$ u: h%>
/ K/ n- G7 }' ^- _===============================================
' |+ B$ h# q; @* S0 [6 [2 A. `( h
还有一个用于测试这段代码的test.asp. e+ C5 _' ]9 J' ]4 W! I4 K) I
有兴趣的自己搭建个IIS测试下
- P! }  }# b" |! }1 _) f. Z; q" l<!--#INCLUDE FILE="RSA.asp"-->
) N' p; j; m% R) b- e( T<%0 l+ @$ {. N0 R5 |4 s) |/ p
function Encryptstr(Message) , w5 c( K/ _! \9 P' s5 t, W
Dim LngKeyE
" J- J# r, D5 B0 WDim LngKeyD " O$ ~) y& p' u# f
Dim LngKeyN ( t( l2 B+ S) T* Z0 N1 \& u
Dim StrMessage % Y' K0 z! F" C- I4 Z8 `5 }
Dim ObjRSA ( s, v# |5 c& t/ t: F2 q$ N; M5 J: O5 \
LngKeyE = "32823" " {' s+ F- M7 {( Y1 Z: _
LngKeyD = "20643"
; N" r5 \2 `1 X5 U* `$ GLngKeyN = "29893" ! P! w3 _8 @" A
StrMessage = Message
/ R' Q* M7 r' C0 R( ^Set ObjRSA = New clsRSA 1 ~* J9 E8 D' {: m4 u
ObjRSA.PublicKey = LngKeyE
4 x2 o$ ~8 |# c/ w7 D. ?ObjRSA.Modulus = LngKeyN * W( F1 q5 |6 r$ O
Encryptstr = ObjRSA.Encode(StrMessage) 2 B/ {; v* \& K( H
Set ObjRSA = Nothing
% O( l2 w$ b# cend function + P4 Q+ c) x! D# r$ y/ l6 @
function decryptstr(Message)
( j( }& n- W& [7 h. u. BDim LngKeyE 3 ]8 m% q  K" l
Dim LngKeyD 9 [* W9 ]7 `/ e6 ~* I
Dim LngKeyN
, i- k, o4 [/ ]6 hDim StrMessage . l4 Z, B; G/ G. [
Dim ObjRSA * H" o6 A" w: p; x$ E  V
LngKeyE = "32823"
( f6 b# I7 ?+ O# `7 x- K* SLngKeyD = "20643" / E* O* n: [* |" `) r. ~
LngKeyN = "29893"
5 H1 B) W* J, M% D: UStrMessage = Message
8 |0 p$ u& s8 ]* BSet ObjRSA = New clsRSA 2 p# M0 _$ @# G9 H: e" Y
ObjRSA.PrivateKey =LngKeyD 2 M  I, n4 v' {- k7 U
ObjRSA.Modulus=LngKeyN . a' t0 N7 N7 N+ `3 [
decryptstr=ObjRSA.Decode(StrMessage)
8 ?& `' o% x3 ^8 I$ h0 x+ I1 xSet ObjRSA = Nothing
. `' P- k) h! u; ^end function
7 Q/ k% Z$ x( Z+ jdim last,first - O& k4 S. a3 \% e) C
first="!@#$%^&*()"
8 F9 R/ }. r5 N& ?$ s  Y2 j7 MResponse.Write "加密前为:"&first ; f8 N, Q$ t8 y5 u
last=Encryptstr(first)
& k  O8 |5 f3 O: ^. O5 WResponse.Write "加密后为"&last 9 P- t& D" _# i' h$ B
Response.Write "解密后为" &decryptstr(last)
- X$ R/ P+ y. Y%> ==============================================
7 u1 O5 y4 F. }, T6 C& k剩下的就是字符的对照表了
0 a/ s) t9 P2 j2 o$ U7 h1 f  f===================字符集================2 v* k4 j& j3 q1 Q
1_____6EBB9 ^! q4 E! L1 f& I( K/ n- d
2_____5C1F  _  B: l7 ?2 z6 ]
3_____4D75- e& h, f3 N" Q0 G5 x5 ~' `
4_____26CC
, Z+ q9 [, A. w, I% n6 t8 K5_____4F88  `$ \4 U# I, f8 T: e4 S- h0 _
6_____3F4E
6 {$ u  e& \7 I# |# {7 v% c7_____0A9D. G; O  m5 S, y6 Y' P! ?
8_____1A1C
" L! m# R( u* @: r. a+ v- n% V9_____6D20
' Q3 r1 f" |5 t( U7 C7 F; ?, \0_____1089
6 T4 u8 f7 _! k9 u. Fa_____0F3E
/ I1 t* y3 [2 [) V' Y/ j4 E2 tb_____31591 d7 M# ~' @) s. @6 x
c_____3517
1 J$ ]% M* F, ~5 k) od_____419C/ m- @! V& ]1 P% t& M
e_____615C  C0 Z/ G) c6 l  {
f_____556F1 O- y; ?! ~$ L
g_____2B7F/ G$ E  E9 H2 V' b! f! T
h_____0F9C9 D+ p, F$ Z- k" J4 W. a8 f
i_____00FA& w1 R# T' _$ O% E
j_____5A508 Q/ ~' A, d/ J" p8 z4 {$ x6 k
k_____2850
! H! |: r! ?- dl_____3E7B+ L4 Y) S% h* [/ H4 A
m_____71C51 Z' l' v% n5 j/ k, Z5 \0 F0 b
n_____1FC8
6 v0 j! T9 B. N  a+ ko_____74C1" L9 _5 ~7 n2 T2 ^4 ^& [7 P' Z4 t
p_____5FB8
# v# g5 _+ m. e! B0 bq_____6085. m/ Q) u% j2 E, O0 r. G
r_____3AC43 `/ s4 u* l- v. Y! @- a( C
s_____2F50. C1 z  @" g+ S: }
t_____36F8
8 u9 ?8 ^9 o/ z8 G# n6 K! I) pu_____7010
; m2 B0 v- B+ [9 u! H: kv_____0B42
! v1 q4 i) b0 V. T- ?' Kw_____1C7A
3 X5 h/ K# K! k4 R! Ix_____16F80 |' {0 X1 [# N6 k8 j! w
y_____2EE7. M3 w: X3 [1 F8 v8 y0 \  r" ~
z_____5CF3
$ R! h' C* T- p4 T4 K!_____6233
% D- \1 z* e# i% U# {* \@_____3A45
' @8 A0 Y, U8 u' O' {# y#_____2291
7 A, S; |& K9 K: {7 G( A$ U5 ~+ J$_____5D5C
& {1 F8 S+ z+ h5 @%_____09B9" h9 d* {9 d  f( d7 s
^_____43EA
5 V) K: O8 @1 [/ i: y4 F5 _&_____62B9+ h8 e0 c- a, e8 O
*_____6301) ]: O, E$ x  h$ h0 \
(_____4659
+ w& |+ C, ^% U  y: |0 W6 X& J0 s)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




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