返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* X0 B( C" l$ i9 D+ W5 k- o9 v/ K4 \原始出处:http://www.3ast.com.cm* n7 ^4 H: A  e& d8 m  X

5 F; c" K. _# o2 a看不懂的直接绕过/ R* ~+ ]$ |3 j0 t* L, q4 t
加密前为:hwy123456
4 |- m# `/ P& K$ `" C加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
# D- w2 w) }7 z& w8 |5 Z  U4 E; D
============================================
# W) \  {: n+ U' O, x上面是当时自己校内的心情。现在已经解破出来了,分享给大家
4 Y) z- \# K/ S! F; D也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法1 r  [' F5 y1 A5 P
以下是RSA算法文件
& z$ a- F' L: l% l& v+ W. M5 ~2 Z7 H) F1 }7 a% ?3 l# H
文件名RSA.ASP& t  n( j$ ^- d
===============================================
! Y( }% n: m5 l5 l! G<% . c8 x; O3 J: {
Class clsRSA # n7 J. A; k3 b5 \9 w& \
Public PrivateKey
" h3 ]% i0 O2 w0 APublic PublicKey & c/ g6 V6 J, ?! W3 f
Public Modulus ( E4 T  Q7 r% e# d
Public Function Crypt(pLngMessage, pLngKey)
# ]+ b: J/ F  c& n' FOn Error Resume Next
( E+ R# n5 D( {8 F/ `Dim lLngMod
- a9 ^5 ~0 I& w8 d3 q7 }) k0 |Dim lLngResult 2 _" B. E+ ^3 G. L* w2 b9 [8 Q, o  d
Dim lLngIndex
5 Q; |, L7 m& h0 k. n$ m7 V* vIf pLngKey Mod 2 = 0 Then 1 o- w7 h# }* a. r9 ]! t& N
lLngResult = 1 $ w2 ?% C/ R: k$ v; g+ g. U; ~
For lLngIndex = 1 To pLngKey / 2
& H9 P. W  ?7 C" r4 RlLngMod = (pLngMessage ^ 2) Mod Modulus
+ c8 t0 d# d4 R& u: J. t' Mod may error on key generation
' F6 C  i# x' {( LlLngResult = (lLngMod * lLngResult) Mod Modulus - m+ A. T+ \" I: d! ~, J
If Err Then Exit Function   l) ]" _3 `+ z  j7 w
Next
! s4 k7 x9 a3 {; V; x* v6 _Else . q( X. c4 S& {
lLngResult = pLngMessage
4 d$ m# h; @8 V6 b) wFor lLngIndex = 1 To pLngKey / 2
! Q. ]% M* S+ ^3 \; K2 ?' [: JlLngMod = (pLngMessage ^ 2) Mod Modulus % `- L& x! i5 K( P: J9 @7 }  W
On Error Resume Next % `2 K4 e% @4 d( X5 a
' Mod may error on key generation # s; z4 t6 F# g8 g
lLngResult = (lLngMod * lLngResult) Mod Modulus
6 S# I: D6 v' i4 H) FIf Err Then Exit Function 9 c& u2 z0 N) k! p" p
Next
: m2 k! d  i# m) _' O  @End If - N" `# b1 |: q
Crypt = lLngResult ! Q" T" \# Z* h$ {7 G! s( v
End Function6 f! W  b# k, p. c* f2 B1 {

' ]3 y2 @" }; O+ r# P) f( ZPublic Function Encode(ByVal pStrMessage) . b$ E8 D) z- k+ X3 y
Dim lLngIndex
$ S  u( g  q3 Y- xDim lLngMaxIndex
; _+ Z& Y, _7 m4 {, BDim lBytAscii 0 a& X8 L) }( b& v4 a; W8 u0 i
Dim lLngEncrypted
. ^5 f6 s" I: i/ f! i+ XlLngMaxIndex = Len(pStrMessage) / M# a  T( T+ r
If lLngMaxIndex = 0 Then Exit Function & j# a. n& p/ @9 @+ L. x5 }7 A
For lLngIndex = 1 To lLngMaxIndex 2 o3 J1 p$ q  u; u
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
% Y  D/ X3 t) o4 A4 _) qlLngEncrypted = Crypt(lBytAscii, PublicKey) + _" C3 Y' \9 L  t% }$ R( o4 U0 G
Encode = Encode & NumberToHex(lLngEncrypted, 4)
) V$ }2 Q: d8 |) vNext
8 M' ?6 |8 c3 V3 jEnd Function ( i6 _, Y0 {7 k6 p* g9 X/ @5 \
Public Function Decode(ByVal pStrMessage)
5 ?# H- `7 k# |) s# _: Q4 |9 hDim lBytAscii
$ W8 c+ g( j- s( LDim lLngIndex
/ }1 v5 E6 z8 {8 q5 O* {7 c  C# YDim lLngMaxIndex , u- v' }# g# ]
Dim lLngEncryptedData
3 U4 M) W9 }0 {4 V, bDecode = ""
2 z* V$ O. c0 e# E' ]! GlLngMaxIndex = Len(pStrMessage)
% a) L9 Y$ F2 i, w& ~2 I4 oFor lLngIndex = 1 To lLngMaxIndex Step 4 8 l$ ?0 N. ?  g9 ]
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) + X3 _* a3 u/ P8 U& J  J9 w
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 1 r( x1 X* M4 a) P! F) b' q4 z6 B
Decode = Decode & Chr(lBytAscii) ; ?$ m. P; i5 q- o! ^
Next # m" t$ n0 Q; _3 M2 V- Q
End Function
7 U' t6 K- [+ f! C: m6 WPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) , h" d. E" f# y  S; @. I
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) * j" K4 ]5 u4 o' ~. I
End Function / X3 N: G# L* f
Private Function HexToNumber(ByRef pStrHex) 1 }( ^; I9 C$ k4 ?4 ~, T4 b
HexToNumber = CLng("&h" & pStrHex) / J: G" @0 l" _/ a
End Function
& f, [/ g1 X& x/ m* rEnd Class 3 j% _" T* k' O8 Y( j+ @' h
function Encryptstr(Message)
  k/ M" `! O* ^$ Z# @+ ]Dim LngKeyE : I; a, j4 Z+ z3 Y
Dim LngKeyD 4 X: u; W' a$ _; I* s
Dim LngKeyN
2 v2 [9 w6 r2 V2 U; F9 oDim StrMessage 4 e1 x) F3 X+ ?. ^( Z( t" r
Dim ObjRSA ! t# X' Z' e) W* U" h
LngKeyE = "32823" $ Z8 V3 ?  l1 Y: g0 n; G3 K
LngKeyD = "20643" , f+ E& u) B4 L, B
LngKeyN = "29893" 5 ]% I' d: s& @/ t) A6 v+ Q, |, |& `
StrMessage = Message 4 L- [/ ]# b& K! ?% A
Set ObjRSA = New clsRSA 8 U3 _3 |9 ~7 d
ObjRSA.PublicKey = LngKeyE 1 l8 r: T! |* ]6 ~' n6 V
ObjRSA.Modulus = LngKeyN
# Q) j! a, X) a1 u0 A. CEncryptstr = ObjRSA.Encode(StrMessage)   }# ?% q( b! K2 x$ Y
Set ObjRSA = Nothing : b5 p! G+ u* {) l+ c+ e8 }" {. q
end function; k- e5 x; I3 I( n8 J7 _  n
Function Decryptstr(Message) . P. R% m9 `: Y; z5 E/ s( ^
Dim LngKeyE , o0 M  f( w* a+ ?+ s8 w+ k/ I7 P
Dim LngKeyD 3 n$ W+ U1 K& I% K9 i5 u# j5 Y
Dim LngKeyN
8 s: Q. K, x! ^$ H3 x& LDim StrMessage 2 Y6 O% j9 {# K5 o. P
Dim ObjRSA
6 A' L7 G" d, c. A/ Z' }7 f: LLngKeyE = "32823"
! r: ?& T  @; B7 {2 e# I; p: d1 D6 NLngKeyD = "20643"
7 S. T( w7 R& I5 O1 ~LngKeyN = "29893" & n4 |) d! r% |# f$ p
StrMessage = Message % G. l: E* [8 o
Set ObjRSA = New clsRSA
# _) u/ u8 q/ C' ?ObjRSA.PrivateKey =LngKeyD
0 z+ t! y! w( E6 @8 v# v* BObjRSA.Modulus=LngKeyN
% y& @1 _' ]3 l5 i* Ndecryptstr=ObjRSA.Decode(StrMessage)
& T3 b& }. w$ t; o* j5 O' }Set ObjRSA = Nothing - {. e- J9 T5 J0 c8 a5 K
end function + M4 ]/ y5 ]/ c9 n. v! N3 I1 [
%>
7 h0 l' \/ X, \2 @% I3 V===============================================! a- |" ^' ]& l9 J# i. Q6 Q
# [% F+ t. F+ k: l$ S) n
还有一个用于测试这段代码的test.asp
: T8 Q5 K( j/ }$ \: W有兴趣的自己搭建个IIS测试下, c9 ~) {3 c0 q6 M/ e) \# T. W
<!--#INCLUDE FILE="RSA.asp"-->
2 b5 E( q: {$ k5 d4 h<%% e* M: c7 d' z& Q# a7 c
function Encryptstr(Message)
( A: C+ y3 P% ^5 ]( n' u' \8 y, FDim LngKeyE 5 S5 `+ n; p! w' Z2 [, O( q+ t
Dim LngKeyD 2 j& j+ G/ P1 _, h  `1 x
Dim LngKeyN
( C6 D& u) Z$ H* \Dim StrMessage * _" r* e; m# [
Dim ObjRSA & K0 L! m/ u' Q' `+ u4 S
LngKeyE = "32823"
7 h0 X7 E( Z1 e# yLngKeyD = "20643"
* K3 Y& V7 v9 X2 ^LngKeyN = "29893" 1 @1 Q6 Q% V- P2 F: R0 [) y
StrMessage = Message ) _% }* K: j3 D- g+ O7 R% ?# W
Set ObjRSA = New clsRSA * b' `! X0 u) {) ~
ObjRSA.PublicKey = LngKeyE ! Q" C5 P7 Z9 \9 v6 i
ObjRSA.Modulus = LngKeyN - u. S2 R" Y0 \5 g8 a4 k3 D
Encryptstr = ObjRSA.Encode(StrMessage) % l  \- U! d% X! {2 O/ E) y! z
Set ObjRSA = Nothing , W6 R% R( ^& I8 r/ X
end function 4 G* S4 a, u: U2 i# P
function decryptstr(Message) : p' j& [$ c7 r1 x$ }; \
Dim LngKeyE ( b" T' A' i. F- |
Dim LngKeyD
$ l" a) N9 h: Z! y# |Dim LngKeyN
$ l0 `$ @4 }' G& T! wDim StrMessage
+ u6 K! S: \: G" h( SDim ObjRSA ! \5 d7 ?, J; ?; k! Y
LngKeyE = "32823" 7 ~/ @' |: Z2 j0 F4 I* n; \
LngKeyD = "20643" ; L8 j: f# y2 j
LngKeyN = "29893"   w& f2 C! N' t% i: r! F6 p
StrMessage = Message : a( i5 c9 V7 N1 V  ?
Set ObjRSA = New clsRSA " X$ V  E1 n; C% x. b  J+ {+ V5 u" k
ObjRSA.PrivateKey =LngKeyD
! m5 z5 A. q0 B! Z4 N) u* S" LObjRSA.Modulus=LngKeyN # }8 [, _- m4 A8 ]& Z( e
decryptstr=ObjRSA.Decode(StrMessage)   w, r# p3 z; c) `
Set ObjRSA = Nothing
9 T  n, S* V+ T7 Uend function
8 `4 K  q" v! ]) vdim last,first $ n; W. x1 A) G8 S0 B
first="!@#$%^&*()" % I7 l4 O" ?7 f/ `
Response.Write "加密前为:"&first ! P* j% d" ]$ Z, x* k% c/ R
last=Encryptstr(first) ! s& b$ ^" ^- J  V. U
Response.Write "加密后为"&last   T8 w1 s8 r0 R
Response.Write "解密后为" &decryptstr(last) ( e( x- E7 g7 r* W& h# s! o
%> ==============================================2 X! q4 h, @0 S- N5 X! b" j* j" |
剩下的就是字符的对照表了
: e1 a: b7 _; o7 }; o  f( h3 T$ Z===================字符集================
( x9 N; [$ i$ g1_____6EBB4 ]8 E& m3 I/ {
2_____5C1F
1 w7 F/ f, B2 t1 ^4 w- s3_____4D756 t) ]2 E5 |  c7 n; Q& {
4_____26CC
$ v3 j! W9 g0 ]) G5_____4F880 Y0 ?" K- G1 e( ~
6_____3F4E0 q) ~4 N5 }/ ]( E% w- m
7_____0A9D
: P1 e6 p$ M# D5 b8_____1A1C5 V" J2 O0 k" ]! O" j2 o6 y* _2 D9 G
9_____6D20
" Z, k4 @9 k( ^1 x2 Z0_____1089$ W) S; Y9 s  m3 q  r% z
a_____0F3E
/ J* N8 }$ V( z: C- H: Hb_____3159
' V3 e- Y9 X2 u; T: Rc_____3517
  Q) U8 O2 Q3 u) y: s& M: wd_____419C0 ~- w9 i+ _/ a
