Board logo

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

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm( G( p% u0 R* y* T2 Y
原始出处:http://www.3ast.com.cm/ `& m, p# _$ T; a3 w' F: [
: z" z! ?+ ^% Y5 u4 @3 p
看不懂的直接绕过( l! ^1 r+ q; d) o4 K* H
加密前为:hwy123456
) L# z2 R9 t' e# j加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E3 u; K0 K! L; D2 R
- [0 Q1 ]8 g2 k2 d1 p, K* n
============================================* a6 N0 g9 ]5 h2 Q# `
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
3 Y* R' N' S" j7 q; O2 y$ c0 y' K4 r: X9 A也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
. v2 G/ j$ L7 P' p) h以下是RSA算法文件
# F  w4 b8 o, r" _  ^+ Q  s! i5 h5 F, H  H2 P# H# e9 o8 k
文件名RSA.ASP
. z% y2 j* D! ?. C6 J6 `& A5 S6 k===============================================0 w1 q9 b( b+ r, B& L& `- U2 L
<%
% [. t3 x& ?9 ~5 l9 RClass clsRSA & g0 T, L' z. I, s' V
Public PrivateKey
/ g. j$ q' j7 K: P/ v1 C! L! zPublic PublicKey $ [% w& w; l- e6 c
Public Modulus
8 Z0 n, k4 Q9 i$ S; EPublic Function Crypt(pLngMessage, pLngKey) ' ]- E+ _" K+ d
On Error Resume Next + Q6 f1 W6 G, A% j9 K! t* `; I
Dim lLngMod
1 H: g& k3 a9 z4 DDim lLngResult
- }2 Y& ~) c$ [# T. Z$ F' ADim lLngIndex
1 {1 E' n9 N" u6 Q- x  i) bIf pLngKey Mod 2 = 0 Then % x" v: X7 M7 ~4 ], w5 s* K
lLngResult = 1 : F/ R7 s) H+ b/ B
For lLngIndex = 1 To pLngKey / 2
$ W& S- N- j6 HlLngMod = (pLngMessage ^ 2) Mod Modulus * L  i' C, y5 D% L
' Mod may error on key generation & d" m: `5 n* d  {6 }! ?
lLngResult = (lLngMod * lLngResult) Mod Modulus
9 }# ~+ \1 \& o0 s& {8 Z' m, h4 q4 kIf Err Then Exit Function
2 h5 S# F0 L$ n6 T4 }, C/ [: hNext
2 w. C; B( I+ a1 j3 `Else
4 H6 |% ?# r6 u) {lLngResult = pLngMessage 4 S+ `6 \/ ^5 Z5 q1 }  ^
For lLngIndex = 1 To pLngKey / 2
+ X! ^& p% \* o4 E7 AlLngMod = (pLngMessage ^ 2) Mod Modulus * [% A5 c* P2 F" s$ [0 h/ C
On Error Resume Next 3 _( \8 r9 }: ]1 G3 m- ^" w
' Mod may error on key generation ) ^1 @& R3 Z2 \; ]7 r
lLngResult = (lLngMod * lLngResult) Mod Modulus
+ }$ ?6 K1 E' @; v& wIf Err Then Exit Function
& o0 e4 |7 a% c: `% G. SNext
+ s/ C( D* ^& a; q2 |End If , f- W- K9 \1 L! s3 X  p$ d
Crypt = lLngResult ( d% q1 P  D7 G. A- G* t8 K4 n2 @
End Function* v% u& E# s( J6 o& c
; w" a+ _; x5 X5 \
Public Function Encode(ByVal pStrMessage) 2 k, T; l- R0 K! a% i- w1 l
Dim lLngIndex " R+ [$ T" P6 K/ J
Dim lLngMaxIndex + {5 \- b9 O/ v1 C9 D# p1 J  q2 A
Dim lBytAscii
2 e% d6 r6 q- {6 m/ bDim lLngEncrypted 0 d% l1 D8 K) N; z
lLngMaxIndex = Len(pStrMessage)
! B3 Q. g5 S0 w! RIf lLngMaxIndex = 0 Then Exit Function
1 d' c! x7 }4 z8 Z0 QFor lLngIndex = 1 To lLngMaxIndex
- w9 m) ^! H9 ZlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) : v) t" C3 d1 p+ c, p# J5 m4 _- |
lLngEncrypted = Crypt(lBytAscii, PublicKey)
2 W: S1 f& E/ x/ E/ |- KEncode = Encode & NumberToHex(lLngEncrypted, 4)
1 r( e% ]0 R" t$ Z* ANext $ L3 e7 ~3 `" V
End Function " F! W: p  g- {7 [  [$ i% m4 B
Public Function Decode(ByVal pStrMessage)
2 H! L! J5 K/ J' fDim lBytAscii 3 e6 w6 G/ N7 D/ ^
Dim lLngIndex
$ x. d9 J( u& U; xDim lLngMaxIndex
) P  V% M/ t) T  F  U* ^* x' ZDim lLngEncryptedData
! Q% f+ \* S6 G. Y- NDecode = ""
5 _$ i: Y; r9 Z* dlLngMaxIndex = Len(pStrMessage) $ W6 p3 k! K5 Y2 _9 r8 Y
For lLngIndex = 1 To lLngMaxIndex Step 4 1 u8 y% Z; n1 y& |& c+ P
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 U5 l* N7 W6 O- \  e4 t
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 g" h' u- J& X6 \8 A( w+ `4 L* q
Decode = Decode & Chr(lBytAscii)
' r9 O9 a" x# _" ?6 NNext
* `7 b% ]4 ?9 d* J" pEnd Function 7 B, `# E2 f4 p; e  a7 L
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
6 `* A+ ?' j5 t- M5 M! a1 ?NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 9 K( I% ~4 I1 S" P
End Function 6 `, d4 d, Z% t6 u1 b1 j' K
Private Function HexToNumber(ByRef pStrHex)
* A3 Y. a$ d5 f" u1 k" \HexToNumber = CLng("&h" & pStrHex) 7 ?9 v. C" l; Z: x
End Function ( B; u2 h" o# W( s  l! T/ L
End Class - {0 c/ s1 E! k' I* W
function Encryptstr(Message)
3 w$ u! L+ s2 lDim LngKeyE . M9 Y. W: d- x% W+ q) [! x
Dim LngKeyD
) Q5 @( j; I! N2 }- |4 Y- tDim LngKeyN
  Z2 i& r1 g  lDim StrMessage
3 X7 |3 F/ W. H; J1 ?Dim ObjRSA
  K0 w: x, v' L, o4 ]+ sLngKeyE = "32823" 4 f, ?. b& \, I+ B* O& T. @( j" n# b5 L
LngKeyD = "20643"
; L, d; h. H. L4 ^/ dLngKeyN = "29893" 7 d1 T' J+ I4 \- S
StrMessage = Message & m4 G3 I* D$ g  G3 ^
Set ObjRSA = New clsRSA " X7 _; ~# n  _( n
ObjRSA.PublicKey = LngKeyE ' d  J+ l- W1 N+ W
ObjRSA.Modulus = LngKeyN   J4 M3 E1 n5 k
Encryptstr = ObjRSA.Encode(StrMessage)
" L( M" K% x* {. ]# H8 dSet ObjRSA = Nothing $ x! l4 c' L& O: T$ k; B: W0 @1 M
end function
2 r8 p7 O% w5 E8 |( s# `Function Decryptstr(Message)
+ T. M; w. _; f" vDim LngKeyE 6 |- ?' U& M: O6 J/ j5 H
Dim LngKeyD , ?7 J% n+ ]% F- j5 e* l1 C
Dim LngKeyN 7 O+ Y+ y* k9 b1 h' V& z
Dim StrMessage ( `$ [# X( \1 f) B* I/ g( N
Dim ObjRSA   y8 f1 l4 n5 S& j, @
LngKeyE = "32823" * y6 M; @! T7 x0 i0 Z) A
LngKeyD = "20643" 0 y! J9 w5 U9 m
LngKeyN = "29893" 8 \2 y! u. Q; a  V' i
StrMessage = Message 9 [. W; W# a# i" L* h3 n: v
Set ObjRSA = New clsRSA 5 R, n, i4 @* j: ^  M  C
ObjRSA.PrivateKey =LngKeyD 6 w, b2 |" |8 a# I  x1 g, }# ^0 q
ObjRSA.Modulus=LngKeyN ( }! m( J& ~) m( S
decryptstr=ObjRSA.Decode(StrMessage) 3 M9 p2 f9 D7 r, }' I3 {; p
Set ObjRSA = Nothing / d" z# }9 G) t/ ]3 c) }
end function   A. P! T- ]% z- E8 U
%>
4 X3 \7 e4 |5 j2 R6 Z===============================================
' o- T. _, b3 p, @, w+ D
; u1 |9 |( A' z. v. S/ e) R还有一个用于测试这段代码的test.asp
2 j" A# u. o. S3 _7 F有兴趣的自己搭建个IIS测试下: z  N2 ?! k) ]7 ^% u4 c
<!--#INCLUDE FILE="RSA.asp"--> " i% d$ \: [# n1 e
<%* a  w* B& F( h7 i6 }8 t
function Encryptstr(Message) $ l8 o/ v: [# D% f, w  A
Dim LngKeyE
: M5 x$ R# o0 A: PDim LngKeyD
3 Z) x6 `* e6 YDim LngKeyN % {0 c7 G( k/ O+ G. X
Dim StrMessage ' ~5 `' Z0 |9 Z) K: Z
Dim ObjRSA
, H0 C9 a: k1 O  J9 m$ ELngKeyE = "32823"
/ r# ]9 E# _8 h* oLngKeyD = "20643"
( @/ U# J1 W4 i0 q. t/ aLngKeyN = "29893" , |# U" A, E$ s
StrMessage = Message
  i" K  Q- H& Q0 QSet ObjRSA = New clsRSA
. u, t' [) Q0 p+ m1 \, |$ C$ lObjRSA.PublicKey = LngKeyE 9 y$ F5 T( C( z6 ]1 B5 F
ObjRSA.Modulus = LngKeyN & I' {' L" J( r, |4 g$ l
Encryptstr = ObjRSA.Encode(StrMessage) % O, s+ d0 v# _$ t+ q7 k
Set ObjRSA = Nothing
8 b) I. l9 J) D9 k  K9 tend function
- _' t5 d. {# M3 d& U$ Qfunction decryptstr(Message)
. i% E" w  k! f: K" w, aDim LngKeyE
% x$ q) {" g. CDim LngKeyD $ T  y6 w) K- [0 s
Dim LngKeyN ! M% d# G8 O4 u" Q( J1 K( d
Dim StrMessage 9 o8 O$ g) N& Z  R# v: r9 ~- R) N: Z
Dim ObjRSA
6 |1 V7 d# u3 w! w6 ALngKeyE = "32823"
$ P4 o$ t6 o6 e! L' NLngKeyD = "20643"
9 [4 S: }1 O2 O$ x; P, TLngKeyN = "29893" : j2 o: c0 ^  U6 {
StrMessage = Message + i8 O# P( ]- ~4 ]# ?5 V
Set ObjRSA = New clsRSA 2 W6 e* P" O0 F  s" u
ObjRSA.PrivateKey =LngKeyD
& N; ^, z) K4 ^4 Z8 f/ {ObjRSA.Modulus=LngKeyN
$ C5 d7 _1 m- q. I1 N5 f( Odecryptstr=ObjRSA.Decode(StrMessage)
  w+ X2 o/ D; V' `. TSet ObjRSA = Nothing
) r2 ^& a: B# Y$ iend function   w- K! v) A- g; V* f: ]; m
dim last,first
3 ~" [) G4 S- a* x0 _first="!@#$%^&*()"
# [5 |1 `1 B8 ~7 C: M% sResponse.Write "加密前为:"&first
- f: ^1 A. b0 Y+ F& Ylast=Encryptstr(first) 8 s" g+ w5 k; J; z! w4 r
Response.Write "加密后为"&last
& b/ @4 o) _5 QResponse.Write "解密后为" &decryptstr(last)
. w6 G. ^1 {4 b+ R" N%> ==============================================
6 }& ^# [3 z' j5 C# h7 z; v剩下的就是字符的对照表了5 U/ r8 o# i  E3 J7 [
===================字符集================1 y* F; E& A. w& |4 _6 D3 L
1_____6EBB
0 V0 ^7 A$ [7 f% O& a7 c2_____5C1F
+ K8 M$ Q4 [/ D' Z0 u7 C1 s3_____4D75
2 \' K0 L+ X; Y4_____26CC
2 |- i% k( e4 {: {. W0 d$ y5_____4F88
: Y' g; n3 _9 x6 @: j6 U5 y6 A  N6_____3F4E) k; l& X2 a7 d) F' q' _
7_____0A9D( g' h- \: W( P4 C: x
8_____1A1C4 N: Z& Z1 E/ ~5 m& y6 R6 N( s. r
9_____6D20; @/ T& B7 t: n; q" A
0_____1089
: M! h' f5 A# I6 ^a_____0F3E; U8 Q/ f& r3 }5 y
b_____3159
/ W/ ]) w; i* ?/ {+ dc_____35171 C* W7 D) U% a0 s3 j0 p# P& v
d_____419C& @* q: i2 a. V: H3 H5 F" G
e_____615C1 N7 g. h2 X0 I; G6 q( E. C- K
f_____556F
" V$ B) a/ P7 C; N: S  ~g_____2B7F% ]( A2 b& ?) E: _  c/ E
h_____0F9C
; @- o" t2 E! h" J3 n: q/ l  xi_____00FA" f! _& ?4 L# h, {. g
j_____5A50, C4 j$ p1 ^( d9 R8 B
k_____28500 Y% j* n# t8 Q7 Z
l_____3E7B" Q. i2 [& N& |
m_____71C5
& c7 |; X  b: Kn_____1FC8
' M$ [  x5 y7 Eo_____74C1
1 c" V9 V0 Y) D8 V+ Y( V7 {, m8 tp_____5FB8) ~8 I- R! C4 P- \: b
q_____6085) \7 Y0 m2 P/ e' p% e
r_____3AC4' i. a% x4 R4 \" e
s_____2F50
# z6 b+ J. R" u  ?- @t_____36F8, i" d  p) y1 _9 H
u_____7010
8 e+ r; d, G0 X9 `v_____0B423 f3 j5 I0 Y3 ?# V4 S5 w6 G7 M
w_____1C7A' ~- X7 a+ ~1 W8 W$ v
x_____16F81 t. ~" a: s3 Z
y_____2EE7: n; J# Y/ F, @& M4 ~
z_____5CF3
* I9 h0 A4 G0 K+ @!_____6233. t% k: K4 t/ z  R6 x9 [
@_____3A45
+ s& h  p/ f7 ~1 N! N7 ~+ f6 V#_____2291
; }; K0 e/ w' `# r- ^1 g$_____5D5C
: K" H: c) g) @$ k: A* ]%_____09B9
. p/ G8 b/ e5 d2 Z$ Z^_____43EA  X5 V' v* [8 b! ]/ j  b
&_____62B9
. Q8 k* T+ T$ p*_____6301# t7 c4 I6 t0 n, |1 {' I: j% f
(_____46596 o! J* n. v  n5 m% B
)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




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