Board logo

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

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
3 O* d5 f9 o( z0 u原始出处:http://www.3ast.com.cm# d: h7 b  Q1 K! m

/ H# P( ?5 D# Q' `' C0 o  _看不懂的直接绕过8 t( Z5 ^3 v( s+ `' k
加密前为:hwy123456
# V# t5 v, e4 m3 @" O加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
. _' j1 w/ C  F* U6 I4 ^9 o+ H3 p5 V
============================================$ B) P; W2 H& \( r: v+ x
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
3 J8 i8 U( O9 P7 s6 x* z也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法" b, c6 Y, o" s  U# {' \
以下是RSA算法文件5 W' U, W0 [) I( [) @; C  r

6 A* J, y0 ?; v( d4 u; M文件名RSA.ASP
$ T0 F+ o! S9 p' w; f- o6 r===============================================
5 f: P0 i7 u/ V; ~# |. G<%
- Q) L) J# u7 z  u7 yClass clsRSA : U% x" j3 q4 v9 F/ Y3 D0 ]- ]9 \
Public PrivateKey
% G8 m  a( N9 T* r" b- t; X) I! g& TPublic PublicKey   D6 j" R/ n& V- [
Public Modulus ( W: N4 m! I9 w" |  J5 j# {# B
Public Function Crypt(pLngMessage, pLngKey)
+ x. K& H  B& E; D* LOn Error Resume Next
( t9 g2 k' ?% M: Q: }( SDim lLngMod / I* w, T2 f7 R* i' ]
Dim lLngResult
& \0 |0 Q. |( p6 V( ^/ p# u# rDim lLngIndex
9 U! F1 L  e1 t  JIf pLngKey Mod 2 = 0 Then
& i) w' @9 A* h! v  WlLngResult = 1
6 E' D; ^0 v7 J+ {For lLngIndex = 1 To pLngKey / 2
2 t3 R2 y7 X) O6 X, [lLngMod = (pLngMessage ^ 2) Mod Modulus ( }# i# g/ O* z6 o; D
' Mod may error on key generation , w. Z3 Q+ Y6 |- j3 Y9 ]
lLngResult = (lLngMod * lLngResult) Mod Modulus / W5 `/ R$ w& E. w" V; s
If Err Then Exit Function - D0 Q7 |" Z* m
Next 1 H5 D5 Y2 O. X- n# r; x  T
Else
/ G5 h- o8 M8 c! OlLngResult = pLngMessage
1 y2 Q' x! E% m& v9 C$ T8 nFor lLngIndex = 1 To pLngKey / 2 7 ]* @- j! `- e1 G
lLngMod = (pLngMessage ^ 2) Mod Modulus
* l  Q1 j9 c  [9 ^2 x, ^On Error Resume Next
% L& r0 W! Z5 h6 H+ T% T4 x' Mod may error on key generation
- d7 a" e3 {- V7 C" _lLngResult = (lLngMod * lLngResult) Mod Modulus 3 ?" }/ q: }- g- y9 v+ M# O
If Err Then Exit Function & r% S( q" N! K$ A
Next
! |" F  o+ S5 r3 WEnd If
7 ]2 P6 S2 r) n' H4 TCrypt = lLngResult ) P) @+ P* j7 @; Q) ]2 k9 u
End Function% i4 k' W& @/ x
0 c' A6 ?3 o/ d
Public Function Encode(ByVal pStrMessage) # G/ h$ F# Z: i4 `, ^- r4 w
Dim lLngIndex 3 L- a0 f4 W, h0 b% w7 B3 w
Dim lLngMaxIndex ! E' H4 V0 V8 M$ t7 V. {: W
Dim lBytAscii
& |9 K, z; U0 }6 x. @& E9 gDim lLngEncrypted
/ r# M" R% w/ N7 }: \) qlLngMaxIndex = Len(pStrMessage)
) ^0 y! P8 T; S; @6 U* ZIf lLngMaxIndex = 0 Then Exit Function
: p" F4 ?, Z% U$ O) u5 u/ v4 ~For lLngIndex = 1 To lLngMaxIndex
- h3 W  B" x3 H% zlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ; s- Q7 T& C, C% Q/ h1 {7 [/ i9 W
lLngEncrypted = Crypt(lBytAscii, PublicKey)
! ~- k! n. H' v4 N) ^; e( X% {6 U% O1 j% aEncode = Encode & NumberToHex(lLngEncrypted, 4)
: b4 t, `+ J$ v) f& F6 @5 \Next
4 w3 L9 F) [! H$ c: TEnd Function
- s* n0 E9 n8 X8 ~+ W- IPublic Function Decode(ByVal pStrMessage)
: v# ^3 K# }- n* ^8 i6 K7 |) `4 J0 dDim lBytAscii 0 k. A, U( x/ l9 ?: ~" R
Dim lLngIndex ( Y. g. T; P* w% U
Dim lLngMaxIndex $ j1 O1 M& T: T1 V7 k: N( U
Dim lLngEncryptedData
1 T. b$ a" m, l4 i2 jDecode = "" 3 C' @: N/ d8 ^" J: Y- e: j
lLngMaxIndex = Len(pStrMessage) " A) v- W- X3 R& W% i- V7 z
For lLngIndex = 1 To lLngMaxIndex Step 4
1 T# f+ e5 F: {6 ylLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 E8 h; \# V$ x; H' NlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ |  l2 s% p- B% M# M* RDecode = Decode & Chr(lBytAscii) 3 `' G8 T! L1 f2 c4 J- ^# w5 i' c
Next 8 X4 v0 B: J* I( S
End Function # s0 c, m2 l7 {5 p; `5 B
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ; |$ R4 @1 E' f$ ^5 h! B
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( _( R" W- z  X" y/ BEnd Function ( G' c- }2 P7 v7 ?7 E* {
Private Function HexToNumber(ByRef pStrHex)
# B- E; {9 i. ~# l9 P5 Z) u' {HexToNumber = CLng("&h" & pStrHex) , W! M7 N0 Y( L
End Function $ x* ]4 C; b% N' @7 S) p
End Class ) b; W6 A; s( `% ?9 f
function Encryptstr(Message) ) ^8 z' b# n) K+ V6 u4 a
Dim LngKeyE
2 O) T+ m2 r6 m6 oDim LngKeyD + y4 o1 V! t% r3 u8 G0 K0 p/ u
Dim LngKeyN
7 g- f# a5 K' q- G' S% KDim StrMessage 0 G+ t& e1 C* ]3 F5 u1 r
Dim ObjRSA ( z0 i( }! C& \6 j) r1 G, P  n2 @
LngKeyE = "32823"
! e  R# [9 e1 L% }8 X6 tLngKeyD = "20643" 0 g9 M0 T7 K" n/ B; q' Q/ s$ a
LngKeyN = "29893"
, S1 V. U' G4 {- aStrMessage = Message
+ h4 R1 [, A! j* D1 o7 R4 m  K2 U6 _7 @6 U  nSet ObjRSA = New clsRSA
4 [& Q- B# _; k8 d! N4 Y5 x% c+ pObjRSA.PublicKey = LngKeyE
  Z  O* o6 P; E  \! @ObjRSA.Modulus = LngKeyN
; u. S! A1 X% bEncryptstr = ObjRSA.Encode(StrMessage) 0 E  Q# v! w. }
Set ObjRSA = Nothing
9 ?$ _# O7 ~" \+ d2 W- ?end function, D  U- ?$ z$ x9 |6 p: q
Function Decryptstr(Message)
" z$ A5 A( ~. ]5 d* zDim LngKeyE 5 w# F3 r; k1 @; P
Dim LngKeyD
  ]0 D# @& Q! ]- f4 L. vDim LngKeyN
+ W& L* |3 x/ {" j2 LDim StrMessage 9 Y$ C, d" j0 I$ x2 u3 @
Dim ObjRSA / v3 W; F' k. U. Q1 W% n
LngKeyE = "32823" / L7 q" n. _: [' x9 c4 K) h; T
LngKeyD = "20643" . k6 A, j8 _7 J+ i5 w
LngKeyN = "29893"
& P: y/ |5 ~! n# S5 S: ^! yStrMessage = Message : D0 M; m& Z. N3 x0 F) a8 k
Set ObjRSA = New clsRSA
. ]2 S; [3 D# I7 e9 g# _ObjRSA.PrivateKey =LngKeyD
, Y" v' T* h' w/ PObjRSA.Modulus=LngKeyN ' [6 _1 D# f1 b, I. r
decryptstr=ObjRSA.Decode(StrMessage) $ |7 c' j6 \) h
Set ObjRSA = Nothing # T: Z( G+ U5 n" A
end function
2 D) G) @$ e8 t3 I: ]%>
$ e3 F8 p! |' }4 t; J  N===============================================% ?+ d8 w2 y$ Z3 U9 k
! v; r; u" X- u$ P! m6 ]- v+ B- X
还有一个用于测试这段代码的test.asp
, C" d2 H( B# O" M9 r, U有兴趣的自己搭建个IIS测试下1 N6 ]1 m( n/ f
<!--#INCLUDE FILE="RSA.asp"--> / Y( t1 O* ?" f9 c
<%7 J5 u- X# q- g0 Y
function Encryptstr(Message)
8 N: G9 r$ j4 e" E( ?3 Z! JDim LngKeyE
+ o2 z2 U( U* o+ L; oDim LngKeyD ; ~: }, o  y5 e! |9 `9 q* @
Dim LngKeyN
6 w3 f* P; `# C# P, R7 `% ~7 \- SDim StrMessage
! w* M2 H' o2 z4 EDim ObjRSA
( `$ J4 ?: I) }( c' x3 X0 Q6 T# JLngKeyE = "32823"
0 }8 o, X2 j. _% O* OLngKeyD = "20643"
& w3 O& Z) H, Y: J! yLngKeyN = "29893" - D% ?. y3 b2 a' k9 u
StrMessage = Message
+ D4 D6 X; h: b: y2 _Set ObjRSA = New clsRSA
3 O$ p$ d6 A0 j9 ^3 E. {; AObjRSA.PublicKey = LngKeyE
2 J9 P4 x) f" D2 w" m  i4 ?ObjRSA.Modulus = LngKeyN , P+ E1 t9 l$ n9 w1 l
Encryptstr = ObjRSA.Encode(StrMessage) 9 F& R' H" M9 H- V
Set ObjRSA = Nothing
3 R; g$ j6 h9 Y/ y. Oend function 0 b8 A1 O* _: C( W8 I! G) C. \$ ]! A
function decryptstr(Message)
1 V8 x  U; [/ O9 W2 L' ]( `Dim LngKeyE
6 G- p/ t4 A, GDim LngKeyD
$ O5 j: R# t- j3 D+ XDim LngKeyN
( u7 I( a6 ^* J# JDim StrMessage : v; x2 W& H5 p1 a; ]
Dim ObjRSA
% g- w( j/ V7 G; B* e% \: D6 _! e3 ALngKeyE = "32823" & w0 a4 n. j3 p
LngKeyD = "20643" / G- B3 y8 P6 z2 R: N
LngKeyN = "29893" # L- A2 W- x0 E2 {; r. ~& h
StrMessage = Message 7 r# h* h8 S/ W
Set ObjRSA = New clsRSA . r: V. k- X- [! G8 H
ObjRSA.PrivateKey =LngKeyD
; ]1 |5 y9 d. F  eObjRSA.Modulus=LngKeyN
3 \, U7 {2 j8 ^" zdecryptstr=ObjRSA.Decode(StrMessage) 5 e0 w2 a$ q& Y9 Z: y  g
Set ObjRSA = Nothing $ @2 O( ]: b$ ^. S1 y4 i# G" k
end function
5 l' p8 P2 }% P. Ddim last,first + [! P) L7 n' x. N
first="!@#$%^&*()"
* u, d. q- d* H8 I3 U+ w8 q1 IResponse.Write "加密前为:"&first
: a. `* V- ]; W$ T; r# E/ F/ \last=Encryptstr(first)
' {7 D( A. |8 OResponse.Write "加密后为"&last 2 c/ d1 y$ _: c! P$ E9 P# Z  A
Response.Write "解密后为" &decryptstr(last)
7 e8 i% w9 T- Z  ?% Z* t( U; k%> ==============================================1 S- X8 C# K) d
剩下的就是字符的对照表了- f: N$ V# C3 I) @& o
===================字符集================, P4 [3 I" o- R1 H, O
1_____6EBB
8 ^+ d; q; ?7 w& Z$ J2_____5C1F& G+ w+ g6 {1 |
3_____4D75" n# x/ [  W- o9 T# J
4_____26CC
: X, o$ X1 l; M  p! q  t2 {5_____4F88. h3 Y7 a$ A1 g: o$ o" |
6_____3F4E
3 s1 y' k& c! M$ t* @% i& z+ _7_____0A9D
5 X9 \& M: J! M3 ~9 a2 U  C  q8_____1A1C
% ^4 x$ c  _6 h6 J' h. j9_____6D207 y/ {! m# `2 V, W
0_____1089
- v& k2 x5 B2 z: ]a_____0F3E* D' g: \/ A  I3 N$ D# P  Q, ?
b_____3159
/ f5 X+ l. M4 ]8 {; N. l- qc_____3517( U4 U2 R3 T3 U
d_____419C
) e8 L% F- P- n- O: \e_____615C
  u/ W9 e% l1 W; g1 nf_____556F* m6 r& ]! y8 O* q" @
g_____2B7F/ Z0 i5 X: W% L1 [& g8 ?8 o
h_____0F9C4 O$ Y; A' R' Q1 s* `& t# c3 B
i_____00FA* H% g0 N1 w3 q7 d3 c
j_____5A50- o0 d& f. Q0 g# \4 A7 I4 D
k_____2850: v! w- K: j3 R
l_____3E7B. K2 S! `; s! E7 i  G
m_____71C5+ x& o' L( \3 C! h9 F
n_____1FC8
- n' g9 c/ @4 w" n! Q$ Lo_____74C1
( i8 s- [  Z( U: e8 T& Vp_____5FB8
7 j. U6 z" U! i" qq_____6085& [5 j7 V+ @( s2 v1 t
r_____3AC47 ?( u( I7 |- W: K$ H( M
s_____2F508 g; {5 K1 n! z
t_____36F8
; P' S( ]. N5 M0 U- O+ t2 u" M6 cu_____7010
+ F8 a, y  |8 \: [' v  K  ]) G8 `v_____0B42) X/ d3 N( C7 k8 r5 W( x; W
w_____1C7A# v7 r8 T$ ~# Q
x_____16F8
! N" }$ D, z- X/ O/ j0 r7 t8 i; Sy_____2EE7
6 b/ {- d3 A/ B' D) ^z_____5CF3
, ]  W  b8 {+ ?3 p- F( z!_____6233
/ V0 w5 d. ^: y3 x2 b& B7 t@_____3A45
1 u1 G, s4 Y5 p#_____2291
# J! O  f' a# N9 K$_____5D5C
; V' `, O3 d9 W, H" X# \8 Y%_____09B9
' l. L" j+ t/ c5 f) M7 t^_____43EA
# B- N3 D4 i, L% @, @&_____62B98 D5 U, t/ q+ ]6 n
*_____63019 c- S7 I- u. {8 s( y* o' f, l
(_____4659
0 M' Q2 v, n6 `/ i)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




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