返回列表 发帖

[原创文章] 关于国内某知名大学网站加密算法的研究

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
; O- N3 C' B& {  i- M4 _原始出处:http://www.3ast.com.cm) ~0 ^/ P3 w/ W5 v- \& Q5 y( n
7 r( d0 Q1 C: w2 h* A6 S
看不懂的直接绕过
$ d8 H. {8 O/ Q+ m9 q加密前为:hwy123456
( A6 Y8 L0 ~4 c) }6 W( k! q! L, p7 P加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 |. G# \8 y# Q) g0 o1 p" w. Z

0 Y0 y4 ~5 K9 d, x$ m( q& K============================================
! N. B0 O( M# l, r$ x/ s4 v上面是当时自己校内的心情。现在已经解破出来了,分享给大家4 I( M3 R7 U1 I0 f7 V7 a; T
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法$ d( N( m, Z6 Y8 {
以下是RSA算法文件
0 p1 j$ b9 e; ]3 O; v# h6 }& n* I/ E9 R( Y  {8 h' j
文件名RSA.ASP* S- _. E+ ?+ G7 E' R
===============================================) c6 i0 x; h! K# F5 Y$ P7 L
<%
/ z7 X" V7 H2 q# |! JClass clsRSA
% s3 c- U& i4 I, a8 e5 p" e. fPublic PrivateKey ' q% x4 C" i& X, E" Z; }
Public PublicKey + f! m3 W, [6 S
Public Modulus ! ~' p9 g/ J1 _7 [( X: m+ O  p5 U
Public Function Crypt(pLngMessage, pLngKey)
+ x1 k! `4 Z' ?3 \# AOn Error Resume Next 0 `0 }/ W" v1 t  V5 e
Dim lLngMod 4 i! _) w! m* L' ]& B# G7 b
Dim lLngResult
1 k3 X7 L8 q$ I: EDim lLngIndex
, t# T& |" ~% ?% u; d# WIf pLngKey Mod 2 = 0 Then & n. c. N: Q7 n4 \: @5 |
lLngResult = 1
" r- N; e9 x5 j# KFor lLngIndex = 1 To pLngKey / 2
5 {: o3 J% `" o1 j* p0 z( nlLngMod = (pLngMessage ^ 2) Mod Modulus
6 I# m1 a# j& a2 N" p7 f- q0 c# {1 u( `' Mod may error on key generation
: S1 x2 W( }  }' ^  n9 llLngResult = (lLngMod * lLngResult) Mod Modulus
/ g* d" h. c3 D! G, U4 t' ^If Err Then Exit Function
: k+ U/ w; R5 |5 g" W- d0 O/ vNext ; N' q7 \  A5 p' `
Else   k+ U3 g+ k( J6 ?, v2 C, R% B0 ?, m
lLngResult = pLngMessage 1 ]2 |+ ]: A' f3 g- s, x0 Y7 k4 U8 d
For lLngIndex = 1 To pLngKey / 2
7 n$ k7 b* q% Z& nlLngMod = (pLngMessage ^ 2) Mod Modulus
6 o' G1 y/ `5 g: \' p8 bOn Error Resume Next
7 W! |# I: X' ~) p2 e' Mod may error on key generation
' q( ]0 x' E2 m1 v: W  a" LlLngResult = (lLngMod * lLngResult) Mod Modulus ( l3 y5 q  \% [
If Err Then Exit Function , m- X0 ?+ u1 s  P: h" ~/ N8 q7 g
Next
- x# G! e/ f" g( d4 g: F3 KEnd If
) a/ k! c+ G2 @, B- }8 iCrypt = lLngResult % Q/ @6 R" F  d6 y+ V
End Function
& J  d3 R4 d8 V& B  `- M" o/ \& q) V) d- H) t
Public Function Encode(ByVal pStrMessage) " u1 N3 u1 K6 l
Dim lLngIndex
5 B4 o8 T! {8 V; r0 fDim lLngMaxIndex $ W) o, n. Y8 D
Dim lBytAscii
, O' |4 B  d; EDim lLngEncrypted
2 Y  t0 Q' Y* [lLngMaxIndex = Len(pStrMessage)   h  a/ }& Z5 q. X
If lLngMaxIndex = 0 Then Exit Function 1 [- {" j( v& H$ T. ~% z
For lLngIndex = 1 To lLngMaxIndex
/ H2 G/ C5 k" o5 P: e  ^lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
. w3 k  [  z: s/ A! w* XlLngEncrypted = Crypt(lBytAscii, PublicKey)
% t8 }7 u1 X" e3 ^1 G8 W+ J0 w2 NEncode = Encode & NumberToHex(lLngEncrypted, 4) . `! [2 s$ i, C( R) `2 X( ]" f6 Y: }
Next
' |4 R% S) B% l0 ~End Function 0 x& {- m$ R1 c% J, Z- g
Public Function Decode(ByVal pStrMessage) ( f' V, Z- f* q) E
Dim lBytAscii
) Z5 E# n0 G3 \1 }Dim lLngIndex , V3 v+ }  y2 r) ]: A
Dim lLngMaxIndex
0 r3 H9 N0 g5 BDim lLngEncryptedData
9 `3 p/ m) D2 ^Decode = "" : @4 u5 ?( |( W: O. O6 W3 C
lLngMaxIndex = Len(pStrMessage) " n( @4 z* u+ O- m: s$ B5 N4 w
For lLngIndex = 1 To lLngMaxIndex Step 4 / A# `2 m9 h& k8 w! j  ^
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) & S0 q6 z9 W. ~! k" u' f" n
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
) t) b& v$ {! m+ XDecode = Decode & Chr(lBytAscii) / O' v# M( C) @$ k. l! S- V& O3 p
Next * R# p# V3 F. K2 K& B% _# `, I
End Function
8 z( I$ z4 ]" uPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
. E' ^' n: S6 A: Q0 q6 _5 WNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
, f; K0 X9 f) x" ]1 h; A4 D% R% ^End Function 0 n& m" g1 [2 H( z3 ~& m
Private Function HexToNumber(ByRef pStrHex) 2 J) _( n2 |6 J+ ^
HexToNumber = CLng("&h" & pStrHex) % U. Z* w) D2 Q) n, A3 L$ j
End Function
% z( y) L" K6 E6 Z! U, Z- }End Class
. K# U# j. r. \/ zfunction Encryptstr(Message) 2 O8 j7 W4 s" s/ T* o
Dim LngKeyE 5 A5 p4 [5 y7 }  T/ U) ~4 W. c/ W
Dim LngKeyD " W& X( ^5 @# e- l
Dim LngKeyN 8 ~; i+ j7 A" Z  v7 G5 Y8 c- R- E
Dim StrMessage $ J; h' y9 L  _
Dim ObjRSA - h% y; G: q' K' Z5 M. S
LngKeyE = "32823" $ c6 |; \" j- E! c4 x8 C* w4 t% }$ C
LngKeyD = "20643" % @+ X" @  C. S' z! O* v( a6 I
LngKeyN = "29893" / @! L; _& B9 v' s9 J
StrMessage = Message $ Q6 W; i% g0 F; @6 y, }
Set ObjRSA = New clsRSA ! G6 V: s. K2 ?9 |) G  V
ObjRSA.PublicKey = LngKeyE ' v; T8 v: F' @/ v0 }: r( j& o
ObjRSA.Modulus = LngKeyN 9 [% F6 J, l. F* q% J
Encryptstr = ObjRSA.Encode(StrMessage) 7 U4 x$ l6 b- {% i, V% G# q
Set ObjRSA = Nothing
4 k' A1 e' k8 d; j1 E2 Tend function& f* o; A1 C( H( r* a2 {5 [- b
Function Decryptstr(Message)
- w. z/ U& Q" ^# t! y0 nDim LngKeyE
! _, _) f) @8 z0 ^. |. z% Z* HDim LngKeyD & u* w. L! E( s3 B! F1 F" w
Dim LngKeyN 4 G. L! D2 i: P! N7 L/ a, [1 U
Dim StrMessage
; G! w- @" \$ a$ ]4 h: C! kDim ObjRSA ) r' h% x- ?& D# @
LngKeyE = "32823"
1 J! G" k1 N) J1 J+ v, ILngKeyD = "20643" , J; C: V# i/ [; f7 z+ o
LngKeyN = "29893"
* |9 B7 x8 L  gStrMessage = Message
, c8 ^$ J5 R. B$ U- I0 p3 [- eSet ObjRSA = New clsRSA
1 W( e. G; M7 {& \- U( rObjRSA.PrivateKey =LngKeyD
$ v4 e" H( y# @7 vObjRSA.Modulus=LngKeyN - b" x, q+ o: p" o/ Z7 k, p: W
decryptstr=ObjRSA.Decode(StrMessage) 1 h% O: l9 R3 ^4 d* U3 _" v
Set ObjRSA = Nothing
- D1 U$ J# ^8 \end function # Z! X+ _: a3 X, y# Y4 a
%>0 ]# B' q4 _) ]3 A8 Y( @
===============================================4 }0 Q+ u: _- N" s% Y

/ s' T. B, W0 Z3 d- J( h  T8 N, C还有一个用于测试这段代码的test.asp
5 m& v3 {. c) X# }. w% s% o# V# `有兴趣的自己搭建个IIS测试下8 U4 h0 K- z! S% Y! Q7 L5 ?6 ]* j* S7 f
<!--#INCLUDE FILE="RSA.asp"-->
0 T( D. z& A8 W" m<%
8 {- z" J, X; h  ?( V. a1 Ufunction Encryptstr(Message)
# f  ?, }2 Y) ?Dim LngKeyE 4 I1 `# z* I0 \
Dim LngKeyD
$ V& v+ Y! E$ g# n1 s+ _4 w5 JDim LngKeyN 3 A! {7 V& o) a/ ]5 n- d7 M) p
Dim StrMessage : R  ^9 q% O; r% Y7 A2 J/ C
Dim ObjRSA , ]' k: j& N' n3 H" T4 T
LngKeyE = "32823"
) Y& Z" m5 P" k- S5 o" @# R4 \% GLngKeyD = "20643"
: ^5 W  P% h7 [; GLngKeyN = "29893"
  b: T8 ^1 g2 h1 O3 q6 }StrMessage = Message
8 ?/ }  H, B3 Q0 @# U3 ISet ObjRSA = New clsRSA
) R" O( q7 n4 M9 C0 _% ~6 zObjRSA.PublicKey = LngKeyE ; _$ n5 W# l- R& p0 U3 H
ObjRSA.Modulus = LngKeyN 1 `+ y0 ~( ^* F4 I- t
Encryptstr = ObjRSA.Encode(StrMessage) 3 H- Z0 h- ~' J; `- U
Set ObjRSA = Nothing % f2 y# x+ c* V6 ~' N5 d8 _8 T
end function
. N$ g6 u8 T3 N: d. b0 Q& Rfunction decryptstr(Message)
- `  L  i( D$ \$ b# j! {! T: ADim LngKeyE ; C" o4 Q' |! L* n
Dim LngKeyD ( E# u* F) L! J/ p6 S
Dim LngKeyN
! k6 N- Z5 b! L; V5 z8 F9 ^5 o4 I; `. XDim StrMessage 3 v& o- @$ x6 E2 h$ _
Dim ObjRSA $ v' C: G- U: w& `
LngKeyE = "32823"
- k1 n+ @8 G5 l! `: g# g$ ]8 q' s2 @LngKeyD = "20643" 5 j& L! w. G; v5 h
LngKeyN = "29893"   Y- w$ `/ Q( m/ r1 D1 G
StrMessage = Message
: W3 E1 {& R( F; rSet ObjRSA = New clsRSA
5 C& v& @+ |. u1 K$ T6 \, y% a( `2 PObjRSA.PrivateKey =LngKeyD
) d8 @$ }" H+ XObjRSA.Modulus=LngKeyN & R0 H! s2 p6 f3 \) [- b: z
decryptstr=ObjRSA.Decode(StrMessage)
1 i& j8 U1 x! N* VSet ObjRSA = Nothing - p, M  A: A, ]" h# f+ a( [) A
end function
7 h: D5 I2 d6 R* B& O- Cdim last,first
+ h' f+ m9 E# Z1 x, b3 hfirst="!@#$%^&*()"
. A" L( O5 M3 m3 FResponse.Write "加密前为:"&first
9 u' ?" w5 F  }8 R" G9 u1 L7 `last=Encryptstr(first)
5 H' N( q/ k$ Y1 z5 F' f5 QResponse.Write "加密后为"&last , O$ I7 r: h; W
Response.Write "解密后为" &decryptstr(last) 3 I# W. w. q! ^7 s3 [
%> ==============================================" ]0 d9 `! w( o& R. O& F8 D4 ~+ I! t
剩下的就是字符的对照表了
+ D! x, X: t. p: h; Y1 z===================字符集================
2 ~: X1 V( W! S; N0 @, z6 x1_____6EBB
# x8 D  r; [8 l8 J) m# _2_____5C1F
" E! X8 j' u; A3_____4D75
( [: S4 K( T& ?6 ]* j4 L7 }5 x4_____26CC
  U- J4 N+ V$ y5_____4F88: A* S- m0 V% A( H+ g
6_____3F4E2 J5 D5 l5 G( h1 ?
7_____0A9D
0 F' i. ~- w" F' j: ]; y8_____1A1C! v) U; o2 b+ g: k
9_____6D20  [/ C$ ^3 X. H. K8 w$ W9 t# z1 u
0_____1089% @4 j9 v' Y: K" v
a_____0F3E
3 v  O/ [; e7 hb_____3159, z5 _; u  R9 J9 ^( e0 y! K" z
c_____3517
, ?3 P) v3 Y: z4 [- x  Jd_____419C
- U1 C1 Z  F7 J- g7 |' x; Me_____615C4 `0 G# L- s9 O7 s6 y
f_____556F- Y9 D2 S! M/ X& i
g_____2B7F
3 y: H, l1 b  b/ ?8 K3 Q1 wh_____0F9C
% V+ T& \8 a# [  ui_____00FA
# T4 g3 U: w! }5 Uj_____5A50
7 s9 k5 d& `* ]; Z0 X9 A' L4 zk_____2850
) L3 S2 |% I: Nl_____3E7B1 l3 g* B' L7 y+ @; x7 l' J9 [* Q
m_____71C5! |3 i8 s' L8 s7 V. A: a! P
n_____1FC8
" Q/ G5 p7 {( ?7 t- F: x& wo_____74C1- V& e2 z5 o, ?
p_____5FB8: l6 _8 I, i7 x' v/ Q# N; ^* Y
q_____6085- V' b- v! E$ H) V( o$ R$ X
r_____3AC4- @( Y" b- Y/ l/ `( S0 r0 c, N: m3 D% r
s_____2F500 m, {$ N: ?8 v! ~! w
t_____36F8
) a2 K, S' N# D% A# V0 {u_____7010
6 [: `) ?$ Y! ?0 Q/ R. `v_____0B42- u) i( x' E/ L
w_____1C7A) S- C5 B  T% X/ \4 w5 r; V( ~' q9 g
x_____16F8% Y6 I* b5 f" Y3 p5 a: ]  t* {
y_____2EE7( w  a' L6 c4 `- q; ^# |0 n
z_____5CF3; S/ W5 _: A$ o0 `/ d
!_____6233
- M! B1 T9 P: L: Q+ w7 W@_____3A45
+ S" h( M( a8 u% y6 w#_____22911 A8 J2 t& e* ?7 S  w
$_____5D5C
$ P1 f, w  _7 K4 d& S1 k3 F%_____09B9
9 z/ A$ k. o! }: ^% |^_____43EA; ^& I5 K8 H2 B" ]" J
&_____62B9
) k; c; M0 l2 D/ l7 h$ k*_____6301
$ J3 c* J' [/ P3 x(_____4659
  F' r' t5 B5 a% m+ C# _)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

于智者同行,你会不同凡响;与高人为伍,你会登上巅峰

收藏了。。。。。。。。

TOP

返回列表