返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: E; ]8 ]$ N) \: p' t% C  p原始出处:http://www.3ast.com.cm- Q+ s. b. Y, n4 L1 A$ U

" W4 t8 i7 h% m7 q! `+ [看不懂的直接绕过, V& r3 C2 C4 x) E9 [) G5 g- u
加密前为:hwy123456+ a# b  ]: W2 k3 C6 a  j& ]
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" `9 C" h; O2 p

5 z8 d  K3 U, `. w& c! V============================================
/ Q) o9 v& H- w0 P/ n上面是当时自己校内的心情。现在已经解破出来了,分享给大家8 {3 D4 C2 p  c# h- C
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法) _* Y+ f2 `3 i
以下是RSA算法文件4 N2 J. T! n5 `# K) d; `4 \
. S8 ~, t/ R+ D) L  e1 o1 y
文件名RSA.ASP
) W/ q+ s* u$ g3 r! v% C===============================================% y% z0 B3 k, @8 T8 N9 O
<%
8 V8 \( O0 z3 s8 x9 E4 U. m0 m: mClass clsRSA
% r6 G5 L, r( Y! @2 jPublic PrivateKey
6 D  A) Y# o/ I! o# qPublic PublicKey , A, [6 h! ~! L9 w5 S6 W
Public Modulus 9 k4 H, u8 `9 V/ J+ v7 q8 f
Public Function Crypt(pLngMessage, pLngKey) 8 V2 O- d: G8 K( |$ a
On Error Resume Next % U7 A* i5 u1 t  U0 L
Dim lLngMod % c0 P* M) q+ A& ?) e  ~* H3 v3 U
Dim lLngResult
  D  [/ a7 W" c6 XDim lLngIndex - l, B1 L( a1 b) e6 t4 \, |
If pLngKey Mod 2 = 0 Then
! c" L; b2 V1 l% O: s! L& llLngResult = 1 3 n+ G- Z  ~9 K, A  H
For lLngIndex = 1 To pLngKey / 2 ( a& q* U3 Y; ~5 a+ Z. j6 K. W
lLngMod = (pLngMessage ^ 2) Mod Modulus , `/ D8 l8 A0 g0 V- _, ?6 W; r5 j
' Mod may error on key generation & F  N# \7 t' ]- p4 S
lLngResult = (lLngMod * lLngResult) Mod Modulus
' g- x! S) J5 yIf Err Then Exit Function
& R5 X. F+ ~4 Y4 M$ D; qNext . t; Y: y9 b) u4 Z. `
Else ' F7 M6 i9 C& D0 a. a% B% G1 C
lLngResult = pLngMessage
4 r2 r7 j& e5 ~For lLngIndex = 1 To pLngKey / 2 % z" A1 @; t- l5 t2 F8 R3 U
lLngMod = (pLngMessage ^ 2) Mod Modulus
( K5 D! C. X1 z6 N+ Z. g7 gOn Error Resume Next 4 D, N7 o3 z+ W: q) K, h% n, |5 s
' Mod may error on key generation & K$ F) j: a) J3 e# g( t
lLngResult = (lLngMod * lLngResult) Mod Modulus ) P6 Q/ Q" _" i
If Err Then Exit Function " y) r, j' i  B* Q3 Q
Next
" L) `5 K9 }3 N. q# K4 oEnd If
" `, O! Q( b' K1 {, i) TCrypt = lLngResult . @" q6 n# `, ?) B  `
End Function' j. I% m( ~: l

