标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
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* U
6 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 y
Class clsRSA
: U% x" j3 q4 v9 F/ Y3 D0 ]- ]9 \
Public PrivateKey
% G8 m a( N9 T* r" b- t; X) I! g& T
Public 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* L
On Error Resume Next
( t9 g2 k' ?% M: Q: }( S
Dim lLngMod
/ I* w, T2 f7 R* i' ]
Dim lLngResult
& \0 |0 Q. |( p6 V( ^/ p# u# r
Dim lLngIndex
9 U! F1 L e1 t J
If pLngKey Mod 2 = 0 Then
& i) w' @9 A* h! v W
lLngResult = 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! O
lLngResult = pLngMessage
1 y2 Q' x! E% m& v9 C$ T8 n
For 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 W
End If
7 ]2 P6 S2 r) n' H4 T
Crypt = 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 g
Dim lLngEncrypted
/ r# M" R% w/ N7 }: \) q
lLngMaxIndex = Len(pStrMessage)
) ^0 y! P8 T; S; @6 U* Z
If lLngMaxIndex = 0 Then Exit Function
: p" F4 ?, Z% U$ O) u5 u/ v4 ~
For lLngIndex = 1 To lLngMaxIndex
- h3 W B" x3 H% z
lBytAscii = 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% a
Encode = Encode & NumberToHex(lLngEncrypted, 4)
: b4 t, `+ J$ v) f& F6 @5 \
Next
4 w3 L9 F) [! H$ c: T
End Function
- s* n0 E9 n8 X8 ~+ W- I
Public Function Decode(ByVal pStrMessage)
: v# ^3 K# }- n* ^8 i6 K7 |) `4 J0 d
Dim 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 j
Decode = ""
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 y
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 E8 h; \# V$ x; H' N
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ | l2 s% p- B% M# M* R
Decode = 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/ B
End 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 o
Dim LngKeyD
+ y4 o1 V! t% r3 u8 G0 K0 p/ u
Dim LngKeyN
7 g- f# a5 K' q- G' S% K
Dim 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 t
LngKeyD = "20643"
0 g9 M0 T7 K" n/ B; q' Q/ s$ a
LngKeyN = "29893"
, S1 V. U' G4 {- a
StrMessage = Message
+ h4 R1 [, A! j* D1 o7 R4 m K2 U6 _7 @6 U n
Set ObjRSA = New clsRSA
4 [& Q- B# _; k8 d! N4 Y5 x% c+ p
ObjRSA.PublicKey = LngKeyE
Z O* o6 P; E \! @
ObjRSA.Modulus = LngKeyN
; u. S! A1 X% b
Encryptstr = 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* z
Dim LngKeyE
5 w# F3 r; k1 @; P
Dim LngKeyD
]0 D# @& Q! ]- f4 L. v
Dim LngKeyN
+ W& L* |3 x/ {" j2 L
Dim 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: ^! y
StrMessage = 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/ P
ObjRSA.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! J
Dim LngKeyE
+ o2 z2 U( U* o+ L; o
Dim LngKeyD
; ~: }, o y5 e! |9 `9 q* @
Dim LngKeyN
6 w3 f* P; `# C# P, R7 `% ~7 \- S
Dim StrMessage
! w* M2 H' o2 z4 E
Dim ObjRSA
( `$ J4 ?: I) }( c' x3 X0 Q6 T# J
LngKeyE = "32823"
0 }8 o, X2 j. _% O* O
LngKeyD = "20643"
& w3 O& Z) H, Y: J! y
LngKeyN = "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. {; A
ObjRSA.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. O
end 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, G
Dim LngKeyD
$ O5 j: R# t- j3 D+ X
Dim LngKeyN
( u7 I( a6 ^* J# J
Dim StrMessage
: v; x2 W& H5 p1 a; ]
Dim ObjRSA
% g- w( j/ V7 G; B* e% \: D6 _! e3 A
LngKeyE = "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 e
ObjRSA.Modulus=LngKeyN
3 \, U7 {2 j8 ^" z
decryptstr=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. D
dim last,first
+ [! P) L7 n' x. N
first="!@#$%^&*()"
* u, d. q- d* H8 I3 U+ w8 q1 I
Response.Write "加密前为:"&first
: a. `* V- ]; W$ T; r# E/ F/ \
last=Encryptstr(first)
' {7 D( A. |8 O
Response.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$ J
2_____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 q
8_____1A1C
% ^4 x$ c _6 h6 J' h. j
9_____6D20
7 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- q
c_____3517
( U4 U2 R3 T3 U
d_____419C
) e8 L% F- P- n- O: \
e_____615C
u/ W9 e% l1 W; g1 n
f_____556F
* m6 r& ]! y8 O* q" @
g_____2B7F
/ Z0 i5 X: W% L1 [& g8 ?8 o
h_____0F9C
4 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$ L
o_____74C1
( i8 s- [ Z( U: e8 T& V
p_____5FB8
7 j. U6 z" U! i" q
q_____6085
& [5 j7 V+ @( s2 v1 t
r_____3AC4
7 ?( u( I7 |- W: K$ H( M
s_____2F50
8 g; {5 K1 n! z
t_____36F8
; P' S( ]. N5 M0 U- O+ t2 u" M6 c
u_____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; S
y_____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% @, @
&_____62B9
8 D5 U, t/ q+ ]6 n
*_____6301
9 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