返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm! V( K, |# L1 Q8 q9 g& P7 f
原始出处:http://www.3ast.com.cm
9 c0 ?6 J$ Q4 I- u3 u+ M5 X# T/ ?* Y1 T/ |% `3 T" b5 B
看不懂的直接绕过
3 g7 A# V4 t8 V$ p! O* e6 S$ |1 a加密前为:hwy123456
% x* S4 S3 H+ l+ j  A2 N) N加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E$ N3 C# U; B2 d4 M  Y

3 p9 P% r9 j. x% A, j% _============================================$ D5 c8 p7 K1 A  s# m2 O6 ?0 ]
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
, m& A5 X4 {+ [& i! b  p* G# b也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
# C. b5 x. G+ t+ [6 @; T以下是RSA算法文件1 {' y. b  g9 k* g& x8 [" k

' X, p& x  p  h" R& q$ N& J文件名RSA.ASP
2 {; S5 p) Z  b- Z/ e5 d* d0 L===============================================
0 q( {& X3 B( v/ I+ P2 B0 X<% 0 `" J) e2 U% M" P
Class clsRSA   S7 z* a$ b  p: y" ]7 M
Public PrivateKey ; H' x( n  K" H( q# i- [8 R2 R6 l
Public PublicKey
1 `7 s1 w  R8 W! b' u3 XPublic Modulus - Q, ^+ S0 I2 F3 O, {
Public Function Crypt(pLngMessage, pLngKey)
/ G7 {: b8 H" r" w% t. XOn Error Resume Next   f4 s8 z4 C0 h% I/ n- Q! G6 z
Dim lLngMod
$ [% f0 b. a5 ?1 w2 vDim lLngResult
0 D9 @* W# w1 ~% `. L$ W0 o5 CDim lLngIndex - K9 @9 f8 `! ~8 W, {0 ?' C9 Y: T
If pLngKey Mod 2 = 0 Then
$ j9 K  j  |. h. O& _- O& NlLngResult = 1 , ^5 M3 f& ~1 V- E9 ?
For lLngIndex = 1 To pLngKey / 2
- J/ x3 M* P. X- U! F' s+ \  ZlLngMod = (pLngMessage ^ 2) Mod Modulus 3 Y; l2 M4 ]8 W1 q; _$ y) _
' Mod may error on key generation
: ?, l" v' w7 r1 _" G7 H+ PlLngResult = (lLngMod * lLngResult) Mod Modulus 6 R. F6 ~0 T6 h. W  s
If Err Then Exit Function & o6 d; E0 L5 p* Y9 o( z0 @+ z
Next ! q) m7 q* N. R, I' w# o" X
Else $ D, X' i+ _* P* I8 U8 H7 f" K
lLngResult = pLngMessage
, D* k1 u3 E/ }' j- cFor lLngIndex = 1 To pLngKey / 2 # Q% K4 p8 C- i0 L! Q& O3 T5 A
lLngMod = (pLngMessage ^ 2) Mod Modulus ! H" T9 f  c# w
On Error Resume Next + H% R5 Z8 z" M8 ^; S: m
' Mod may error on key generation : K8 ]# h, v; V
lLngResult = (lLngMod * lLngResult) Mod Modulus
; a/ s0 Y4 j, W' g! N- rIf Err Then Exit Function
, t  m8 R3 B; Z) S; q. YNext
, o! q$ j0 _! s8 s. _) qEnd If
* ?# }: z+ q4 Y; b+ M# y6 z6 qCrypt = lLngResult
6 w  }% }) W; }# D9 q* y$ sEnd Function
6 |0 U, I- A6 o/ h3 ]2 S# l6 k$ c3 X. U
Public Function Encode(ByVal pStrMessage)
: Z# x5 t  N" @! x, `/ }6 IDim lLngIndex
! P3 U4 G7 q+ o6 j3 p0 j) lDim lLngMaxIndex
. z( w3 x% O# r' w' S, ]4 d) qDim lBytAscii / J) n# ?& N3 ~2 {( T7 m7 z
Dim lLngEncrypted 8 |. l# ^0 G: ~) r& g0 V" q
lLngMaxIndex = Len(pStrMessage) , _( n/ a$ l+ b. N6 I
If lLngMaxIndex = 0 Then Exit Function ' I/ o1 a6 N4 n+ ^( s) \
For lLngIndex = 1 To lLngMaxIndex
; n) m# ~: V- U: Z; wlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ \* C+ _! P1 A, n3 KlLngEncrypted = Crypt(lBytAscii, PublicKey) & A6 M6 k5 h% G9 H8 `
Encode = Encode & NumberToHex(lLngEncrypted, 4)
( N$ X5 Q9 o5 M- F( w9 b6 XNext
6 A; V7 C9 f% z: n: ]End Function ! @9 _/ ^6 R3 X( b
Public Function Decode(ByVal pStrMessage) " k5 x- h7 e' o! `/ h
Dim lBytAscii
1 W5 f  {# }2 ~/ IDim lLngIndex , h2 W+ s1 ]! e
Dim lLngMaxIndex 6 b0 L6 v* f+ _: y
Dim lLngEncryptedData " t/ U# I' }  v. j
Decode = "" " w* U- s; D2 q
lLngMaxIndex = Len(pStrMessage)
' k* c" O  v# CFor lLngIndex = 1 To lLngMaxIndex Step 4 0 w0 r) s& K6 y
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
* c4 m& o7 A; m$ R* w. F( ^lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 e. D! k" o7 e2 M+ ]7 K4 C
Decode = Decode & Chr(lBytAscii) ) o! T: I# e. M) T) W8 @
Next
% [. l1 k9 I4 J( Y5 ~End Function 0 I/ v. f- s# F! [
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 r; f* V3 p5 [8 ]3 D
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
+ \3 @. d6 i. a. x8 e& i- FEnd Function 4 p  L. N& c! Q0 p
Private Function HexToNumber(ByRef pStrHex) * F' t+ C1 s( B, |. i
HexToNumber = CLng("&h" & pStrHex)
/ _7 B2 }  I, P+ KEnd Function
; q+ o! s4 m- ~7 V6 pEnd Class " ~9 x/ S, `- c0 }2 F( q3 T
function Encryptstr(Message)
" E9 @) j! j0 i- ADim LngKeyE
8 A3 G, ?9 E9 c5 T; |+ \/ HDim LngKeyD + l4 Z$ X# M) u$ F% J2 [
Dim LngKeyN 4 u" N* M% }/ O+ W4 Z
Dim StrMessage   o4 j" N/ g% ?, b
Dim ObjRSA
" N& m5 @+ x+ A" x' `LngKeyE = "32823" & o; d& h" [. w
LngKeyD = "20643"
, h* {2 g0 h( J3 S  QLngKeyN = "29893"
% A. A5 q! e' g) o  \: R0 B; jStrMessage = Message
7 ^- ?0 }& v* a# K6 g7 JSet ObjRSA = New clsRSA   C7 i# g$ z, z4 P
ObjRSA.PublicKey = LngKeyE 2 J( G9 b% x) i( S: K
ObjRSA.Modulus = LngKeyN
5 K6 G$ P  d5 b# u8 kEncryptstr = ObjRSA.Encode(StrMessage)
+ E. f! Y2 g  T& m. V8 {+ DSet ObjRSA = Nothing + @: f/ u& X5 N- `6 v
end function
8 t* ?  f) M! ~Function Decryptstr(Message)
- D* g. _* _% h0 u! hDim LngKeyE
- n+ U  l" s+ L$ H+ r7 N$ cDim LngKeyD   {8 b" X$ h) C
Dim LngKeyN 1 V' e  b+ [; G2 C/ C' R4 Y5 a
Dim StrMessage 9 `! J+ l) a- @' W# p
Dim ObjRSA
8 ^# Q5 _$ c4 y; \, C( {LngKeyE = "32823" 6 L! H$ E7 E9 s
LngKeyD = "20643" $ p3 X* t8 T- A5 z
LngKeyN = "29893"
+ a8 m& f! y& h  k5 gStrMessage = Message $ c6 F7 K3 s2 O! k. t
Set ObjRSA = New clsRSA % |0 h7 z; _, T6 N+ @9 Y% k
ObjRSA.PrivateKey =LngKeyD * z) c) G* b8 W' d4 w( J! u0 t, }% g
ObjRSA.Modulus=LngKeyN
( W" o% v) y& gdecryptstr=ObjRSA.Decode(StrMessage) 6 F% P4 }8 Z$ d2 T# \' O( ?
Set ObjRSA = Nothing 5 Z& S: q% c( C2 Z
end function
+ i/ F% b# X$ |1 o9 s%>
1 e  p1 s* h* ?* e- Y4 b2 e===============================================
, e  k  y4 D" m/ b( z* \
3 N: f& f& _! L' u% ~: S还有一个用于测试这段代码的test.asp: r! ?4 k: I3 g
有兴趣的自己搭建个IIS测试下' d2 P/ _1 C: t8 a( e( u9 o
<!--#INCLUDE FILE="RSA.asp"--> % a! k7 {, K9 u& ^
<%4 Z% E6 E! K% Q: N
function Encryptstr(Message)
. K) v% P1 l1 w. V0 xDim LngKeyE & ?; N# L+ ?1 I, P, T
Dim LngKeyD * A4 w  w3 ?. v& y2 x" m1 v! u. ^7 H
Dim LngKeyN - D2 ]/ m/ B5 d5 X: g+ W( n' N
Dim StrMessage
+ s* b* Y9 t3 p# C4 d" R) T) EDim ObjRSA 3 F0 F* Y1 r7 v- ?: v
LngKeyE = "32823"
& I2 I, @- v# s4 wLngKeyD = "20643" # @. T# c- ^* ~3 T
LngKeyN = "29893" ) @6 x! @* {/ I. c+ r- g
StrMessage = Message , |5 R# D  O' y+ f
Set ObjRSA = New clsRSA # A; y6 d7 f) ]8 e
ObjRSA.PublicKey = LngKeyE
" J; s) [, g. W- TObjRSA.Modulus = LngKeyN . t7 |2 r5 G- f7 Z5 Y7 v2 Z
Encryptstr = ObjRSA.Encode(StrMessage)
# b1 p9 `# Q+ r: E6 M8 C2 CSet ObjRSA = Nothing
& ~2 a- [# [3 L* f5 Z8 m5 Tend function ; V0 s- s) ^3 [1 f6 E6 C
function decryptstr(Message) $ N0 Y* v5 G7 ~0 l5 A& I
Dim LngKeyE
1 `+ u2 k1 p/ aDim LngKeyD ' R% M, J; M* z6 V6 r# [% z
Dim LngKeyN ! i% b1 B: j% }) E9 q# l
Dim StrMessage
' J# x; H' R9 C* j# C. c. ADim ObjRSA
% L) T. f  \- d* p: yLngKeyE = "32823" 5 ], t5 [6 F6 }/ C) H" }: B" K
LngKeyD = "20643" 0 ~; O, v+ }5 B6 d$ D
LngKeyN = "29893"
5 G7 a: t$ }9 d% jStrMessage = Message
  T! x8 [) [' i7 {Set ObjRSA = New clsRSA
7 B  A! u+ I$ ^% j  jObjRSA.PrivateKey =LngKeyD
; }. B, W  G& ?4 V+ NObjRSA.Modulus=LngKeyN
+ @% ?2 J! R- Fdecryptstr=ObjRSA.Decode(StrMessage) ; v) L, j( L! x. \5 j6 F, n* p5 j
Set ObjRSA = Nothing 8 d9 \  A' T' o- W2 p
end function
, z  m. ^& Z) H3 }+ @# N2 Qdim last,first ' R0 Q, `) A0 ^2 w# b. `3 }
first="!@#$%^&*()" 3 O# P* s# k9 t4 W) Y. L, M/ n$ G
Response.Write "加密前为:"&first
' u! G8 ~% `( Q# J% Ilast=Encryptstr(first) " C' ^  i# Z, o6 u& y  X1 z: b9 Q
Response.Write "加密后为"&last
- Q/ r0 O) G# o; g. HResponse.Write "解密后为" &decryptstr(last)
6 Z$ A5 F" h; n5 @& A$ S%> ==============================================: Q  f1 U, Q! p+ B! v% @
剩下的就是字符的对照表了
5 p1 b. P) K. p6 g" \! e9 e===================字符集================% S9 R8 ~! p, S# q  k2 _* U
1_____6EBB$ \  {' s" B: s! A
2_____5C1F
4 Y% u" @0 l2 T5 ?3_____4D75
# z; q. s6 ?2 K; h  W: d4_____26CC
- J# E+ n3 q& T: j5_____4F881 ?) y" ]- g; _% p3 O( ^6 B: @( k8 G
6_____3F4E% T) U  B9 S5 i' J
7_____0A9D
# ^$ [7 T7 E3 \/ R  S: e: B- l4 r8_____1A1C
" i) B( K6 L4 S- s& g' Z0 l# f9_____6D20
8 Z' ~2 k8 y9 E- K& Z' ~. P0_____10894 h( a3 z# n1 g& k0 g
a_____0F3E
- U6 ?  j: Z+ ob_____3159
  ]+ n- C, k: F7 L; \( xc_____3517. F, z( ^. W2 O0 b
d_____419C, P: }6 E% F5 Z! D0 j
e_____615C) I( n1 Q6 K, X8 D  w
f_____556F
8 C/ s; t( j, L( ^4 C8 s$ sg_____2B7F# \  A3 L0 {) q5 x% a
h_____0F9C
2 V5 t$ b$ ^2 ]4 Hi_____00FA
$ F4 a% T: x% F; Hj_____5A50# a! G% ^- L% x6 q
k_____2850
( ^4 o( x6 Y/ e" Q) i+ [) Ll_____3E7B
% c: q# T) N  g1 o8 am_____71C5
3 e1 H# o3 r2 F1 U. E2 ?n_____1FC8' k0 V$ {5 f& A0 Z+ \
o_____74C1
. s, F& G5 k9 f! ap_____5FB8" J& T# ~/ v  ]( d& P
q_____6085* ?( v0 S* e1 O  X  W! _7 ?
r_____3AC4
6 G7 v3 g2 A7 i; {s_____2F50
( G2 A( `; n* |8 f5 _t_____36F8
! c8 ~6 T1 ~! H  k( \2 Ou_____7010
" {: F& j+ R, K. L9 hv_____0B42
9 r) F  l: d; z2 Q8 lw_____1C7A  M+ v' _, z3 _! j( B5 J- P) @
x_____16F8
% `; C! \! T# [$ ~y_____2EE7, N5 Z* {8 E4 a* s
z_____5CF3- y; m' M% R  @' e6 q; O
!_____6233+ W3 _9 d) E& p9 H2 o
@_____3A45( Z' v- ?: c) P8 ]& t6 m6 [7 e
#_____22919 M1 g" J: |' z& p+ J
$_____5D5C& G& d! V4 K7 b
%_____09B9
/ s6 e, a8 h# ?1 d^_____43EA
& N4 o' `7 u7 y- j& u& c( H&_____62B9$ C* \; F% K( N# H5 m* R
*_____6301* i( e" J% I% N# Z  ~7 L$ L
(_____4659
% b7 N" ^5 _  f)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表