; D. X/ P8 t8 a  DPublic Function Encode(ByVal pStrMessage)
9 c- N- U; m/ I0 c) K$ {: a2 ADim lLngIndex
$ S  m' H0 ]# j& UDim lLngMaxIndex ; w+ Z, d' T# X/ Q9 h- o- i
Dim lBytAscii 4 q# ^, ?9 a$ f& t, b5 b
Dim lLngEncrypted
5 V1 Q# K" }3 a- l. t$ ^$ M6 XlLngMaxIndex = Len(pStrMessage)
9 M4 `7 a7 u- c$ @  f# u* t0 SIf lLngMaxIndex = 0 Then Exit Function
$ c: J% G' a8 q) s% FFor lLngIndex = 1 To lLngMaxIndex / r6 P+ \. }/ t+ ?  h& ]
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ! G0 U- r9 @8 O, {! C4 S# O4 F- d
lLngEncrypted = Crypt(lBytAscii, PublicKey)
' E* e, Q9 E, ^7 z0 `9 v- L) @Encode = Encode & NumberToHex(lLngEncrypted, 4)
: a  R- v8 k* NNext
' f7 i$ {( a$ p) b' V! ?- XEnd Function / @; p7 x$ R( L! y* l* r
Public Function Decode(ByVal pStrMessage) , {) Y& h/ C  \
Dim lBytAscii
  M% L+ ]; p# ], j' W# ADim lLngIndex 7 \* f0 p& W' W$ C% s
