返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
( a  Q2 u/ S* r原始出处:http://www.3ast.com.cm
% f% o, `4 i; M" E/ }: g$ r! Z  d- P* }! w& S  D6 ~  e8 |" s+ W
看不懂的直接绕过
" w( P7 N! i- C8 y  q- V加密前为:hwy123456
1 M. y9 S; t$ t1 H/ ]5 ?加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E- z1 x# @: V( Z" A
% ^# P6 W/ ]& m9 V  f  P( F# v
============================================
" y. ]9 X0 a( j# Z3 x* P上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 C/ g0 \0 T. A# V' W也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
+ N2 T, h# ^0 K7 F9 K5 T2 k以下是RSA算法文件( c7 h  G# B" i8 D2 c; h' d1 w

7 h  f$ L7 I) ?1 \. E! y' H! f, c文件名RSA.ASP
, j0 g+ Q; W5 C. {) T; {===============================================
( v7 J4 _8 g' E9 ]; p7 |<% 4 ^7 N$ s5 F& K. V& p
Class clsRSA 4 P8 i6 d/ r* T- b+ w/ E
Public PrivateKey ' q6 F- K7 @" \  e
Public PublicKey 8 Y2 W0 D$ e! n# h; g
Public Modulus : d6 [4 D3 W4 x
Public Function Crypt(pLngMessage, pLngKey)
+ @, J8 \( F  l7 |6 vOn Error Resume Next
* S0 ^; W3 A- O5 \& F/ WDim lLngMod # k2 h# o, t9 ]" T8 C, o
Dim lLngResult
! {$ g- S, e, {; f7 D$ _Dim lLngIndex
# f& k. k; D! ?' D  G. W8 g9 [4 ]If pLngKey Mod 2 = 0 Then . {3 r* m' _0 h+ Z7 p; {, C# Z# j
lLngResult = 1
% d3 x: ^, h& k9 S, E! G+ u3 _For lLngIndex = 1 To pLngKey / 2
- R' v0 Z0 e3 I. j% i6 \2 mlLngMod = (pLngMessage ^ 2) Mod Modulus 3 }7 x- _. w: Y' p5 L) p! u# [; H
' Mod may error on key generation * |1 J# U2 Y1 F- _1 h0 }3 S# H
lLngResult = (lLngMod * lLngResult) Mod Modulus
! W# ^4 c. r  w! |If Err Then Exit Function
4 F8 O5 D4 P: s# B6 _+ Z# g" sNext ) e& i% C! w) s
Else 7 M& G! s: b, Z  J; @' {5 y
lLngResult = pLngMessage ) }: _  `$ G! g- Y3 z
For lLngIndex = 1 To pLngKey / 2
2 A$ a1 Q6 [5 c& \lLngMod = (pLngMessage ^ 2) Mod Modulus
; Z3 H* P& O7 o' TOn Error Resume Next - m: W) @7 Y- S. X/ f, F8 ?
' Mod may error on key generation
, t3 g+ V( i4 e3 N5 ~% n" OlLngResult = (lLngMod * lLngResult) Mod Modulus
! i- }9 s6 a/ h* bIf Err Then Exit Function
% U) Y  H7 N$ \* }Next
! G3 `) E$ l) U$ J) WEnd If
9 x$ `# i% i6 i/ \3 ?8 OCrypt = lLngResult   p+ ]. `* h8 k) R' ?, c: \. F( _
End Function
' \! x4 s# T( I8 H' w6 x  X( M' Y; K$ j% J, [. }
Public Function Encode(ByVal pStrMessage) " K$ f* R0 t7 V" I" a
Dim lLngIndex
8 F) b, t4 r* ?Dim lLngMaxIndex
  K, W. i4 U# [9 W, X- h* k  q# Z. }Dim lBytAscii
