标题:
[原创文章]
关于国内某知名大学网站加密算法的研究
[打印本页]
作者:
柔肠寸断
时间:
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. n
Class clsRSA
% N' @' k) u! A) Q% z* {
Public PrivateKey
' m3 f5 q" A& }6 v/ ~% N
Public PublicKey
- S+ [6 P3 Y( E; b
Public Modulus
$ k9 E6 A; @& X- n* B
Public Function Crypt(pLngMessage, pLngKey)
, C/ D3 ?. [: ^4 \7 r9 x
On 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$ y
lLngMod = (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 Q
If Err Then Exit Function
3 Q) A) V: C/ H
Next
, Q0 E) B0 \& M* |9 f! {
Else
8 Q6 v* H1 ^7 p V. w
lLngResult = pLngMessage
7 K" X, q5 i- _4 p$ a* Z
For lLngIndex = 1 To pLngKey / 2
3 c4 O2 V4 v9 J0 N5 x. e
lLngMod = (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) Y
lLngResult = (lLngMod * lLngResult) Mod Modulus
% T7 t% @' q' x9 l2 t
If Err Then Exit Function
2 ?- `! D9 R& [0 ^. k! c' Z
Next
! 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 Function
9 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/ l
Dim 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! Y
lLngMaxIndex = Len(pStrMessage)
) ? W1 o' e& V" H
If lLngMaxIndex = 0 Then Exit Function
8 W* U2 M4 Q$ q. d1 f# Y& h
For lLngIndex = 1 To lLngMaxIndex
# j3 I l' ~" D: }
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
# T5 S j) }9 q0 q
lLngEncrypted = Crypt(lBytAscii, PublicKey)
+ b! f8 y, k6 n( J
Encode = Encode & NumberToHex(lLngEncrypted, 4)
4 U1 z( Q0 G$ ]8 @2 L
Next
% 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: F
Dim 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. N
lLngMaxIndex = Len(pStrMessage)
& [) [) @8 Y( Y. U: r+ o j
For lLngIndex = 1 To lLngMaxIndex Step 4
* V. a/ |* M) R3 R! G" s" T! b
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
( l2 c) J% j* A, V. g+ O6 g
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
+ m" D+ r Q4 ?2 |$ I/ S. ^
Decode = Decode & Chr(lBytAscii)
2 u4 `- F2 f3 H( c3 z- q
Next
9 U, t8 i5 a' K, ]& n" n
End 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 G
End Function
$ F7 Y' n9 o+ D0 M8 L- s% m
Private Function HexToNumber(ByRef pStrHex)
( Y( P/ A$ f2 D6 y
HexToNumber = CLng("&h" & pStrHex)
' i1 W' `4 a" e' i
End Function
8 \, K: t$ a. |% t* o
End 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 l
Dim 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 O
LngKeyN = "29893"
- Q% G; L9 C; }: ]+ O! |) f' c; H
StrMessage = Message
$ h# E( j: a( o! a6 }2 a
Set ObjRSA = New clsRSA
7 u9 ^+ ?# J# w$ Z# m# O
ObjRSA.PublicKey = LngKeyE
6 K$ s, l8 [/ S, L% x
ObjRSA.Modulus = LngKeyN
2 }; m. V% Y$ T/ }3 m
Encryptstr = 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 g
Dim LngKeyD
+ a- g2 F& a1 q- m/ |
Dim LngKeyN
6 }4 r* ?; w4 B& A6 \+ O
Dim StrMessage
% s- k a5 L2 D
Dim ObjRSA
) r& O" o" z7 n) C
LngKeyE = "32823"
6 n/ t& R. S3 A* O
LngKeyD = "20643"
' K- m9 q6 v* i7 g t% I. O
LngKeyN = "29893"
, K: m+ M) x* l& T; a/ m5 s
StrMessage = Message
+ ]$ f% H) t3 s3 Q6 s
Set 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' j
ObjRSA.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; @* S
0 [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 W
Dim 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* `$ G
LngKeyN = "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# c
end function
+ P4 Q+ c) x! D# r$ y/ l6 @
function decryptstr(Message)
( j( }& n- W& [7 h. u. B
Dim LngKeyE
3 ]8 m% q K" l
Dim LngKeyD
9 [* W9 ]7 `/ e6 ~* I
Dim LngKeyN
, i- k, o4 [/ ]6 h
Dim 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* S
LngKeyD = "20643"
/ E* O* n: [* |" `) r. ~
LngKeyN = "29893"
5 H1 B) W* J, M% D: U
StrMessage = Message
8 |0 p$ u& s8 ]* B
Set 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 x
Set ObjRSA = Nothing
. `' P- k) h! u; ^
end function
7 Q/ k% Z$ x( Z+ j
dim last,first
- O& k4 S. a3 \% e) C
first="!@#$%^&*()"
8 F9 R/ }. r5 N& ?$ s Y2 j7 M
Response.Write "加密前为:"&first
; f8 N, Q$ t8 y5 u
last=Encryptstr(first)
& k O8 |5 f3 O: ^. O5 W
Response.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_____6EBB
9 ^! 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 K
5_____4F88
`$ \4 U# I, f8 T: e4 S- h0 _
6_____3F4E
6 {$ u e& \7 I# |# {7 v% c
7_____0A9D
. G; O m5 S, y6 Y' P! ?
8_____1A1C
" L! m# R( u* @: r. a+ v- n% V
9_____6D20
' Q3 r1 f" |5 t( U7 C7 F; ?, \
0_____1089
6 T4 u8 f7 _! k9 u. F
a_____0F3E
/ I1 t* y3 [2 [) V' Y/ j4 E2 t
b_____3159
1 d7 M# ~' @) s. @6 x
c_____3517
1 J$ ]% M* F, ~5 k) o
d_____419C
/ m- @! V& ]1 P% t& M
e_____615C
C0 Z/ G) c6 l {
f_____556F
1 O- y; ?! ~$ L
g_____2B7F
/ G$ E E9 H2 V' b! f! T
h_____0F9C
9 D+ p, F$ Z- k" J4 W. a8 f
i_____00FA
& w1 R# T' _$ O% E
j_____5A50
8 Q/ ~' A, d/ J" p8 z4 {$ x6 k
k_____2850
! H! |: r! ?- d
l_____3E7B
+ L4 Y) S% h* [/ H4 A
m_____71C5
1 Z' l' v% n5 j/ k, Z5 \0 F0 b
n_____1FC8
6 v0 j! T9 B. N a+ k
o_____74C1
" L9 _5 ~7 n2 T2 ^4 ^& [7 P' Z4 t
p_____5FB8
# v# g5 _+ m. e! B0 b
q_____6085
. m/ Q) u% j2 E, O0 r. G
r_____3AC4
3 `/ 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) p
u_____7010
; m2 B0 v- B+ [9 u! H: k
v_____0B42
! v1 q4 i) b0 V. T- ?' K
w_____1C7A
3 X5 h/ K# K! k4 R! I
x_____16F8
0 |' {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