e_____615C) D0 w: V/ P' C
f_____556F+ A; {9 V' ~8 i
g_____2B7F4 m  y2 b0 h3 |6 @1 m
h_____0F9C( ~* m& t4 C5 h: V0 i- y0 c3 p& Y
i_____00FA
' f2 \6 c: @; Z0 [% Lj_____5A504 R8 q& T$ z2 E  ]) C8 x8 M
k_____2850& u$ _5 U/ N* G' Q
l_____3E7B
9 c" C4 h6 F. w* X+ q  ^m_____71C5+ `8 K7 F) _  ?- o
n_____1FC8! z+ q7 z3 X: Z! y1 a7 z( J( O
o_____74C1" e6 U+ _  Z, N8 k! u# i- \
p_____5FB8
! v4 m8 n# ~! c2 ~) D4 x( B- mq_____6085
/ ^4 `0 ~* k2 S3 h  ?% W4 G, rr_____3AC4
- T& q; v$ j; Y1 W" \' m3 Ys_____2F508 V8 G# v$ b& n* K7 n* \
t_____36F88 R4 h- p: \/ a% Q% {; Y
u_____70104 Z' y. Z0 L: ^+ A
v_____0B42
6 X) \; z: B# L4 N4 L8 g8 I7 Y! _w_____1C7A
7 `. _& J( z/ c6 S2 A) t0 ox_____16F8
8 Z& E, c" N* ^6 E, z* Cy_____2EE7
# `5 ~( \2 b  f& P9 Rz_____5CF3
+ R9 r$ g! W' L  O: m: R& n/ p!_____62339 V! }. U  F* R0 c, P
@_____3A45! R* S9 R  F) `. \; j& o) z
#_____2291
( z2 T7 F6 j6 W4 q$_____5D5C3 C  H. b: |0 o1 ^1 }9 ]
%_____09B9! F' ]1 p% Z+ M- ?3 ], g6 b* M1 c
^_____43EA
0 u6 c$ \3 Y, }6 l3 X; l9 L&_____62B9
! J. n4 |8 K( M# N4 L*_____6301
" \% d* C+ ~. `4 C& R(_____4659
9 s0 O4 F' j7 u2 W)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

返回列表