返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
" v( j. E* M3 ]6 u# F原始出处:http://www.3ast.com.cm
+ ?2 d/ ?0 z4 {$ ~4 A, m- O1 }: G* b- V2 H) ]" Q1 P6 ~5 O
看不懂的直接绕过
6 S- L) _' F% |& v加密前为:hwy123456
' M; S( c1 [3 B3 G5 M9 N% P; M# w加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 L/ z- F" X. f6 _( o! L6 J
3 Z8 K8 q' v  G. I& z* f3 `* @* a============================================$ U' ?; @% q+ p) f" U. \
上面是当时自己校内的心情。现在已经解破出来了,分享给大家, N7 D/ V/ F7 A5 _8 m
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法) ?  ?% Q8 s9 u# r5 }( X
以下是RSA算法文件$ @" o! Y2 K0 `6 S9 R: K

6 W2 y! z  \# @& c文件名RSA.ASP+ k% W% e- p+ |2 |3 y* F
===============================================
2 n8 R; D* x, V<%
2 i8 j1 Z" {/ IClass clsRSA
6 q, ^& p* D; h. YPublic PrivateKey / N- d. y$ K% x: S7 w# y6 @
Public PublicKey 4 s0 F# `! M8 G
Public Modulus . o$ C) o; r' _2 @* k6 {
Public Function Crypt(pLngMessage, pLngKey) " l" r9 X5 z! x  _$ ?
On Error Resume Next
4 l% ^* M; ?" cDim lLngMod
& I. y9 ^! u8 ^Dim lLngResult
, j6 y, r& Z$ o$ W- ADim lLngIndex
# |9 i$ J& K: [9 c9 K- a# MIf pLngKey Mod 2 = 0 Then $ c+ {9 ^0 H! I  M- |6 m0 l
lLngResult = 1
; D, S: Q* M! LFor lLngIndex = 1 To pLngKey / 2
; o' p& O; V5 G5 A; KlLngMod = (pLngMessage ^ 2) Mod Modulus
7 k# L5 c! D7 z6 n8 g3 j% I7 {8 M' Mod may error on key generation / P2 U) @( a5 I8 {; x9 p
lLngResult = (lLngMod * lLngResult) Mod Modulus ' x  \" D; Q  I* Y$ Q+ i& h: Q/ f
If Err Then Exit Function
9 w+ W5 }9 l3 S( ?% |8 b! VNext 7 g7 l: c. p* ^5 f
Else
: E8 t$ S% y/ z/ G2 v4 J, DlLngResult = pLngMessage
' y3 r1 H/ }9 i( j# _For lLngIndex = 1 To pLngKey / 2 0 N3 ]' P- p7 O- e4 y
lLngMod = (pLngMessage ^ 2) Mod Modulus ) z6 {: L" F9 G6 W+ `' R
On Error Resume Next   U* K9 I. H" t
' Mod may error on key generation
" f" ~( w) C3 S0 E7 C# M0 XlLngResult = (lLngMod * lLngResult) Mod Modulus
* A) S& Z) N0 C4 pIf Err Then Exit Function
# a) A7 g% H6 b# b3 {2 KNext ' b1 v+ k: Z( F8 c6 d1 ]
End If * _0 V5 U% \: j# y% |3 S. x
Crypt = lLngResult
1 N" W3 q9 d( W- {- p& R2 m! X! ^End Function
& y  _& ]0 @$ Z, x, l0 ]2 }
& J/ b( `+ S! h* Q; mPublic Function Encode(ByVal pStrMessage)
  p; o2 e! p6 ^Dim lLngIndex & S  A/ L% Q1 N& l& M. ^( `
Dim lLngMaxIndex
. ^7 S$ g; @- U1 X3 |Dim lBytAscii % O$ R0 e; A& u2 _9 A9 f
Dim lLngEncrypted   }( z9 z* [2 S2 k" C1 k9 B
lLngMaxIndex = Len(pStrMessage)
7 \$ k* T+ o3 k& |5 jIf lLngMaxIndex = 0 Then Exit Function
2 L; w8 {: o5 t+ {; hFor lLngIndex = 1 To lLngMaxIndex 9 i) f& k& \- ~& A7 F6 P
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 0 S" E' e- A. u# L9 `' a; O
lLngEncrypted = Crypt(lBytAscii, PublicKey)
7 A, Y, q( U5 j- F1 |Encode = Encode & NumberToHex(lLngEncrypted, 4) 2 h9 ]$ o3 v/ h4 d- @& p
Next ) ]1 ~( {4 z/ g6 r+ N
End Function
5 R) f+ J/ k$ D( w9 ^Public Function Decode(ByVal pStrMessage) ; w% G' v! W! o; [; ?1 V
Dim lBytAscii & \7 {5 x. B' R+ c
Dim lLngIndex : E" c  U, [7 L4 h
Dim lLngMaxIndex 6 L+ i3 `! y: d/ K, y) N9 \. m" o
Dim lLngEncryptedData + ]2 ~2 {* I* R" \- b, u, K
Decode = "" # ?. w& t) N2 n$ k
lLngMaxIndex = Len(pStrMessage) 8 _. b3 Z: v/ j! E- P/ R1 j
For lLngIndex = 1 To lLngMaxIndex Step 4 * x, i9 T; _+ x, D$ v* R+ R: y& ^
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   h, {! M. c! g/ s
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) / f. h( C6 w0 l
Decode = Decode & Chr(lBytAscii) 5 m, P% u6 f! w
Next
/ \- k: `; K0 B3 ]End Function 2 ^6 ?& I) O0 j) r; H
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) : B6 K! i' B0 U' m/ [: k5 t1 K
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
/ F8 x5 a8 }* N0 p) @End Function
& W% n% w3 @' _Private Function HexToNumber(ByRef pStrHex)
! A" A/ x) I4 Z9 BHexToNumber = CLng("&h" & pStrHex)
' K7 i" O, U+ z- V* [4 k1 i/ tEnd Function
. I/ D9 q9 S4 z9 ]& u# F: K" mEnd Class
: h1 J& b" r% h3 P% v. y4 O7 t7 U/ Dfunction Encryptstr(Message)
& w& T5 \2 y1 c- J3 CDim LngKeyE
, w- k( W. b3 _' N7 ?/ K( M( mDim LngKeyD
1 d! D7 ~3 f# D- CDim LngKeyN ; a, u+ l$ U7 m6 V
Dim StrMessage
) j  C; J/ x" p- K0 QDim ObjRSA
' o1 ^5 i% @* [9 D. h3 }LngKeyE = "32823"
6 w5 D5 U. z* }5 X) _$ H" I0 ILngKeyD = "20643" ; }7 G/ ]3 t7 O1 X; R# |% G& A
LngKeyN = "29893"
  @' e- b" W' U3 jStrMessage = Message 2 F8 {" p. G0 u3 h$ v4 A, x, o
Set ObjRSA = New clsRSA % r  I: r3 f/ b: P8 V
ObjRSA.PublicKey = LngKeyE
) M, Y9 A. S. sObjRSA.Modulus = LngKeyN & ^, n7 T7 l2 b
Encryptstr = ObjRSA.Encode(StrMessage)
6 _+ \, w8 S! h" vSet ObjRSA = Nothing + v/ c: u, B! c/ d+ l5 @2 k
end function* n3 W  V& j+ @. R7 J+ K
Function Decryptstr(Message) 3 [) T( Y2 J4 b( a" a1 d* w
Dim LngKeyE
0 k6 [, q. n6 t; r. B% GDim LngKeyD
3 k& |3 i. m3 A" L1 Y: v+ |Dim LngKeyN
( h) `+ s" @7 R% I2 ]7 U% U9 r: IDim StrMessage 1 M+ g; ]3 J. @, W" X; y
Dim ObjRSA 7 z0 p6 Z! g5 ^4 A# I5 J$ h/ @/ T
LngKeyE = "32823"   ~0 W+ B, k" @/ X% f$ y# m
LngKeyD = "20643"
) J' r' @8 |+ p9 x- ?8 hLngKeyN = "29893" 3 m  X6 J' n, p7 o. N( F; t* n
StrMessage = Message 4 f7 b& m9 }5 A( q. y
Set ObjRSA = New clsRSA 4 {5 v5 N1 |& A. K6 W9 ]% X; d
ObjRSA.PrivateKey =LngKeyD
& u8 _+ g1 i+ CObjRSA.Modulus=LngKeyN 0 H. N: I' E# j
decryptstr=ObjRSA.Decode(StrMessage)
  v+ I0 ]" B( p& ^# G6 hSet ObjRSA = Nothing   B, Y  j/ u8 k6 r- v+ [  @, D
end function
+ o% ~. H  V$ ^/ J  x! p%>( j, y4 [; Q6 n/ q& j2 W
===============================================
, R9 a% ~% J7 y, f6 ^! n3 w
/ U! J8 b" O& g还有一个用于测试这段代码的test.asp' J6 A( y9 V. e1 W* q, V/ E
有兴趣的自己搭建个IIS测试下
5 }. o9 i+ h' u<!--#INCLUDE FILE="RSA.asp"--> : _7 l4 j$ m. J. H( u
<%
- @7 q  f2 E7 n$ f, Lfunction Encryptstr(Message)
* R2 U% P! r2 M- p: ]' kDim LngKeyE
4 M; E/ U" x0 }. z! S: a  c0 j0 |Dim LngKeyD
( y" A0 j/ p8 [$ o, h  q5 _3 O' _Dim LngKeyN
+ [. P* }  h4 ~/ ~$ gDim StrMessage 6 O' ~' A% y/ d1 r2 E5 Y7 G
Dim ObjRSA : }- {+ B- W6 M8 X
LngKeyE = "32823" 8 y6 p- \& L8 ~5 ?' I
LngKeyD = "20643"
, j9 B% ?" m: }LngKeyN = "29893"
9 W+ N  T. K4 X/ c' K7 D% LStrMessage = Message
' Y% g1 W) O3 M5 v3 ZSet ObjRSA = New clsRSA ' P7 ^3 K; f  G5 V0 }
ObjRSA.PublicKey = LngKeyE 1 h# s6 w- ^) v4 ?0 ^) ^' c
ObjRSA.Modulus = LngKeyN , V6 L; ]; A1 N8 a; H
Encryptstr = ObjRSA.Encode(StrMessage)
# o9 u2 l% R; v3 X* ]% X& tSet ObjRSA = Nothing
2 J$ H& K- R$ ]8 u6 Fend function
. z4 \* J" S' Sfunction decryptstr(Message)
3 H6 H- W! |2 lDim LngKeyE
& a: l7 R! p0 l0 tDim LngKeyD 1 ]' @; k# [# P
Dim LngKeyN
  E1 }2 e+ Z9 F& H) K" r, L: _Dim StrMessage ) u+ p- b( i; z' j' C7 K
Dim ObjRSA
1 H! h+ \- Y$ @& @( o) v4 eLngKeyE = "32823" ( W& w) H, j7 e# c
LngKeyD = "20643" - c/ \' P* I% G1 n5 s" R; Z
LngKeyN = "29893"
: ?, q, z9 G1 \' ?0 t$ H4 yStrMessage = Message
0 |0 p+ G  I1 X; K! fSet ObjRSA = New clsRSA $ R  E4 N" p. w' P
ObjRSA.PrivateKey =LngKeyD % E8 f+ S9 t) g9 ^2 O
ObjRSA.Modulus=LngKeyN
5 Z; j+ T9 d- Q6 n$ sdecryptstr=ObjRSA.Decode(StrMessage)
# X) U. K/ G1 D2 JSet ObjRSA = Nothing
4 ~" f, x/ ^' O) D5 t9 \end function
) z6 ]) h" k* Q9 q2 I( B$ pdim last,first # ]6 T4 Q& _5 B" d
first="!@#$%^&*()" , C# o) g5 }  |$ z, D, t) s" |( [
Response.Write "加密前为:"&first
: P/ k: g; A- }3 J. ?* s$ Glast=Encryptstr(first)
. x( T9 m8 c( N( OResponse.Write "加密后为"&last
5 C; X0 ^2 @+ ~" I( HResponse.Write "解密后为" &decryptstr(last) 7 v5 B" l+ i+ U# M& n) Z8 T) N
%> ==============================================% K% P4 v6 ~/ [! `1 D- i# ?
剩下的就是字符的对照表了4 V  O5 H% z, T1 A* j! e5 F
===================字符集================! Y! D2 e2 Q  u) s2 G
1_____6EBB( b; S6 K. ]5 k6 |3 V
2_____5C1F* y) x/ `0 E- J
3_____4D75
/ A& t; S) Y% _' x) C, F4_____26CC
& K1 g# P# l( J5_____4F88
5 n# K) P; F7 B# C6_____3F4E- n2 \% N6 _+ s4 f' q4 S, m
7_____0A9D. V  `- U  ]7 l* A: u/ ]
8_____1A1C& p& D) K8 ^+ H, ?) O7 R
9_____6D20
  o' Z( j# T! h7 e# R0 k4 j$ z0_____1089) X0 q8 o. o/ W' @! \; x+ K
