返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
# L* E# z/ m; _! N) T2 @原始出处:http://www.3ast.com.cm
" [6 ^2 F( b7 U1 O+ t3 D* N) @
: N6 w3 t3 Z. _" w' ~看不懂的直接绕过  T0 s$ T0 \8 r% h$ {2 K' O; a
加密前为:hwy123456
" I+ }1 |7 E- e1 T9 l6 Y加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
) \1 i' T; x, s+ N+ J# K9 c- n: o4 I' ]6 W# P6 L% u
============================================
  {+ k  @0 V5 _) |' ^' o% ?' f上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 i* a3 x7 v" b( Z; b0 T也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: d$ W- ^6 V* j$ ]( d以下是RSA算法文件
' v" ~5 A. b" C* B3 p+ Z# `( u, y. _& G/ S
文件名RSA.ASP
4 e) ~# W' j1 f5 X& t===============================================
- j  z9 A& X* N. r<% 5 a8 _9 i$ z% ~& V5 W) y
Class clsRSA . E9 B5 b" v/ L- H) N
Public PrivateKey
5 w! w7 S: g% t7 |Public PublicKey
0 M" |. D( g" V+ iPublic Modulus
. V4 B' F0 Q9 C& ]1 Z# APublic Function Crypt(pLngMessage, pLngKey) ( R. x$ G3 m* L) ~
On Error Resume Next ' b5 ?/ \% A1 A5 c( k* V
Dim lLngMod
" H/ s$ f3 Y- g, XDim lLngResult
. [9 p8 i* l5 {/ W* \! z, X/ _Dim lLngIndex
0 e& q) ^9 M$ P2 L  jIf pLngKey Mod 2 = 0 Then
8 E1 Z6 q8 O- X+ I% S$ x' jlLngResult = 1
6 [9 O! L) A% q. N& k# Y- y8 k3 j" SFor lLngIndex = 1 To pLngKey / 2
8 z% c7 u) i: Z* C9 W; zlLngMod = (pLngMessage ^ 2) Mod Modulus , K& L+ t9 u* S9 y2 z% g2 K+ z( x) w
' Mod may error on key generation   A/ C- [' e7 r' Y, x" ?' p$ F+ c
lLngResult = (lLngMod * lLngResult) Mod Modulus
. P8 f7 D5 V8 R3 y1 OIf Err Then Exit Function
/ \( V4 I! o2 W0 V' f" ~' d& rNext * J! c$ `. O; E- Y  b+ k. x
Else
1 `- @* V& v; e$ s2 ^/ ?6 h6 flLngResult = pLngMessage 9 U" |, [% a! l1 P9 {) j- J
For lLngIndex = 1 To pLngKey / 2
6 \: H* ?2 N3 p1 j4 D  UlLngMod = (pLngMessage ^ 2) Mod Modulus * Z* Z. G% ?( u. ]$ ], J: M
On Error Resume Next 0 M7 \& x$ Y( W* f0 y7 R
' Mod may error on key generation
$ g/ e% O$ {( z& v6 VlLngResult = (lLngMod * lLngResult) Mod Modulus . A& z: l& J( e! p: r
If Err Then Exit Function . Y. r) D, F/ [: a- C* B
Next ( N4 b, D' g* H0 O- p. b  S
End If 5 G" ~7 B- d& b2 x: p
Crypt = lLngResult : ]8 z$ L7 u: r8 Z% A8 E' ?- f
End Function2 K  ?$ I6 H/ h* {( R

$ A! f! m" O1 E6 Q+ TPublic Function Encode(ByVal pStrMessage) 8 E6 T/ L8 y' z( k: O% \, z" r# m
Dim lLngIndex
3 M3 i/ q* X9 M* l7 k; eDim lLngMaxIndex
; w! A) G7 B2 G' i( O! HDim lBytAscii
* e  i) Y/ x, M1 XDim lLngEncrypted / Q9 j9 z8 X- j+ k8 G( @4 B8 {
lLngMaxIndex = Len(pStrMessage) 3 B% p2 Q: P$ V: a' G% k# E
If lLngMaxIndex = 0 Then Exit Function / G2 R0 Z! Y3 e; V8 j5 D
For lLngIndex = 1 To lLngMaxIndex
! i- v4 V6 N, @lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ }3 s% K5 M) b; p8 ]5 }. ElLngEncrypted = Crypt(lBytAscii, PublicKey)
: A1 ^. c; {* P- M9 OEncode = Encode & NumberToHex(lLngEncrypted, 4)
" `" \( k' O* P- TNext ( g1 i5 F* h$ D# U: A
End Function
4 e! g7 U5 E- [Public Function Decode(ByVal pStrMessage) 0 i* m" x7 X  ?3 }7 K
Dim lBytAscii
9 D- t- p2 ^1 IDim lLngIndex . f9 U' ^/ {+ m# m3 S  [2 L
Dim lLngMaxIndex
& A! p. n  |$ d2 XDim lLngEncryptedData
- ]! G+ \; P- q7 gDecode = ""
( ~6 m! R$ V" d+ I( H/ wlLngMaxIndex = Len(pStrMessage) 0 b6 ?! W9 s1 v8 f; d
For lLngIndex = 1 To lLngMaxIndex Step 4
0 ]1 F+ @, k$ d8 ^lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 @- r8 l, B% [- slBytAscii = Crypt(lLngEncryptedData, PrivateKey) * L8 n3 w. m% N. w7 F$ _$ K
Decode = Decode & Chr(lBytAscii)
# L# i  I: z( ~! PNext ) n' H  w; A0 @5 h) t! R' J
End Function 6 `  h% D; t, n+ w! p0 ~( F. ^6 Z
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) + ]$ ^  q9 m- V4 B; K
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 6 k6 n- W0 h( Y
End Function
0 r, A$ p! S+ U% [9 J  Z& xPrivate Function HexToNumber(ByRef pStrHex)
* o% k+ x5 X' P8 ~! T% wHexToNumber = CLng("&h" & pStrHex) 8 \- \+ a0 @* x& {
End Function 0 W9 A' E) T  d9 L6 G
End Class 1 a) }$ P" h* e
function Encryptstr(Message) 8 s+ z, D  T$ f3 x4 ]9 {
Dim LngKeyE
2 n! C6 T# M1 \/ k& X& @3 J* ODim LngKeyD
  `: {4 x* c' \9 q/ tDim LngKeyN $ r) ^  q% _1 C$ K9 ]* d
Dim StrMessage " K- ]2 p% U5 g9 h  Y
Dim ObjRSA 0 S5 M# u3 {2 W) Y0 T$ D
LngKeyE = "32823"
6 ~& V3 ?; R& P! }1 v: b5 bLngKeyD = "20643"
$ ~7 _0 D/ a, d/ t: ?& vLngKeyN = "29893" 7 @5 w# k# A$ R7 C# A" m& |/ A
StrMessage = Message ; i# D+ f( ^6 \8 v" ^) Y
Set ObjRSA = New clsRSA 4 i' {5 O2 E3 H/ o
ObjRSA.PublicKey = LngKeyE " I. s# V4 L/ }& {
ObjRSA.Modulus = LngKeyN
: k7 y) v2 S& t1 M0 T5 ZEncryptstr = ObjRSA.Encode(StrMessage)
1 x# y' ^8 ]- S2 K0 d6 P6 X0 vSet ObjRSA = Nothing
9 ?% r$ K+ D4 C! ?/ v* O( zend function. p8 I2 ]  W$ o' r- R8 v5 k) i
Function Decryptstr(Message)
) v$ i) D9 D/ R; w/ `3 M  ^8 WDim LngKeyE
3 @$ U) G$ f9 ^4 `. l0 aDim LngKeyD   I: |+ r2 q; w/ Q/ _% }
Dim LngKeyN
3 v( e' z8 m% H% N" i8 L" kDim StrMessage ( J3 Q4 w. r* K# {4 T
Dim ObjRSA 2 K$ x, U( U: N: r) K
LngKeyE = "32823"
. l2 i! ?* h4 C. |9 R- u) }% b4 ~LngKeyD = "20643" 3 O/ _  Q+ p& l5 h$ h
LngKeyN = "29893"
' [0 C9 p4 h* \) q7 m( K+ eStrMessage = Message 8 S$ y$ B0 n8 F$ D
Set ObjRSA = New clsRSA 0 }+ d; Y7 R* f' A: ?
ObjRSA.PrivateKey =LngKeyD ( {$ C# Z2 f) o0 @
ObjRSA.Modulus=LngKeyN / A! t* {% G5 L5 D. n* n$ o7 P
decryptstr=ObjRSA.Decode(StrMessage)
8 o+ G  N4 z6 l( C' ?* USet ObjRSA = Nothing % ?+ @7 w: b% P) p# U' c+ H" M6 j
end function - L" M! X) p% j/ P+ \; y4 ^& c
%>  W) @) l. s4 L, _4 `2 d$ y, x
===============================================* v; ?9 @- j: s7 B7 t4 W
  f; P: ~. ^. z1 `" T1 w* D$ k) |
还有一个用于测试这段代码的test.asp
* o& q" Y, T5 Q$ J  z9 n有兴趣的自己搭建个IIS测试下
* ~, W7 k) F  C<!--#INCLUDE FILE="RSA.asp"--> * S  h& ^2 p* X" l/ k4 _
<%
/ I( w. |/ ]$ ~- kfunction Encryptstr(Message)
7 k& Z8 A$ W! K4 I2 i3 \  j8 ADim LngKeyE - x, I: r, }( p; y% h0 B
Dim LngKeyD
2 X% V) v5 @. y% CDim LngKeyN - h7 \$ a! H  G
Dim StrMessage
+ C/ U5 w+ q- S& \- _6 F1 m+ oDim ObjRSA * G  g  f4 a4 u! T6 H; x
LngKeyE = "32823"
2 Z. W# @: L9 I7 _- G- h; PLngKeyD = "20643" 2 v, y0 ?- x: B* x
LngKeyN = "29893" " T$ f, l4 X' T$ O
StrMessage = Message
  i( e0 E) l) @7 {; HSet ObjRSA = New clsRSA : f2 Z3 A$ T5 V7 l+ i+ d  S: V
ObjRSA.PublicKey = LngKeyE 1 U" [- N* D. Z7 W  A3 s/ `" I
ObjRSA.Modulus = LngKeyN 4 ^; ]" Z  R: e
Encryptstr = ObjRSA.Encode(StrMessage) $ |7 m3 }7 c6 G. L9 `
Set ObjRSA = Nothing
' g- r, x: U  m: y$ }- Oend function
# @9 G8 a7 }3 \  h1 b0 ~9 c" g7 yfunction decryptstr(Message)
$ t2 O# a. e2 e6 @4 ^" V9 l5 C6 ODim LngKeyE . @+ F# J8 v  @/ L
Dim LngKeyD " K1 K! U6 O% ~" R! ?  w# }
Dim LngKeyN
; _8 ], z! B" ?Dim StrMessage & D# E# D5 O7 C' v; Q- d
Dim ObjRSA
" ~: l4 j$ e4 O' T" R$ b3 W1 ULngKeyE = "32823" # r/ c; T' `, f& u5 G8 `
LngKeyD = "20643"
; l& J- @5 F- `+ [  j' sLngKeyN = "29893"
$ Z5 w: G) y7 bStrMessage = Message , U3 P( Z+ L* J5 X2 @
Set ObjRSA = New clsRSA 7 j' N0 S/ {% V
ObjRSA.PrivateKey =LngKeyD 5 }& t7 t. W( y7 Y' ~' B) K2 u
ObjRSA.Modulus=LngKeyN
5 @/ {6 ?$ L1 \/ }9 m( l4 Ddecryptstr=ObjRSA.Decode(StrMessage)
- _8 M0 m  f( a; t9 J/ S* y$ s$ }Set ObjRSA = Nothing
. }& r- R$ }3 h) S, A' dend function + v% i9 @+ ]$ X
dim last,first : l4 d* q) Q) u8 `( a' G
first="!@#$%^&*()" $ U( Y: q* _$ \! n0 [* M
Response.Write "加密前为:"&first
9 ^  u8 Y8 F# o, C, Ulast=Encryptstr(first)
. B# ^, Y7 k& P! iResponse.Write "加密后为"&last
) m  l* l" w. p2 rResponse.Write "解密后为" &decryptstr(last) ( V+ V0 z3 Q7 q; \7 }( A
%> ==============================================
1 D7 d2 B7 d6 Y4 w1 L  S% ~6 Z, a! f6 v( b剩下的就是字符的对照表了
. J' Y% x7 h" T! N, @. N; l===================字符集================6 ]! j6 K  R) V+ U
1_____6EBB
' E; X8 [; [/ |2 @, D8 T: K2_____5C1F1 b, N* F& p( M
3_____4D75  n) O9 U5 A( g8 v' w
4_____26CC
( ~% W7 W5 g& i5_____4F88/ Z+ `  Q% y5 j
6_____3F4E
* f2 s. \- S, ?7_____0A9D
9 F. X) d: h2 |1 E9 M8_____1A1C
# \# J3 I' W+ `9_____6D20) Y  ?( Q9 o8 K$ H
0_____1089
9 A7 }' d- Z& aa_____0F3E9 {; \& H6 v+ ]1 H( J2 ]8 V
b_____3159# Q" B) _$ X. w% Q
c_____3517
5 ?4 P, _: C7 O; N) Yd_____419C, d2 O; e4 a( J1 T, r
e_____615C
% c" K/ R. `1 _8 c8 D6 j7 L8 xf_____556F
. K6 V- L0 T( f" h" n) Xg_____2B7F
9 {; f: L# C1 S  `8 K7 f) Ih_____0F9C
0 ~. S; V$ D: ?% f  ?, Fi_____00FA7 u* H8 h# c8 j2 }' P# F/ W
j_____5A50
* J6 B' C. F" O0 e$ v3 N% Xk_____2850
# T: C, \/ ^" [  V. J# G& Hl_____3E7B
4 U& z6 P- |4 v, `# vm_____71C5
7 n4 D1 X/ N: Y5 D8 v& e' n1 A+ _/ in_____1FC8
" t# ^; U6 T/ V$ d5 _. M9 @0 Po_____74C1* a' r- v  Z- q- W4 Z! Q
p_____5FB8
" |" ^% g4 w% L) J4 Lq_____60850 v0 }" x4 k+ ^2 B
r_____3AC45 f' t, V! u" X
s_____2F50! \1 `1 n5 A  t
t_____36F8
: V3 F3 x1 H) r$ q. j* \0 Y2 G  nu_____7010
, ^3 q/ Z8 C. E. _, v# ov_____0B42
7 ?7 [) B- O! J2 G4 `) kw_____1C7A
8 p( X7 T7 T, S" G7 Tx_____16F81 m0 g% @0 F$ H/ }8 M( T7 t
y_____2EE7
& D$ \" u7 y4 k* B5 z& Xz_____5CF3
& A/ T+ @7 ^' N" t!_____6233+ ?2 B" y/ ?, c8 U% ]
@_____3A45/ \% q4 d0 S- x5 V0 k4 r# |
#_____2291
9 k7 w$ j4 Z2 |* i8 R2 G. P8 @$_____5D5C/ v5 u& {3 U5 u2 b* X
%_____09B9
! Z$ T# Z& C7 W( T2 K+ x& j0 ?) d^_____43EA
# @' J+ T: K* X&_____62B9$ t" [+ j% [4 P
*_____6301) c( K: a; g# Q; Q" G+ N& I$ E
(_____4659
6 L; L. c6 d' ]8 u+ {( U)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表