返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
) F  X6 Z% Q' H& w原始出处:http://www.3ast.com.cm7 N. T& u. [0 I! `" r. f, |0 q9 n
; z! k0 s# D+ v7 s/ z8 l
看不懂的直接绕过5 G( `# x$ [- q- Z7 `2 u2 ]
加密前为:hwy123456  @6 F1 V$ f+ M, d" K
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
$ E# P% h( {0 k% |. o! ~8 a
' m/ K) Z4 _( c3 X============================================- V) m* ]( P, o  Q4 Q" H
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
# e5 Y8 ?0 ~+ [3 _# l/ t! b: F2 \% i也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% d, Z6 b9 k% p" y
以下是RSA算法文件7 g6 m' K4 y7 s- }
9 f& E% e8 F! n3 ]. c6 N6 S6 j
文件名RSA.ASP' ]7 `) l# R% v! `3 r; S: p0 E2 [
===============================================& `+ ]3 n0 z& A- R1 Y8 h7 y
<% - G+ _" {) w' p7 k
Class clsRSA
8 o5 ~  A  F) t( [- rPublic PrivateKey , ^0 X5 @% a% U) @9 Y& e
Public PublicKey
) X* ^5 _4 U9 K: ^& w* x% BPublic Modulus 1 q: ?: h! V* O, Y
Public Function Crypt(pLngMessage, pLngKey)
* C# i' P" w- s" a9 c5 \, J# j4 \On Error Resume Next & Z5 I, I. S  G
Dim lLngMod $ e$ p$ }1 A* d
Dim lLngResult
- p. u- f9 K2 ODim lLngIndex / f% V1 w% M1 g) m
If pLngKey Mod 2 = 0 Then
" K: f0 @- R, c! C; o" @lLngResult = 1 9 x2 t" @  D% I- {
For lLngIndex = 1 To pLngKey / 2 - s! d+ f2 U2 _3 g# c9 x
lLngMod = (pLngMessage ^ 2) Mod Modulus 5 `, d0 f& u0 G+ V7 k
' Mod may error on key generation
/ T0 `  p) a  {+ e+ Y+ DlLngResult = (lLngMod * lLngResult) Mod Modulus 2 k0 B. B' f6 p) e
If Err Then Exit Function 9 G1 r; f. U) a# ~
Next
6 O8 T" }) o+ I" S3 e2 i" z1 HElse
& @, s9 ]# ]9 _4 M/ D& w/ v: ilLngResult = pLngMessage $ N/ f  D; a4 M: n4 n; U) J% Z
For lLngIndex = 1 To pLngKey / 2 3 e! u8 b/ Z; x# h; y* P* L
lLngMod = (pLngMessage ^ 2) Mod Modulus
& u+ a) q! r- e! l; O+ BOn Error Resume Next
& F% Q! E# J# c7 b' Mod may error on key generation 4 {) P7 B$ S% T2 f9 z7 [4 n
lLngResult = (lLngMod * lLngResult) Mod Modulus - d+ {( \" S& c% _
If Err Then Exit Function
! `, B! r2 X: E, G; X$ N6 o$ RNext 1 H: c% J/ U5 ?+ G5 N0 W1 m6 n6 D: w
End If
2 l) p- C7 l3 @; Y% ECrypt = lLngResult
# A- g( f, ?; P; Y. eEnd Function( E# Z7 A- ]4 q2 D! f' y! u: l5 }

) u" h& W& z' q2 `  H+ c1 S) z' LPublic Function Encode(ByVal pStrMessage)   L) F9 W7 H, r9 C4 \6 |: A
Dim lLngIndex 8 e. M8 D8 D; h/ g9 [
Dim lLngMaxIndex 6 _( d# ?$ o4 b* ?3 m
Dim lBytAscii
) S! r) L- d/ |) z: `) Z/ XDim lLngEncrypted
" _& e9 m0 E( k; X2 B) w1 hlLngMaxIndex = Len(pStrMessage)
) h+ k( [& y6 G" n, u6 Z6 m3 p9 @! XIf lLngMaxIndex = 0 Then Exit Function
" U2 x5 G$ x0 l2 S( m  h2 p9 FFor lLngIndex = 1 To lLngMaxIndex
2 `$ B4 L) P7 D6 {5 U4 g8 ~% ClBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
6 K$ s5 C+ |6 {# E7 k; VlLngEncrypted = Crypt(lBytAscii, PublicKey)
3 G+ ]3 \# S$ D9 z8 I, CEncode = Encode & NumberToHex(lLngEncrypted, 4)
) y, x3 I- A% P: NNext
* Y( T& W# \- p. j8 D2 F0 eEnd Function 7 [' V" {. [! Z' t: A/ ~+ I
Public Function Decode(ByVal pStrMessage)
. V8 \, ~, q; {9 u) E( SDim lBytAscii
* Z9 G- `9 W3 W$ T5 a0 R& PDim lLngIndex 2 b( D& ^! a1 D  D6 x
Dim lLngMaxIndex
$ e1 y: k8 k9 w& n% i( B4 D2 lDim lLngEncryptedData 0 g3 g/ N- N1 ^% P" N: z$ |3 Z8 v
Decode = ""
' P7 g; x8 C! w, [lLngMaxIndex = Len(pStrMessage)
6 r/ b5 m6 F; B7 d( yFor lLngIndex = 1 To lLngMaxIndex Step 4
- M. X$ X, y  l$ c/ \7 NlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 5 }& k  u7 ?$ X$ ^
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
% ]1 @1 y" g. F0 x0 K1 _Decode = Decode & Chr(lBytAscii) ! r* S# f- Z, ~7 @) v
Next 4 x" N% z$ S1 E4 h: O" \$ P5 R/ }; b
End Function 3 e" l' k; I8 b: U7 `9 A( H2 p
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 i! v8 I* b5 @
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( B8 m- i7 ?' D' _! \# x8 _End Function . Z9 T3 B. j4 F# ~* w
Private Function HexToNumber(ByRef pStrHex)
) i# Q, b/ `+ U) {HexToNumber = CLng("&h" & pStrHex) / A3 s4 D( I. T  b) U# j
End Function
( X. u5 v8 h' P: {1 X' x, gEnd Class
  m! B1 @/ g3 L& C3 pfunction Encryptstr(Message)
$ T) _) z5 \2 |4 h$ M0 KDim LngKeyE , ], d2 a. ?, _  P$ C: T/ t4 n% S  j' ~
Dim LngKeyD
* M, R3 U, z0 ~- J( ADim LngKeyN
; T9 w4 m* }& u- M! p  |Dim StrMessage
: X6 ]3 P) ^% s/ p- f/ Q) b9 }Dim ObjRSA : _" Y2 ^0 ]- s7 I' y; o
LngKeyE = "32823" 6 p& H% s3 M- b, i
LngKeyD = "20643"
9 e) @9 V' `" l9 CLngKeyN = "29893"
8 c, w( @" H! f% ]StrMessage = Message
( v5 e) ~# Q* z" }7 S- FSet ObjRSA = New clsRSA
2 Q2 L. r! f2 J3 d: B  kObjRSA.PublicKey = LngKeyE ! ^" `; r- w& Y( F& d8 [7 O7 ]
ObjRSA.Modulus = LngKeyN ) V5 H' Y5 }! a& j
Encryptstr = ObjRSA.Encode(StrMessage) + T0 L( ~4 q% r
Set ObjRSA = Nothing
6 j2 ~7 E$ q. u5 Send function, y1 _3 @7 J& H+ Q$ `: o
Function Decryptstr(Message)
! P; y* r+ a# D% r7 D& ?( B  |  TDim LngKeyE , n% o& i' M6 W* r: p& N* @' O
Dim LngKeyD
* {! j' ~; v4 |. f2 R9 Y, jDim LngKeyN ) O. g) q  O! w4 U5 Q
Dim StrMessage ) u2 D* Y9 a5 A7 P7 V( ]3 o/ C
Dim ObjRSA   O  c' a0 m- l* R2 z0 l
LngKeyE = "32823"
0 P5 k) N7 `) t) X. X2 l; x( SLngKeyD = "20643"
+ S' @0 n& p- ^( q/ r& RLngKeyN = "29893" $ S0 ~! Q, \' T) g7 H
StrMessage = Message
# q- ~- _$ C0 M9 u- `( qSet ObjRSA = New clsRSA   J0 `9 n" o/ k. ~9 ?* Q
ObjRSA.PrivateKey =LngKeyD
6 S! C! R0 Z: y1 WObjRSA.Modulus=LngKeyN
9 k3 f% N+ X. l/ K$ s5 @2 Rdecryptstr=ObjRSA.Decode(StrMessage) ) D4 n' x. e9 T7 }/ Q: v/ c+ q
Set ObjRSA = Nothing   H& ~% ]" l8 Z
end function 4 _" U; R  k# Z5 r9 u. u4 a3 f
%>
0 S: s+ b1 ]. p1 _4 v6 ~7 c===============================================+ D- x" g; d" d0 w" h
4 @" B8 i  L# O2 Q3 p
还有一个用于测试这段代码的test.asp
/ W! ?+ c+ z3 O2 H* |0 Y( o有兴趣的自己搭建个IIS测试下& a: W7 U+ f' d
<!--#INCLUDE FILE="RSA.asp"-->
2 a! [2 u5 j. K  m0 ?6 F<%% X* o5 q( A: M6 ]+ T0 O- Q0 i1 y
function Encryptstr(Message) 5 ?# h$ A8 Y8 m- \3 {0 B
Dim LngKeyE * D5 y. F' {  e0 \9 n% M% L
Dim LngKeyD & N( b$ h/ o: q: ], k9 A1 o
Dim LngKeyN 9 @/ b( t- a' _* U- Q: h8 }, f
Dim StrMessage 5 o6 x. M( t% b& A3 i2 i: O
Dim ObjRSA 7 [8 \' T2 f6 a) V* Z
LngKeyE = "32823" . W+ g7 j$ q) x
LngKeyD = "20643"
6 c( O8 R; w! K: g  yLngKeyN = "29893"
1 F$ I# \+ P* G  C) L6 y: _StrMessage = Message - A/ ?9 Z0 e- m# f; G% l! _
Set ObjRSA = New clsRSA
3 S% h& k4 m$ `/ ]ObjRSA.PublicKey = LngKeyE
; w6 X9 F+ C( t* v; B  r, YObjRSA.Modulus = LngKeyN ! g, V) u  o; \4 n
Encryptstr = ObjRSA.Encode(StrMessage)
7 _( I6 e& r6 }* {Set ObjRSA = Nothing
% ?; X( u% Q3 Z2 G, V/ ]; ?3 Cend function
, B% L5 j% B  P8 I+ wfunction decryptstr(Message) 3 ]3 H2 ~, s( W  H" j, Q; Z: p1 y
Dim LngKeyE 3 L: w1 i$ W: l, g
Dim LngKeyD
  f8 S% I3 F* r: jDim LngKeyN
# {3 x8 U1 x! ]; {4 X0 ~/ q* nDim StrMessage
8 u& V* C6 z9 t3 S1 TDim ObjRSA 1 D0 T: `5 Y* q$ U5 [
LngKeyE = "32823" + s' l7 V* s0 l2 Q$ H
LngKeyD = "20643" ! n! t( m2 l: j) X: l' Y1 y- `; J
LngKeyN = "29893"
# n* T$ d# o( w. ]StrMessage = Message
! D0 F1 C/ b/ H( DSet ObjRSA = New clsRSA
) n$ J0 W4 Y) A% t) DObjRSA.PrivateKey =LngKeyD + ]& e4 n' s- j
ObjRSA.Modulus=LngKeyN
: _* F' O# C9 B' d1 _% }decryptstr=ObjRSA.Decode(StrMessage)
. e1 l5 w9 [7 L1 t; e8 }Set ObjRSA = Nothing
. d5 T9 R) N" ]( eend function
- ?6 Y% q9 U: K* G0 p6 cdim last,first
4 s( r# T9 H1 j$ S, efirst="!@#$%^&*()"
$ i: i  q3 O! G" CResponse.Write "加密前为:"&first
2 E% z+ c/ d+ `# M+ r4 slast=Encryptstr(first)
- N& {/ d% w% U! O* g2 l& `Response.Write "加密后为"&last
  S/ p, z$ i- E* ~" Q* ^Response.Write "解密后为" &decryptstr(last)
/ U3 t- k/ T1 s6 x8 v0 Q* g3 S, q%> ==============================================8 j' ]* H% N# \5 P) u7 X* @) _9 F3 M
剩下的就是字符的对照表了
8 p3 y' r- Y9 k0 P$ }2 g* r5 h. W===================字符集================- N  b% \! O- Z) W7 I7 y
1_____6EBB' s# U% [, a) n0 z8 h' q. }
2_____5C1F4 D6 F& M2 \+ [9 U5 j
3_____4D75
' {* Z$ V! d: v; D4_____26CC
& _8 E2 ^9 [  R9 B* ^1 N5_____4F88# x) W" ?& ?  x
6_____3F4E- M1 v, u2 @/ f' r: M
7_____0A9D
8 v1 t0 k# a) C" d+ [( B: ?, g8_____1A1C3 D; ]; g# {, J! Q
9_____6D20# z  m1 J: U2 l/ y$ f
0_____1089
! w( L# v+ ]0 N# X  @- F# e8 p" ?- [/ S  oa_____0F3E% V1 H5 o) Z& _+ ]/ I( W
b_____3159
& f0 v8 Z5 H0 T" p- Wc_____3517' R, S! _# V7 V9 T6 a( M7 J& v
d_____419C% m3 ]' o: p# F6 s7 m2 U8 j
e_____615C* L8 C7 \( C8 c
f_____556F
: U/ |4 G) C( L. O: N9 y( r) o0 Og_____2B7F( B, I+ f' ~  _) }
h_____0F9C
4 D' W3 T$ d( t6 a8 c: U! e) Ai_____00FA
: _4 M( ?0 g, pj_____5A50% H( b( [- P4 ~0 c
k_____2850
- h' Q; C3 |- a; Yl_____3E7B# |. Q- T. I) e1 }/ x
m_____71C5
3 V$ J2 t  k* z! z. gn_____1FC8
- B. Y# I2 C  R- a; Z6 g# So_____74C1& s( V, c: U: v# B$ O) G
p_____5FB8
0 a& H: e1 Y8 {1 ~; s2 |. Vq_____6085- a5 j6 K2 Z* V/ k/ E
r_____3AC4
& v" V; a3 t" Y1 O9 ?3 c) |s_____2F50
7 e3 |+ Z+ c5 {; U$ n" Xt_____36F8; W4 A( I* {1 O) F4 y( x. g
u_____7010
; ^5 R% v, [4 t1 \3 k' L! ~# iv_____0B42
- W; }9 \+ t( T% m: `w_____1C7A1 t! V" N- x  F- x; ~/ p
x_____16F8
) A  ^& C8 v8 g# |- i& u- _% `y_____2EE78 ^+ @: k4 D: e( y2 c
z_____5CF33 ?# J: D2 b  f
!_____6233! x: P7 N. l( V. T4 c& i
@_____3A452 m3 X: X' v7 `; g* x
#_____2291) `6 Q, A: \& ?+ x% z
$_____5D5C& f4 T! t9 E# `
%_____09B95 u- l- g' I$ q$ @- _2 Z, w
^_____43EA; p, Q$ A% H& H5 I5 f
&_____62B9
# u2 E+ ~: D+ t" ^, h2 p4 ?*_____63016 Z/ L" B- y0 [
(_____4659
) p! O5 y; Y& [% f6 |. A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表