a_____0F3E5 Q1 H# X8 Z5 Z1 U. C& v
b_____3159/ z3 V5 s& y. E  ]5 z9 V' H6 u
c_____3517- C0 U1 I% L5 d( y8 f: Z2 ^/ T
d_____419C+ a) [4 R1 u  N, L4 p
e_____615C
0 Z: t; X! m9 m8 ~  df_____556F! m5 E4 S$ v. F$ b* v
g_____2B7F
/ ?+ O% K$ W$ {6 o0 ~" `! _h_____0F9C
% E- r- w9 p) di_____00FA
# w; ~/ F7 ^0 Hj_____5A50
4 b7 J2 F9 r. {8 N* Bk_____2850
$ a/ ]) h! ^, b9 W, i) w; Jl_____3E7B, L8 ^9 ]: ]0 [
m_____71C5
- m2 K* ]8 {" N& ~5 m; Tn_____1FC8
; }; V8 Y& N  no_____74C15 d: U) d5 l: q% j6 F1 T
p_____5FB8; J/ Y. w' w7 k, {7 }# N( F: c
q_____6085
. R6 s5 H3 {( w/ d2 s" n9 Z' y4 ?4 [r_____3AC46 @+ M, X; K  m5 S- ?
s_____2F50
. p) b3 D: A6 w, @8 K, Kt_____36F8
+ i5 t9 ], Y+ z: @& Q# x% mu_____7010% ]! h8 j( D+ x0 V+ d. j$ R
v_____0B42& {0 @, J% C6 O0 O
w_____1C7A
3 O4 M7 s  }. w2 zx_____16F8
& \8 l+ N$ y! {y_____2EE76 `* Y" o2 u/ l1 n
z_____5CF3
! B1 @6 u0 ?+ z. e& U# \! |5 q. n! X!_____6233: `* U  @5 ?1 i7 h! r9 ]
@_____3A45
$ q5 W% C& Z' p' D7 h- O/ n#_____2291: D% E+ S6 M  X3 G1 F8 p: D+ `
$_____5D5C
( s. t, r8 G) h1 s4 k/ p! _, W/ D%_____09B9% l# j  {3 o8 ?
^_____43EA/ R- R8 W5 C# c, E8 ^
&_____62B9
, w7 ~3 W  g  {+ G: H*_____6301
: g: J& A1 x5 D: Q- e4 n(_____4659
* g/ [) ^" T  f9 `" P/ K)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表