Dim lLngMaxIndex
2 @, M% C0 ~" {) I4 O! c. NDim lLngEncryptedData / Y4 I8 q' z/ Y' L
Decode = ""
& D; E" M" o% N9 T6 H/ U6 C( X, M6 ulLngMaxIndex = Len(pStrMessage)
+ |, v) t  b. tFor lLngIndex = 1 To lLngMaxIndex Step 4
. [* c3 @3 `+ N4 R) QlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
7 B/ N! ?  s1 p$ u8 rlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. e7 G* U/ H! o4 y$ v; YDecode = Decode & Chr(lBytAscii)
9 e0 g! n) I. U: Z- |5 ], rNext , s6 U9 V* L8 m1 k( L6 N& ]
End Function
7 L" [& l: B, ]5 n9 v' d( kPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
# h9 i1 V; t0 e+ {6 ^NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
# X; p" |: X2 S) \0 s7 kEnd Function
" ~2 Z; ^2 m2 @& S) ]Private Function HexToNumber(ByRef pStrHex) 7 h8 k1 j1 C9 r* F6 t: d, d4 y
HexToNumber = CLng("&h" & pStrHex) 4 a: B+ _9 }& N2 I
End Function
. R( }4 G) K8 j1 ^" h8 k# }+ uEnd Class ' G0 o/ y' R+ w. E  ?; p, e
function Encryptstr(Message)
% @- E0 ^* ~+ W% d+ \4 nDim LngKeyE ; m% i. o% O& X: e$ }) Q
Dim LngKeyD
# m1 ?( v' L/ R$ SDim LngKeyN " z& g4 G+ y+ [" g/ d' i  T9 \6 L4 b
Dim StrMessage
+ x) ~/ i# d* G4 P& aDim ObjRSA
: [+ k) t+ \1 x( ]LngKeyE = "32823"
" R4 y: N# ?5 jLngKeyD = "20643"
( o1 U* t8 M$ V- |* VLngKeyN = "29893" & G, i8 k/ b9 f6 n8 W* a. A
StrMessage = Message
! L) e7 H1 x& x- TSet ObjRSA = New clsRSA
" z" {5 Y7 F3 l" Z- b7 DObjRSA.PublicKey = LngKeyE 6 G. o/ B. g6 t% I# y5 Y2 A5 w$ q
ObjRSA.Modulus = LngKeyN
- }# |# @# ^+ |  m: }5 a. Q5 q6 J2 p6 {Encryptstr = ObjRSA.Encode(StrMessage) 5 K! s! u8 {; H% o! R6 h
Set ObjRSA = Nothing
! t8 x! X9 o) d9 O) l3 X- S" kend function1 m1 m# b+ V1 ^! M: `2 Q: V
Function Decryptstr(Message)
( P8 o" Q5 k) JDim LngKeyE
+ O: V1 N1 l; ]' [7 Y0 J( }; ODim LngKeyD 5 ~1 Y- F- n  ?) M/ c' W
Dim LngKeyN ; Q9 l1 c9 s' C1 B2 ~0 A5 {# i
Dim StrMessage * g4 }9 x) v7 g( v
Dim ObjRSA
- \( v2 j+ d* p7 L9 T! WLngKeyE = "32823"
0 q! ^: E) e+ C& F) A( W4 x6 tLngKeyD = "20643"
% [; Z+ G0 T& \4 N) C7 cLngKeyN = "29893" . ]8 K( F" c) b( N) J
StrMessage = Message
" Y" C1 {" o  f. b; P8 E2 ^4 PSet ObjRSA = New clsRSA - E  Z9 S, i  l. ]+ m
ObjRSA.PrivateKey =LngKeyD
7 R$ T6 t- Z7 `3 p6 fObjRSA.Modulus=LngKeyN 3 Q& h5 w1 L- t: P0 b
decryptstr=ObjRSA.Decode(StrMessage) & C3 p4 M+ M) D3 T- `; A
Set ObjRSA = Nothing 2 `, [- v4 ~0 X1 P6 g5 N4 J! c
end function
7 b) s' W# h' T%>
; w* r2 C1 r* a; p0 `* n5 P===============================================
  F# m( `3 m0 i7 `0 ?0 |( S& ]! x, N* m; V, X, B5 A. O  @5 Q
还有一个用于测试这段代码的test.asp/ W5 m+ l' {1 C6 S3 b
有兴趣的自己搭建个IIS测试下9 Z9 h* X% g& x
<!--#INCLUDE FILE="RSA.asp"--> $ m; J) W" l/ S% G( \% S6 q5 E/ W
<%4 p2 \; E2 B# T; L# x" [' [( {
function Encryptstr(Message)   H* U' R( s' t4 X: }0 }
Dim LngKeyE , ]1 ^7 t) h* V! [" T0 z
Dim LngKeyD   B3 b, i6 j- d0 {! U
Dim LngKeyN
. ^7 s% S" p) h& ]8 LDim StrMessage : }& e5 |. W0 O' d# ]
Dim ObjRSA
3 Z5 m2 y, h! @* ?, z7 C% N, LLngKeyE = "32823" ! }9 E) Q2 W# q* z
LngKeyD = "20643" 7 B6 @/ C- ?9 F4 Y# V! R0 T
LngKeyN = "29893"
" U! @2 Y$ _2 S/ x0 U+ T% H4 UStrMessage = Message ( V3 P0 u4 }; G0 v; ]5 {& b; k- A; a  X
Set ObjRSA = New clsRSA - ]) b9 I6 B. ]' |
ObjRSA.PublicKey = LngKeyE 3 [# S/ u/ r+ V+ y+ p. T& d
ObjRSA.Modulus = LngKeyN
* P' n/ s$ R8 `4 HEncryptstr = ObjRSA.Encode(StrMessage)
, ^$ J0 i& E  H' V7 m5 }1 ESet ObjRSA = Nothing
$ U9 }6 V& P! k! Z. W% x+ f0 cend function
5 \2 r" k' M2 f" @2 K8 r$ Yfunction decryptstr(Message)
9 s. u" q" K6 h! `* CDim LngKeyE - `% h8 |% ?4 i; _- }0 W5 l
Dim LngKeyD / ^( C- s7 x" [0 S5 i+ s# o
Dim LngKeyN 1 }7 C; W# }: C% u
Dim StrMessage " P8 t/ r- y- c' K& Q& Q7 ^; n
Dim ObjRSA 6 I+ I8 n! v2 q- H& q7 k
LngKeyE = "32823" ! t- Q$ Z/ O9 I  r6 ]+ x- Z
LngKeyD = "20643"
" }4 o0 j  Q4 \; w1 NLngKeyN = "29893"
0 M" M2 N( l1 I+ ^+ |; TStrMessage = Message + B1 M6 Z3 Z3 j0 {) b7 k* X) ^
Set ObjRSA = New clsRSA
/ n4 h) J: {2 R7 O6 {2 ZObjRSA.PrivateKey =LngKeyD , `" S. E% L7 ^- _# G0 e& Z. O
ObjRSA.Modulus=LngKeyN   O6 q6 Q( O. z/ c! S6 U; y1 G/ s
decryptstr=ObjRSA.Decode(StrMessage)
& x  u* z. P' [" D& x6 pSet ObjRSA = Nothing ) V; l! s, r0 F3 \% l  ^  h
end function 1 u! h5 E# T  e+ E/ R
dim last,first
8 |# z% |9 r# G+ f! o* k( D+ kfirst="!@#$%^&*()"
1 y5 [6 i* r( d4 D6 PResponse.Write "加密前为:"&first 9 e' L" s3 F2 |# q6 W
last=Encryptstr(first)
: T- s) A- w; O3 L" \+ YResponse.Write "加密后为"&last
+ _2 N  @* E! d* J0 QResponse.Write "解密后为" &decryptstr(last) ; J  K2 |8 Y, m% J' Y* a9 |
%> ==============================================9 E1 K1 z6 j" E/ U1 G2 v7 Y
剩下的就是字符的对照表了
. n4 ]1 c6 _: D8 f) b0 Q: j===================字符集================
/ V% {4 R( C1 I" B6 I8 ^7 g) p1_____6EBB/ H: V1 h. V6 P' `7 D
2_____5C1F% G& M$ G5 g. P+ R
3_____4D75
/ }3 S! d; Z; K" p4_____26CC
' i0 J* G6 z1 S! g5_____4F88, \* X- G* `, _) I0 l( F5 D. I- Z
6_____3F4E
( x& G" ^8 j' b% c0 R7_____0A9D+ Q2 J2 c! ~3 L/ K; I/ l
8_____1A1C
# V: V6 j: l. v2 g/ m9_____6D20
0 I" Z  }/ P" L$ Z* |! v0_____1089
. h5 |# _6 U# f7 Ma_____0F3E! ~( V2 t- N- ]# ?/ d' X+ c
b_____3159
" i; X& @& p) ], l+ y, I0 jc_____3517
/ B8 |$ d7 R4 k' v- i+ {0 L1 Md_____419C# }) ~/ N, [1 |/ J4 q
e_____615C
; S* M' @, P9 d; l# o+ Kf_____556F3 u9 i. f6 B0 T, @  z4 m
g_____2B7F! t" i& N5 ~+ h1 D! h1 I
h_____0F9C4 k! G  N2 }4 O! o# C' Y5 f
i_____00FA
  A3 ~: z/ G5 ^j_____5A50
4 u# ^6 n: K# E3 _k_____2850
5 [# m5 B) a9 o0 p1 Y3 U9 g/ ol_____3E7B7 X+ {& C. ^) w! m, l7 o3 p2 w; Q1 r
m_____71C5- D8 Y2 l' ~5 T. ?
n_____1FC8
- E( N1 F$ `4 l/ J4 ?o_____74C1! T6 e6 @  K7 }8 q* }
p_____5FB8
6 A4 l  a# P7 @* p1 U# V  Q2 `q_____60850 t9 }+ L+ |1 s$ c# g
r_____3AC4
! K" u' L: K2 P) p: ps_____2F508 G3 C+ J) \" @( W4 m2 S. M
t_____36F8/ ~1 l0 A1 o7 W& F1 }
u_____7010/ A% x9 [2 n+ Y; |* R  q4 ?
v_____0B42
& g& g/ f( f8 ^8 N7 v* ow_____1C7A; k! O$ y# R; l' V
x_____16F8# l% {# Y2 m* K& s1 {  d
y_____2EE7
6 y3 y3 M8 Q0 K$ Uz_____5CF3
& ~1 z! u" m7 w; F& `!_____6233
9 R; ]  X8 E9 K* {7 h2 y@_____3A45* {; i+ ^  E: @9 A
#_____2291$ n! s; ]3 W: N7 e8 O  f, z5 U
$_____5D5C
- M5 o. w9 m" @' d$ t3 v%_____09B91 u0 j* b; U' N! x4 {3 w
^_____43EA( L; G0 F7 k( V
&_____62B97 c: d! F2 f& c: C
*_____6301, e, z. o  Y/ g+ o6 G
(_____4659
  V3 k0 G0 }0 k& P1 J)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表