返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm4 F7 d* z1 d6 J) J
原始出处:http://www.3ast.com.cm
' C, j5 `, _& t0 s
, h+ W, T" y) `2 @! `: o看不懂的直接绕过( ~1 ]5 g( ^- u" x9 p  v
加密前为:hwy123456- E3 k- ?0 j# ~1 w8 K1 c
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E: ^2 J: X: }6 R8 }
3 G2 a# f* H$ ^0 h
============================================/ o2 o/ X+ {( V2 A
上面是当时自己校内的心情。现在已经解破出来了,分享给大家9 ~  {4 K* c- H0 }: Z: T
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法: {* A$ E* k5 R' i
以下是RSA算法文件
+ V8 j% D5 p" [7 k: }9 Q/ i# t4 t+ t$ A* u% C/ I1 r
文件名RSA.ASP
3 T* E4 u8 O% f8 z# F===============================================
  l. Q$ T; i  d<%
  u5 q* W0 A+ p$ Q9 L  {' o. bClass clsRSA 5 w6 c% v. \- e& P2 h
Public PrivateKey
+ l$ S: q# a+ `& f/ Y& u- S; t3 yPublic PublicKey 3 b: w% X  o3 Z- h( ?
Public Modulus
( H6 i% _2 m+ \3 \Public Function Crypt(pLngMessage, pLngKey)
7 y: b' G, q6 d0 M3 W! y- e4 mOn Error Resume Next
# s$ i6 t# f0 m7 l5 x, \8 cDim lLngMod
' w: f& x) d; b" _: L* E  j- }) [Dim lLngResult
6 E* p- r  E. ]. ?, U& fDim lLngIndex
0 G9 S. v9 }, v; _* I/ P/ ^- R8 R" \If pLngKey Mod 2 = 0 Then
) \0 ?4 o+ _# @* c( \lLngResult = 1 * e. @0 ^5 l+ j, U0 A0 N
For lLngIndex = 1 To pLngKey / 2
: A. F- A; f$ Y: i/ Q) q  G' }9 qlLngMod = (pLngMessage ^ 2) Mod Modulus
. {2 C3 ^' a/ ?4 d' Mod may error on key generation 9 [! ?: _3 I+ v" |
lLngResult = (lLngMod * lLngResult) Mod Modulus
; `' j( F& M$ f  _. ?( y: x4 Z4 CIf Err Then Exit Function
! h( _+ C! q' SNext
0 Y. B2 p! h9 D! F# UElse
9 ^8 h/ l: {8 SlLngResult = pLngMessage
! ?9 D2 g0 E  H) I3 n0 fFor lLngIndex = 1 To pLngKey / 2 + O4 z5 |5 j3 ]4 }' @4 J% u# ~
lLngMod = (pLngMessage ^ 2) Mod Modulus ; z+ X! W1 ?4 m/ Y. C# q
On Error Resume Next % Z4 C% e, q7 _" H$ q$ G0 n
' Mod may error on key generation
' J1 f: s9 ^% nlLngResult = (lLngMod * lLngResult) Mod Modulus - h# j9 J8 T7 a' P4 @
If Err Then Exit Function + v/ e# w. ~0 K6 y7 Z0 |5 t
Next " h6 _8 n$ e/ B& @; S6 Q2 S8 S
End If . D7 |& M1 p6 L# q# Z% I
Crypt = lLngResult
" V! _! |" l/ LEnd Function4 x7 Y2 S" [1 h& T: k

$ g* d7 b7 T3 gPublic Function Encode(ByVal pStrMessage) ( G- P, |9 t+ ~+ V  R
Dim lLngIndex / M+ |, y* v" g8 y
Dim lLngMaxIndex
2 o. [5 a3 X: a) ^. d$ ^( S0 U6 IDim lBytAscii
4 D  E$ q: s2 B  }" ~2 R: uDim lLngEncrypted
- \# Z) ~& ?4 Z% x6 OlLngMaxIndex = Len(pStrMessage) 4 O7 ^1 ?# n$ m) |1 \0 S( K
If lLngMaxIndex = 0 Then Exit Function
0 [. j; P* Y, E$ O6 B( w, V, \. uFor lLngIndex = 1 To lLngMaxIndex
& {) f0 c! F# a2 S) H* |4 H  zlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
. v4 ?, L" u& v& f1 J! ~lLngEncrypted = Crypt(lBytAscii, PublicKey) / p1 Z+ h3 w! k* Z6 M) m' c
Encode = Encode & NumberToHex(lLngEncrypted, 4)
+ o: E" q8 Y8 i) VNext   }$ b5 X0 ^( v0 ^1 K) t. ?, B
End Function
( `7 k/ T# N! L2 bPublic Function Decode(ByVal pStrMessage) & L, g3 {7 Q8 K" u+ t
Dim lBytAscii
( r& O: Z) Q' {/ q% x: g1 cDim lLngIndex / h) L3 |; `/ k5 S! A; X
Dim lLngMaxIndex
; e6 o) r: h7 rDim lLngEncryptedData 7 W3 F7 e1 i2 H# p8 _! R
Decode = "" # l/ T' I8 o3 T" o
lLngMaxIndex = Len(pStrMessage) 7 i& u2 g8 V% W  P- M: ]# Y4 ]
For lLngIndex = 1 To lLngMaxIndex Step 4
  Y$ z" u+ C- S* t; Y; G1 ElLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
4 U# G. s/ R" n* klBytAscii = Crypt(lLngEncryptedData, PrivateKey)
+ i, j+ \  C- E* j1 D# A! TDecode = Decode & Chr(lBytAscii) 4 n/ Y% j& e7 b5 `' B0 s
Next 3 G0 N( {% y! N
End Function
& f: F# \* K, G: qPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 0 }1 u3 ~) q% s( A6 Y! e
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) $ n% h0 c9 Z+ i- |) d
End Function
6 s$ |: C  s( w6 i- `! _7 O* tPrivate Function HexToNumber(ByRef pStrHex) 3 N/ u! O* M3 b9 O5 Y6 m
HexToNumber = CLng("&h" & pStrHex) - n  U$ J6 {/ f5 m8 o# c, F
End Function " L. F) r; N( X2 K) J$ [8 P% h
End Class
: N6 Z8 E" }) A* z+ {3 `function Encryptstr(Message) ! u: A' o2 ?  C5 m! R! i) _& Y! M
Dim LngKeyE 5 d' }" U$ p4 R# z( |9 N, B
Dim LngKeyD
* [: ]3 T- c' b0 W/ WDim LngKeyN
- C8 [. Q8 a  G. C/ c/ |Dim StrMessage " G% l) @, E/ J7 T+ f, C' m
Dim ObjRSA ; g4 U% Y; p& V/ }
LngKeyE = "32823" 3 B7 b  C; c( `# n' w2 d! f1 j$ t
LngKeyD = "20643"
  i  {, J+ l9 |/ V' xLngKeyN = "29893"
8 l: n5 w) J4 R* bStrMessage = Message : Q. }# R1 J3 H3 r
Set ObjRSA = New clsRSA
! w. ?% v3 v& O5 GObjRSA.PublicKey = LngKeyE
9 R5 y5 d8 _! Y) @, u) e" r# [ObjRSA.Modulus = LngKeyN " s' Y! E" p. @! Z+ N9 g
Encryptstr = ObjRSA.Encode(StrMessage)
3 i: ?  b; P) Q& [  @$ ^( |) ESet ObjRSA = Nothing & l& F) r3 X( M. H, u
end function- M2 _6 Y2 ~5 Z" k6 J" S
Function Decryptstr(Message)
4 r' ~- k) [5 W/ x  r$ mDim LngKeyE
! t# ^9 [7 Q; I; c3 VDim LngKeyD 4 Y" x3 E4 @1 P5 @. _
Dim LngKeyN " h: J3 _7 \+ {4 u/ t: h
Dim StrMessage
: l3 O( p' E2 x% I5 o& d1 E3 M; FDim ObjRSA + Q0 u3 z" H% V
LngKeyE = "32823" . |& H/ f- K* n5 U
LngKeyD = "20643" 9 I' H7 q; I8 z: d
LngKeyN = "29893"   J8 B; H' Q  G) `- Q: @
StrMessage = Message
! V1 {+ T1 f8 ^7 ISet ObjRSA = New clsRSA
& e' H/ M) H# c8 g& p) pObjRSA.PrivateKey =LngKeyD   `3 C  O( v* e1 n1 v
ObjRSA.Modulus=LngKeyN
8 a; x, t, M5 m3 Adecryptstr=ObjRSA.Decode(StrMessage) 2 }- P& ~# Z' c
Set ObjRSA = Nothing ) Q8 x: x/ v$ g8 Q- T$ \
end function
# L! F- s  V0 m' Y8 i' Q%>
7 f! W! g! i3 K1 ?===============================================: N! C& J% I7 I3 u" G
7 f% L, a) @  y
还有一个用于测试这段代码的test.asp
5 M1 t$ a; u( @2 u, A0 h; F有兴趣的自己搭建个IIS测试下
0 U- o- p1 v8 \. `' M<!--#INCLUDE FILE="RSA.asp"--> " U3 A* H4 J" B; c6 j3 F
<%' a9 f5 ?: F* }  N7 H
function Encryptstr(Message)
/ ]+ o5 l5 x) \6 v* a- ^Dim LngKeyE
$ g1 f' Y; p: W9 W/ S& u8 |- iDim LngKeyD
- C  g8 n8 X1 y; t* g+ nDim LngKeyN $ r, W+ M' J5 M0 |, Q3 |) B
Dim StrMessage 8 _/ F2 h, Y" g) x! i0 T
Dim ObjRSA 8 ]2 q! D  X7 U! ]6 p
LngKeyE = "32823" ) {, `! |; S8 {1 m6 W7 N
LngKeyD = "20643"   O. I# w4 [! ]) e" N
LngKeyN = "29893"
( I- r% k+ U/ W7 v8 e* {StrMessage = Message
7 S) U$ g% D6 I$ @9 L* L1 lSet ObjRSA = New clsRSA
5 o4 D( e/ K# q. F7 D# |ObjRSA.PublicKey = LngKeyE
7 y- `  g; B9 V: O1 M% {ObjRSA.Modulus = LngKeyN 4 o, s( g, s* Y3 ?1 J0 ~( Y! V
Encryptstr = ObjRSA.Encode(StrMessage) : V* ^( T! J8 M
Set ObjRSA = Nothing 0 l: A: J' d/ ]4 \0 q+ X
end function
; |3 `1 b: Y- bfunction decryptstr(Message) ) @& O. n+ r  P1 b! l! i
Dim LngKeyE
! k$ P8 Y8 L+ m8 H) E$ u- QDim LngKeyD
& L! N# O: [, PDim LngKeyN
4 _7 C  h9 v# p2 y3 lDim StrMessage
* v, t7 U3 d& ]9 VDim ObjRSA
# p( Q& i$ y: ^1 Z9 I$ b4 LLngKeyE = "32823"   N' M: a5 L# N/ q% g4 }% P
LngKeyD = "20643" ! \9 Y$ a% ~& f
LngKeyN = "29893"
2 c3 j7 D) ^# I% }StrMessage = Message
# w+ ^% r  z( j0 G% ]3 |Set ObjRSA = New clsRSA ) \; N! T, f8 a; j" j) a) `3 k# U
ObjRSA.PrivateKey =LngKeyD
" V& ~4 K" s/ q4 Y' g/ I- oObjRSA.Modulus=LngKeyN
2 F5 h) G7 o, gdecryptstr=ObjRSA.Decode(StrMessage)
2 T; J& u9 t( ]) ZSet ObjRSA = Nothing ; h( d+ n% S1 G& Q+ E
end function
- K' a$ b8 T( j, x; Ddim last,first , F2 Z' O- Z1 l' [- J6 @: I- r
first="!@#$%^&*()"
1 p2 j( _7 f8 nResponse.Write "加密前为:"&first " T0 T+ m$ P! ?
last=Encryptstr(first) . G& W# t, U8 b2 M% O; B! h
Response.Write "加密后为"&last
- E- V: v1 U) O5 j" K2 a- uResponse.Write "解密后为" &decryptstr(last) 0 X  g4 V. V4 {/ V( l# \
%> ==============================================
$ v; F  ^# H$ X6 n/ ~, d! o, X剩下的就是字符的对照表了! X2 m7 v. }4 a& ], O( w
===================字符集================+ j9 o! w: Z' m. }6 r
1_____6EBB8 C- R  j& h4 w# [/ m9 L' h5 e2 ~
2_____5C1F) Z" U* ~1 @- h! ~3 R% [5 V
3_____4D75
8 H; ?4 ~6 u7 H! z  w/ J, ^" t( q$ D4_____26CC
; Z2 \' Y; N6 r5 _+ {5_____4F880 \5 E2 G- W+ ~( t- o2 k: g
6_____3F4E
. c  B5 U$ E  G. Z7_____0A9D; \8 ^6 C- [" _; ]  {, t' S% l
8_____1A1C
4 o, o6 u# X3 l# {: ]" t9_____6D20  L3 m) z5 B: O
0_____1089
: r+ P& Z+ Y1 h& L+ ba_____0F3E- Y; ]* h9 Z& X* x8 B- @
b_____3159, u& }& J- x/ G1 ~) V
c_____3517% o, ~+ e6 I. L+ c+ K1 M' P' q
d_____419C
4 G: ]. `  o2 h8 }. W7 @7 l' Me_____615C
6 r1 ~' }' p) M, Q1 Cf_____556F6 D/ c3 Z: s3 M% ~6 B& {; b/ j
g_____2B7F
6 z; R, I8 u* j7 U' [h_____0F9C
1 R. v. T) G' Ti_____00FA
" p9 ?- K$ W6 x6 [: }, T/ M& hj_____5A50
' n$ g( a3 y- @k_____2850
6 o, B5 X) Y$ J2 V5 _8 r/ r  p4 Ul_____3E7B, T# k4 M0 E6 f
m_____71C5% i" m, r! v. z
n_____1FC8
7 C2 U# S& N  Xo_____74C1- T% }- T- \* Z+ z0 t' k* K
p_____5FB8
: `% ?$ S- P* f/ ]% mq_____6085
' u. P* b1 ~9 J% Q. T0 [2 Fr_____3AC4
4 E9 T3 i, S9 Y& Rs_____2F50
2 `& L( `: D: p4 S7 c/ p8 it_____36F8' S  b& B0 [! U4 @% i  X* R, t
u_____7010
# H  e9 Y0 P' i1 U$ nv_____0B429 b, z% v" R( X8 }# C2 O4 `$ Q
w_____1C7A
, X. \) T4 Y# G9 lx_____16F8
2 F: n# J% P$ @y_____2EE74 O/ m# u- k2 D  c4 }1 i$ s
z_____5CF38 j% I4 y8 g0 D; e* e" F6 ^! Y" m5 g
!_____62334 C- F2 E3 j1 E5 d
@_____3A45
- l& O7 p: N8 }8 e2 e2 a#_____2291  y6 R9 f8 ]+ @9 U$ b3 H6 o
$_____5D5C
% a4 j' Q$ Y0 i0 X8 T: z# E% J* \%_____09B9
7 e3 K% E0 l# j4 {4 O5 V^_____43EA9 H3 j2 C2 z! v/ X: V
&_____62B9
- a! Q& b: t. o9 z1 g  c. ?*_____6301# L; M! s+ Y9 i, p- G' i% s3 ~
(_____4659# G1 `- [- t$ Q! l0 y4 j/ o6 S
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表