返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm; j  f, p3 b( t- u4 w' \
原始出处:http://www.3ast.com.cm
# G  A  U5 i/ F+ F- W+ [8 s/ O2 c! D! w+ S- u* F7 u
看不懂的直接绕过
) D7 F. p& @! i8 l% V" n2 ?0 V加密前为:hwy123456+ c4 p% o% y! {5 Q
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E* v% u; i. m6 {1 c4 @

/ h* f3 Z* \7 y9 n( U7 {& f4 y2 R============================================- h# i7 y5 F- K# |% u
上面是当时自己校内的心情。现在已经解破出来了,分享给大家* s7 r! f  X9 p  l4 C
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
6 `, Z: `6 }0 ^& |4 z以下是RSA算法文件
  T/ Q7 ]2 j2 T: f* [/ F5 c+ n8 E* {* d$ o3 M. t1 p1 j. C
文件名RSA.ASP" S- o! V3 W* I7 W5 f7 P
===============================================
  t* y, `; E. ^) u. w% l6 v<% . [7 C: {' C% B6 x
Class clsRSA
* j) {! T! ^4 k+ MPublic PrivateKey % ?$ `% }* W& q9 o
Public PublicKey
* r8 b; ?$ n( R  ]. I. F. ^Public Modulus
5 [. q* a# h. ]- H, zPublic Function Crypt(pLngMessage, pLngKey) 7 E0 u: u1 r$ t
On Error Resume Next
  f  c5 Q( l: w9 `& QDim lLngMod
8 q) K" v3 |1 X" ?: sDim lLngResult
. Y/ x2 L; J  _' `5 Z- D6 zDim lLngIndex 6 y) f4 O  Y4 I: p% Y4 m5 J) @2 |
If pLngKey Mod 2 = 0 Then 1 x7 d" X7 w: M
lLngResult = 1 ) w% S+ ^1 j' d. M5 T+ _
For lLngIndex = 1 To pLngKey / 2
9 j6 a% y( U9 _' m5 z: d: DlLngMod = (pLngMessage ^ 2) Mod Modulus ! P* `$ [$ `$ a& u
' Mod may error on key generation 2 D( y# g+ e# }% a- w
lLngResult = (lLngMod * lLngResult) Mod Modulus
$ a1 R  q* g; {7 u% b) J9 p) tIf Err Then Exit Function 6 x, B. ^- k, s, j
Next 2 m5 ]* n, k9 x0 n0 l" E' ?. k
Else
; v2 E4 [6 t: r. E5 zlLngResult = pLngMessage 3 W" C" _8 w% l* X3 D+ i
For lLngIndex = 1 To pLngKey / 2
' \' G0 T% @$ A, C. ElLngMod = (pLngMessage ^ 2) Mod Modulus 2 [+ o/ `. }# \# y( _) Y- m, W
On Error Resume Next
' f8 H4 o; {6 C5 d5 s' [' Mod may error on key generation
' l5 @$ ]) M" K# q4 HlLngResult = (lLngMod * lLngResult) Mod Modulus 4 A0 l/ F  Z4 d  G0 F/ }
If Err Then Exit Function % V( T+ J- X5 n4 v# Z2 u$ ]
Next
  t0 G+ a. o. K$ vEnd If # b- X  ~3 V8 Y
Crypt = lLngResult - o6 I) R+ S: o/ P  U
End Function
& w$ r0 I" Q2 Y  M5 f3 N, r' n8 C2 [' V
Public Function Encode(ByVal pStrMessage)
" v: X- p' O' ~# q- B1 M$ ZDim lLngIndex & w& C& \- H0 |0 e- H
Dim lLngMaxIndex ) b9 `6 i* Z" ]. b
Dim lBytAscii ! T) s, E+ Q. c. P" e( E2 |7 M
Dim lLngEncrypted 3 u# g- T+ D. _- ^
lLngMaxIndex = Len(pStrMessage)
/ m4 N/ E2 W) k  BIf lLngMaxIndex = 0 Then Exit Function
" r( y. [; P  @4 n! ^2 U5 dFor lLngIndex = 1 To lLngMaxIndex
# C, H8 C0 |1 [lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 0 ?. {7 F* z4 h6 z+ H
lLngEncrypted = Crypt(lBytAscii, PublicKey) 2 \% _5 Q5 ^9 h
Encode = Encode & NumberToHex(lLngEncrypted, 4) ) f# f( }, s7 s5 a, v, a5 `
Next 0 f$ l% b/ R8 t" ^# S1 T! F
End Function ' ~# h0 w9 `) Z' g0 ^' S
Public Function Decode(ByVal pStrMessage) ( L4 R% y# f5 y5 ]# V+ o8 z: F
Dim lBytAscii 8 O. i' w: Y6 y- u1 j
Dim lLngIndex : `4 o7 @+ T7 e
Dim lLngMaxIndex
. |9 n9 @$ j* e2 R9 a5 VDim lLngEncryptedData
: Q# ]* G  a% {  c2 XDecode = ""
2 l. ~% f( T1 e" X4 SlLngMaxIndex = Len(pStrMessage) - [# C" d0 C6 g: Q; m( c2 ^! O7 b
For lLngIndex = 1 To lLngMaxIndex Step 4 ! N: H" p! O8 q6 h7 H! H+ b  p; c
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) : ]$ q, @. D2 p  S
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) - A' g8 x2 M2 J" \) w6 F
Decode = Decode & Chr(lBytAscii) 0 E7 ]' f2 d6 v0 E
Next
% l5 |" Q. V9 _6 q, NEnd Function
1 a* p) f  X0 C0 n. S' bPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
- {* V# ?+ |% [$ Y+ Y. ]+ eNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) % T9 Q/ `' k7 v
End Function . n. J, Z" G* `$ P
Private Function HexToNumber(ByRef pStrHex) 8 F' _! I( y" ^9 s
HexToNumber = CLng("&h" & pStrHex) + n' H/ y+ H  |3 r3 ?; a3 Q
End Function
  v- e* S8 _$ a9 I% j! REnd Class 3 R2 E. ]( u! t* z
function Encryptstr(Message)
# v& M9 |7 U0 Z. n3 }. bDim LngKeyE
4 X/ u, _' D, M( [) H8 ~# Y3 QDim LngKeyD
& \' z) k4 t! H( Z# b7 jDim LngKeyN 1 r$ m! h& ]! x! K( x, i
Dim StrMessage
. b( ]' k# ]5 R2 G3 \! J2 {! F% DDim ObjRSA
" {# Q, E& A) p* c4 @LngKeyE = "32823" . i/ m* |0 ~5 c# @6 h' ^& G" [
LngKeyD = "20643" % J4 u! e9 ~5 q+ y2 x
LngKeyN = "29893"
  G0 f; M  S# z8 X: L5 IStrMessage = Message
, `: o# h" J: mSet ObjRSA = New clsRSA # ?" L9 V7 t7 B
ObjRSA.PublicKey = LngKeyE * B7 [# `9 g. b* c  d5 C; i
ObjRSA.Modulus = LngKeyN . V/ q. M) M4 U/ N
Encryptstr = ObjRSA.Encode(StrMessage) - `2 J7 |8 ^' Y! v) h. B0 M. T% ]: x
Set ObjRSA = Nothing
6 ^5 Q: ^/ M7 T2 t; Wend function
1 G* I+ V$ K( q; Q, v9 ^# `Function Decryptstr(Message)
! I  n$ t' z3 h8 O$ [) DDim LngKeyE ! Z; {. O' s2 R* l
Dim LngKeyD
. t4 e& E3 i! Q8 {3 RDim LngKeyN ! ]/ |. ^' K( L! Y& ]: b1 g; v6 r
Dim StrMessage 9 u# h  B# t/ }" ]! I. J( I
Dim ObjRSA
0 F8 c5 k9 j' v1 [LngKeyE = "32823" 2 L  Z, [$ E- F! g6 j+ {
LngKeyD = "20643" $ c* g3 J/ F8 S* N# C- m3 e
LngKeyN = "29893" ( o3 d  v$ r1 Q* a  s
StrMessage = Message
6 T/ d& G$ R% j" q4 d* j: ~Set ObjRSA = New clsRSA
3 l7 a( i* \  R" m7 @1 bObjRSA.PrivateKey =LngKeyD
* y; R* y6 {+ W, bObjRSA.Modulus=LngKeyN 4 j7 m' [' E3 X* w
decryptstr=ObjRSA.Decode(StrMessage)
5 G2 T" z5 b& F0 ~7 m* uSet ObjRSA = Nothing 0 ]5 k0 _4 G! J2 m* s: O
end function
$ u, ]" L' r" W! A! g" O%>" b4 R2 \9 P! O: S1 X, Y" a/ y$ Z1 V
===============================================
8 ~9 \) |: B) Q% c4 T
. x2 `4 a) y; d' W, O9 {0 o还有一个用于测试这段代码的test.asp: F; i3 ^& ^; n3 X# G3 u2 p
有兴趣的自己搭建个IIS测试下
: z7 A9 m% ^' ]3 \5 q<!--#INCLUDE FILE="RSA.asp"--> 4 ?9 r5 ^; p3 |5 {5 O
<%2 G4 I% [+ B" W1 N7 k) {
function Encryptstr(Message) 6 ?9 Y& H3 j2 [9 S1 A" k/ X$ X
Dim LngKeyE % h% H9 c; H# Z5 c
Dim LngKeyD
  L" i6 x9 ^$ d2 H) mDim LngKeyN 0 B# }$ W( Y6 X
Dim StrMessage ! Y/ @- ~0 q/ s2 l' M. `
Dim ObjRSA
& z4 A" b, K3 S7 \0 _LngKeyE = "32823" 9 c6 G# d  r4 u
LngKeyD = "20643"
% d2 v8 B  x3 V! d7 sLngKeyN = "29893"
* w5 m: F$ [6 @" h; dStrMessage = Message $ _) k. o$ {! b
Set ObjRSA = New clsRSA
) M) A8 E2 @  k" LObjRSA.PublicKey = LngKeyE
4 g4 b1 e9 I$ Y: C: v3 {$ W2 dObjRSA.Modulus = LngKeyN   |' ]4 M% w7 j, a
Encryptstr = ObjRSA.Encode(StrMessage)
- q9 w! R( ^3 g/ m2 v' a& ~Set ObjRSA = Nothing
& _7 z5 }( E6 t' _1 u; D4 |& nend function
/ j) J# O! [* {1 Y) r, e& Zfunction decryptstr(Message) 4 @  l3 h- S" j3 i  x
Dim LngKeyE
) e5 K  }+ ?, t+ {7 \Dim LngKeyD ( e- Q# a0 `7 Z# S5 D
Dim LngKeyN 5 ^3 P: h" W7 ^
Dim StrMessage
* z* ~, P1 Y% h  {  zDim ObjRSA . A) u/ U, |$ d! q7 I
LngKeyE = "32823" % D: [# O7 }' z2 B7 ^3 R
LngKeyD = "20643"
, B. C# z. o3 S9 S% G2 ULngKeyN = "29893"
0 M8 O- ~# x8 R! M6 O2 q7 \; u0 jStrMessage = Message 0 A' A$ g, N" l' q. E7 [) p
Set ObjRSA = New clsRSA 6 t! J% r! Z  n. g# ^
ObjRSA.PrivateKey =LngKeyD + i3 ^. l# V! M) P! N
ObjRSA.Modulus=LngKeyN
% k" _; {9 g* g# i' A6 v  kdecryptstr=ObjRSA.Decode(StrMessage) / C- [( h# C- X/ V9 p: S8 H1 _
Set ObjRSA = Nothing 2 B$ r7 d6 J) m  k+ G
end function
3 J  a* d! h: v! i; ?. Udim last,first
! J' N8 ^( j4 `& F& @first="!@#$%^&*()"
  m  ~' g. [( L$ o) ]+ nResponse.Write "加密前为:"&first
5 S1 _* h: T+ ]& m) J8 C3 tlast=Encryptstr(first) % h3 T  d$ t+ Q$ H* O! a
Response.Write "加密后为"&last - g) w+ @- E  A
Response.Write "解密后为" &decryptstr(last)
( L  h1 N) @  W1 D%> ==============================================
0 ]  n' c" P  h2 U% m剩下的就是字符的对照表了2 U/ }* Y7 X, V% L3 i
===================字符集================
+ ^/ h; |# x% n3 `% \4 `% L# U1_____6EBB
3 l  O7 s4 K+ G# U* k6 q% B2_____5C1F. }+ H1 A9 g" J( U3 u9 d+ l0 v) L! W
3_____4D75
" Q3 q1 q) }2 _$ ^& K4_____26CC+ G( ]3 f2 H( x3 H
5_____4F88
( w, w; ?, Z7 J$ Q# J# |6_____3F4E3 F4 y2 y% @# g2 E1 r$ a% i0 x
7_____0A9D
- o( l& H- {4 m$ H0 V) V& _, C8_____1A1C
; g) k/ D3 E& X2 l* ]0 w9_____6D20' @* A. R; s+ U1 [5 s1 k- s
0_____10898 [5 h- @- |: |* Z3 q/ g3 l' B: |7 ?
a_____0F3E
) V, V' R) M/ l! E1 O+ ~+ Eb_____3159
* [+ Y$ R' D/ Oc_____3517# J1 G7 Q+ q. M
d_____419C
. X  J- Y# [2 x' {' w' i! B9 ae_____615C4 z( E  E5 u, |* H$ Y
f_____556F
' T$ Y5 ]. [9 U# `g_____2B7F
( O/ I* X8 n* S' B4 m. n1 W- ph_____0F9C: d4 j; w; \! [
i_____00FA
: ^2 s  S: K# X9 U5 \) }5 z! mj_____5A50
' @" E9 G0 |% \k_____2850- d' \. {7 n5 ?# W$ j+ C; G: R
l_____3E7B" e2 `/ \  K% V; b  L- l
m_____71C5
6 u% p0 t6 c7 O5 \0 a+ m: r5 U1 k4 Z8 Nn_____1FC8
' p& n# J* B$ ?1 z& l. k1 Vo_____74C1
$ k/ L- U2 Y- Dp_____5FB8& j, `5 B" H  j
q_____6085
- _  \" ~5 X8 Y# Q6 y, Y- mr_____3AC4
* H" {  O2 X" D7 G/ Y, s7 d( h1 ~# ~s_____2F50! Y1 |! w! i, `6 W0 B- ?
t_____36F8! V5 O, U& o5 R
u_____70107 a: W* g* l$ r( Y2 s
v_____0B42+ |( R6 \$ }& ~9 x
w_____1C7A
$ w/ y( x+ i3 u4 }, cx_____16F82 {' U) y4 d( f7 D+ n
y_____2EE7
, H4 M; a/ a7 f; V" e6 Rz_____5CF3
6 n3 D' ]( K1 Y$ b!_____6233
& X  ~. x% {: \: ]$ }/ G@_____3A45
' q$ L' q2 k/ X0 S#_____22918 z. h5 V& b0 Z5 A& R( z
$_____5D5C* ]7 z) S) V4 U: v( F( u( M
%_____09B9. v" L2 ^7 P7 n3 V1 E# M
^_____43EA
, h. h/ K- r# z( v0 e/ i* D&_____62B98 _& ]! a4 b9 G/ `* @/ e
*_____6301; _% i4 c- N, D( g: I
(_____4659
( `3 d! w4 u1 c) K)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表