( m: v2 j# F! aDim lLngEncrypted
5 q9 _7 T( R) ilLngMaxIndex = Len(pStrMessage) 4 j( H3 o9 T8 r" N. m* X
If lLngMaxIndex = 0 Then Exit Function
$ e( g, m" `: t# _  u) [* y: LFor lLngIndex = 1 To lLngMaxIndex ! z7 N1 N$ I9 d% k
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
# K/ e% w. T4 g- O# K7 O! M) VlLngEncrypted = Crypt(lBytAscii, PublicKey)
* ^: [3 t* q: \8 n) a4 CEncode = Encode & NumberToHex(lLngEncrypted, 4) 6 `2 f% w+ Y& s8 m1 Y- Q  Z
Next ! M! ^% i4 j7 @- r$ K
End Function - A( [! |& g" m# @( C
Public Function Decode(ByVal pStrMessage) . w8 q6 f% H+ e4 l
Dim lBytAscii
0 y2 a* k$ @; f/ Z2 sDim lLngIndex
$ P1 U3 `: ~4 \* I* V$ ^% BDim lLngMaxIndex 7 @0 F/ N$ D$ C% _/ f* p
Dim lLngEncryptedData , ]- o3 H4 ?( g  X" D4 c
Decode = ""
0 n" y$ e; E' K" ]2 F$ k( Y$ ulLngMaxIndex = Len(pStrMessage)
3 H7 a( M, k: YFor lLngIndex = 1 To lLngMaxIndex Step 4
' T$ Q* s; ?: i4 {/ qlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
2 f/ c8 j& r% |7 ]8 p0 qlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! H) _: [$ Q5 |- zDecode = Decode & Chr(lBytAscii)
) g+ l: t# Q3 G) R2 |) ]- a) ^Next : A* n4 R' i; ~  {
End Function
) I4 s  |) u$ N' y; \' U) XPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) " [' S' R; }3 V2 q8 W
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
3 T9 v3 }% \& l4 q9 E7 D7 mEnd Function
# U+ Q9 k2 K; h6 XPrivate Function HexToNumber(ByRef pStrHex)
$ _' _7 J, j6 XHexToNumber = CLng("&h" & pStrHex)
% Y+ l( s) _% w/ rEnd Function
: j+ _9 g6 \6 a# MEnd Class : Z0 k2 r0 A6 z- H. b+ A# U2 R) m( u
function Encryptstr(Message) 4 ]; X% J& r7 h8 w8 w
Dim LngKeyE / O1 q7 ~+ L9 A" ~( W5 m0 H
Dim LngKeyD % X7 \& |. f0 O  i
Dim LngKeyN
% s. ^% L8 Y$ @4 Q) D) JDim StrMessage $ B, }+ H  ^( R- O1 E
Dim ObjRSA " _. `) \2 }% J0 q; V2 O
LngKeyE = "32823" 7 K& s# M( t3 @8 U. a( L
LngKeyD = "20643"
) O: n( B/ w( c+ ILngKeyN = "29893"
$ H) K# t6 r2 {" z2 ?' {! RStrMessage = Message
' }5 P( c! `0 P3 y' k: m, ISet ObjRSA = New clsRSA + p# P; Q7 {, h. ]
ObjRSA.PublicKey = LngKeyE * i- s# s( d- J
ObjRSA.Modulus = LngKeyN
5 c' ~0 e: v! A4 f; PEncryptstr = ObjRSA.Encode(StrMessage)
# O% V! B9 v: Y' e) d6 H: NSet ObjRSA = Nothing
* S, z; M! |( i; G( d. ]1 o% w. |end function  q/ f4 Q( {: ~5 `$ o3 j8 S
Function Decryptstr(Message)
+ L" n: X  r* b. yDim LngKeyE 3 r: x5 f8 p, e% g( o" A  T. R
Dim LngKeyD
7 {& H4 ?( P! ]* l" x' ]  d& M: s& w+ DDim LngKeyN
0 c% }# X4 R- p* kDim StrMessage 8 I6 X! M% ^+ g# h8 k
Dim ObjRSA . _4 [( f  L: s7 r4 B* W5 F
LngKeyE = "32823"
7 {3 z' ^1 A5 }, ?LngKeyD = "20643" 0 E3 W! p5 h2 L1 @) V
LngKeyN = "29893"   w# ~/ e# z/ L$ Y, u* E+ b
StrMessage = Message " l: }7 p3 G$ c
Set ObjRSA = New clsRSA 8 W* ~$ P- v+ J4 T. b
ObjRSA.PrivateKey =LngKeyD ( _( |. E  |4 m( E/ ^- V
ObjRSA.Modulus=LngKeyN
4 ^- g0 g6 Z* g( Y; T0 w& adecryptstr=ObjRSA.Decode(StrMessage) ( ?( K/ N" l! T7 a5 [6 e; }6 `! R+ @
Set ObjRSA = Nothing
& e6 x4 f0 v3 lend function
8 A3 w# U' v5 x%>
' ]1 G8 s  M5 Q- v; T===============================================
2 E) v5 ]+ V. ]5 j4 p
" _7 K" K+ U8 [0 K7 h  T1 n还有一个用于测试这段代码的test.asp
/ S9 ?  j. j2 s3 Y有兴趣的自己搭建个IIS测试下
5 i/ p0 H, J% `, c3 w6 Q<!--#INCLUDE FILE="RSA.asp"-->
9 K7 X& m9 J% z# K, j- n<%+ U. ]# U9 A0 Y0 B+ \& s! P" f
function Encryptstr(Message) 7 f* L, Z$ ]- e9 {9 M; M. y. Q
Dim LngKeyE , b; {, F2 V0 d2 q* Y) k, }
Dim LngKeyD 0 e: v/ P8 E" I3 u+ I  g
Dim LngKeyN ! E  ~- M0 {9 E. Y3 V9 \
Dim StrMessage $ c% S2 C5 {! H. G+ P3 Z, ^
Dim ObjRSA
, |. P6 D+ j5 V, Q& h( [LngKeyE = "32823"
4 X9 J/ C% x4 V' D# ^0 q1 YLngKeyD = "20643"
" Z$ Z8 N7 ^; N2 H, v; YLngKeyN = "29893"
0 t" Z* C# w9 W; Z( lStrMessage = Message
# c# O. g' F2 n' j* J7 g+ mSet ObjRSA = New clsRSA * @2 [6 Y0 n$ h2 s+ L2 D! j' b
ObjRSA.PublicKey = LngKeyE
9 M) G9 c8 V% f+ nObjRSA.Modulus = LngKeyN ! N4 E4 r# G0 X- u2 e
Encryptstr = ObjRSA.Encode(StrMessage)
% e  _! {# ^, \' bSet ObjRSA = Nothing
0 `0 N  N0 o; g' L) I5 o! r# H+ Hend function
' Q5 ^! E9 `! `  r4 K6 R: ~function decryptstr(Message) 0 B$ X0 C0 N. x% g5 t4 B
Dim LngKeyE   Y' }0 y- {# Z8 X" l6 P) x/ d
Dim LngKeyD & }! @! A2 n; ~: @* m
Dim LngKeyN
7 z- H) E5 j* |; H8 {5 DDim StrMessage
  s. A4 Q9 y  g4 {Dim ObjRSA
# }8 Z; U+ o0 Z' s* b! T/ yLngKeyE = "32823"
8 L+ T8 l9 y/ \+ g2 ULngKeyD = "20643" 7 `- O$ h8 |: h- ~5 y* U: ?+ h
LngKeyN = "29893"
) v, L6 [2 e8 \StrMessage = Message 2 ]- Y! e" ?: W' Y/ V
Set ObjRSA = New clsRSA
/ a# Q" D, ~! PObjRSA.PrivateKey =LngKeyD
6 t' y$ q% \! u% X2 O. WObjRSA.Modulus=LngKeyN 6 s" I0 C. [' j" ~
decryptstr=ObjRSA.Decode(StrMessage)
( ?, t! _! e9 b' m( z. GSet ObjRSA = Nothing 9 E, Z' I- a% b) F2 d/ }" b
end function
" P5 k% a& y1 fdim last,first
9 X+ \* k9 W! g9 S) q. `7 Ufirst="!@#$%^&*()" % l( }& l7 g1 S- [& e) j2 ?6 a- L
Response.Write "加密前为:"&first 2 m& _6 {3 t  U' G, v  O
last=Encryptstr(first)
& L2 b5 X$ T4 E7 v+ ?8 _; B! M4 MResponse.Write "加密后为"&last
5 {' @+ n$ w- b6 d* s1 V6 B& zResponse.Write "解密后为" &decryptstr(last)
1 h+ j; X) V  M3 K) l5 ^7 c/ t' U%> ==============================================0 E: Z# A: g1 i) i7 N
剩下的就是字符的对照表了
: e  o$ e+ F) k. r8 L  L===================字符集================
7 o) l0 v5 s( E) }6 ^1_____6EBB0 F5 c1 e2 k7 u
2_____5C1F
; `4 R# ^9 Z& }  ]3 y) a9 U3_____4D75
' V/ \2 M6 }) ~4_____26CC
) R" U9 A, D' d3 c" j: Y9 R5_____4F88
! T  E  w. W, s$ ?7 o6_____3F4E
- o2 q  V) l% J9 f7_____0A9D
' W5 u; k0 S4 ^: b" a8_____1A1C
# j# d+ z6 f- z; T9_____6D205 }- Q1 ]7 T% F
0_____1089
# T, _, B0 t$ M+ \% R- b' t4 }a_____0F3E
8 o8 z6 T5 _- r; R9 a3 }3 _b_____3159
9 j4 s- Z+ _8 Y3 zc_____3517
# }& q$ ]  P, u$ Xd_____419C  |0 p. F% w' |1 O" e
e_____615C
2 @7 `6 e, @  M1 H9 N, X% W$ if_____556F9 s: U+ i! k" D  d
g_____2B7F
4 y% X  ?  F! q- G/ hh_____0F9C
5 x$ Z# Z0 G/ {6 _7 _' Q4 L+ Pi_____00FA3 p) P4 M+ W! S; ^( D% e  v- Z
j_____5A501 E+ g% ?  y! t; l  I9 Q) c& W
k_____2850( g. ?- w& `& D
l_____3E7B
$ l. A+ X9 M5 b1 X  F3 {+ fm_____71C5& ?7 G& p$ u! S7 z  Y) t
n_____1FC84 K' d; Z! t' _- {1 ~; }7 t! Y
o_____74C1# M& _. u  z; P
p_____5FB8
' x8 j6 c  Z0 ~1 Mq_____60851 Z, V1 o6 y8 j9 c8 ]7 K& E. G, a
r_____3AC4
% d3 y6 m% U/ P7 R. `1 c. xs_____2F50
: r& e" x% L2 h* y) ?t_____36F8
* w, i! e/ z8 t$ [  r0 @: u' T8 [u_____7010
6 ?  ]" }" j3 H3 j3 J' Nv_____0B423 I! l$ b, [" `8 V$ @% S! [
w_____1C7A
, _8 \7 U9 J$ Z& P( g$ P) Cx_____16F8
, r& p* f; W/ F: Y5 f3 y7 o: Vy_____2EE7
8 d* x- B7 Y6 b5 q9 {/ l: e( rz_____5CF3
. R/ b5 A, r3 {, g+ e* e!_____62338 p" Q6 _; Q( P4 P
@_____3A45
8 b3 o. F& ~: l2 t; O  }#_____22918 y; ^5 [# B; C& T. h2 [5 h
$_____5D5C
) ^* y' _2 Y9 j' b4 n%_____09B9; M, ^$ E" W/ G
^_____43EA
% i2 F' H* _! z&_____62B9
. N5 ^& |9 o5 T  _% Q*_____6301
7 R4 C, h/ I; s6 }3 W(_____4659" N, H! t( V. ^6 _' v6 n
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表