返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
+ [0 h9 A1 m: L1 X原始出处:http://www.3ast.com.cm
: t: J# Y" Y8 l* G- A( g; \* Z
2 w- R3 M1 i( R2 R  I4 h+ f看不懂的直接绕过% t. w! Q! C1 t# ]
加密前为:hwy123456: ^$ o9 [) o5 x  l& x
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
5 w* q) w( N! G" l+ T7 i; w7 T' m2 W4 k6 J" m' r; ?
============================================2 W1 a# d  T: N& m$ T
上面是当时自己校内的心情。现在已经解破出来了,分享给大家% \! r+ _: M) l. @* `+ F
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法8 k' V7 U2 G  ?3 p! y
以下是RSA算法文件9 h% e2 T: V' |9 ?
5 E9 Y3 i2 M# Y# q
文件名RSA.ASP
# J& M* J# S0 c7 i$ V! \, e; _===============================================
) K7 J( Y$ f! G/ a<%
5 e$ |' F7 k# W5 a8 z: b/ U& B# LClass clsRSA 9 [7 n0 I) @" b4 E- g) N, G1 ^
Public PrivateKey + g8 J/ H" ~- E
Public PublicKey / w: [! e" ?* b4 h. I; {, A
Public Modulus
& H6 z3 O: @+ J- u, k# j* ^3 P; nPublic Function Crypt(pLngMessage, pLngKey) & A+ G$ O. t, B* G- |+ q
On Error Resume Next
, ?( V4 G. U4 p( l- v- h/ aDim lLngMod
; Y0 ~4 T" x# k; [5 l: k/ `; nDim lLngResult
. p8 I8 p; c) c7 C3 q7 A2 _Dim lLngIndex
4 D3 K1 L4 F! s3 A# {6 n  G4 \8 JIf pLngKey Mod 2 = 0 Then . i& a2 c: I% d8 E* O
lLngResult = 1
, P3 e, h+ `+ P9 b$ {For lLngIndex = 1 To pLngKey / 2
9 F# t- B% g' E; wlLngMod = (pLngMessage ^ 2) Mod Modulus
# _( D* H7 G; t0 ]0 |! F1 K5 M' Mod may error on key generation
, y8 p  J$ F% d9 z; @. m, ElLngResult = (lLngMod * lLngResult) Mod Modulus
0 B% c  v3 Q: j- d9 TIf Err Then Exit Function 4 D$ U+ G5 e' v1 c
Next
% x. `) Y/ G# Q% W" P( @* BElse
. |( y6 I+ ^( e8 {# DlLngResult = pLngMessage 7 t0 C: h# ?5 ~3 Z7 G
For lLngIndex = 1 To pLngKey / 2
3 n, ~8 v/ I6 OlLngMod = (pLngMessage ^ 2) Mod Modulus * u& g" K7 v. v
On Error Resume Next
" \9 X: H: T! k! i( Y' Mod may error on key generation ; _5 v# s7 h( J- d
lLngResult = (lLngMod * lLngResult) Mod Modulus 2 A3 j8 `5 d1 o5 m9 r9 Y, E
If Err Then Exit Function
5 y/ f+ e7 ]5 p+ R; xNext * I+ p* ~+ R2 }- e
End If ; i6 b$ I5 J# n* N# V5 u; M
Crypt = lLngResult
" q( \' X6 C- H' \End Function
& q: x/ x; n# z! e5 P
8 Z' j! x8 i4 j* }, L# k; ^! Y* |Public Function Encode(ByVal pStrMessage) . v: ?& R. k5 D  L4 X+ p: U
Dim lLngIndex
$ `5 T9 d. D  [& T8 d: i4 ?Dim lLngMaxIndex 1 G3 y6 n* \8 s& R# F; {
Dim lBytAscii
% L; v( u0 K: Y* T1 @6 i# PDim lLngEncrypted
* A& I/ \  ^- B3 v8 c+ X3 P8 slLngMaxIndex = Len(pStrMessage) 2 J" a2 |" ]) Q- i+ B
If lLngMaxIndex = 0 Then Exit Function - C1 u  }% ]$ w9 R* V- ?* e- }
For lLngIndex = 1 To lLngMaxIndex 1 d- E- L$ i3 Q0 U$ {  V( @- E
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
5 J5 Z% S' Q& q2 y$ UlLngEncrypted = Crypt(lBytAscii, PublicKey) , u1 Y. Z  a( y, f0 \
Encode = Encode & NumberToHex(lLngEncrypted, 4) 0 F, R- v' Y  ]! b7 B
Next
8 ?0 {3 b# m8 _! X. ?End Function 6 Z# g% h! E' R5 \% Y( P
Public Function Decode(ByVal pStrMessage) ) l5 X5 L! B3 P* N* D4 ^, ~; f
Dim lBytAscii
) ]7 n! q# [7 K0 vDim lLngIndex + \, m0 U2 b8 B7 K, s, V1 {& |
Dim lLngMaxIndex 6 r# ?( w6 t4 c2 N. V. L- ~) _5 T
Dim lLngEncryptedData 9 b0 V8 R+ z* P$ g- ]8 z: h
Decode = ""
- S2 \4 C% [& B# \( C9 E) AlLngMaxIndex = Len(pStrMessage) 6 [# T8 m' J' z* R- _0 I) a
For lLngIndex = 1 To lLngMaxIndex Step 4 0 \  j( ]  s0 S8 M- Z; x
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
2 N2 i  T  f5 v, glBytAscii = Crypt(lLngEncryptedData, PrivateKey)
( @$ K  @8 y0 d" E( A' _2 w' v2 BDecode = Decode & Chr(lBytAscii) ; }1 `1 ?) |% a. P
Next
3 Y* z6 t8 F: x6 Z. @1 D, q" yEnd Function
$ k9 R$ i. I. f8 IPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 6 I0 _7 a0 x) L
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
- ^7 e) j( k* b% V- ~2 D6 N, K1 @; m$ SEnd Function
, ~, ]# P; V+ e& x6 ^0 |; PPrivate Function HexToNumber(ByRef pStrHex)
- r8 ?6 `9 F- o$ W* Z$ O4 BHexToNumber = CLng("&h" & pStrHex)
: u& F; ^% n  Z' G5 l- XEnd Function
$ s+ ^  N$ R3 R; R4 ?End Class ( L" s1 b4 `$ u8 O8 {
function Encryptstr(Message)
, Y$ n; S+ `5 X) C9 M: D' EDim LngKeyE 2 p- ~' R1 q, P- v) u! l  c
Dim LngKeyD
" V5 D) ?0 @4 Q) ?% P) pDim LngKeyN
- H$ V) E; o2 b: q4 W; ZDim StrMessage ) H4 U& R: U2 z5 y1 p% C
Dim ObjRSA & R4 c* H& J" T3 T
LngKeyE = "32823" ) }0 |0 X+ O, s2 }3 v: r
LngKeyD = "20643"
& l* a' S( J# [- B! o( a+ E; nLngKeyN = "29893" - r2 w) E7 g& K8 b" D
StrMessage = Message " m' |9 |7 i6 A, H9 d: t/ \
Set ObjRSA = New clsRSA
( h- p" Y8 a& U* F- C6 v. iObjRSA.PublicKey = LngKeyE - H: B! I, n7 J+ o6 S( O$ T
ObjRSA.Modulus = LngKeyN " V; X4 s/ Y) r6 G7 ?- j8 v% j! W
Encryptstr = ObjRSA.Encode(StrMessage)
& O- s6 k4 N( M) U; gSet ObjRSA = Nothing
& ]* Y  x; R+ _- Jend function
) l. p' l' q( d) BFunction Decryptstr(Message)
! ?7 D: x! E: B5 WDim LngKeyE ' [1 m. A9 X# n: w1 D- k
Dim LngKeyD 9 Q5 h+ l, {& c+ n/ Z: i! e
Dim LngKeyN / Y5 U' H% r5 R; |$ D
Dim StrMessage 4 h& ~( l/ C; S+ G. i- \2 P
Dim ObjRSA 3 ?" i+ T# u) P3 T9 x0 Q
LngKeyE = "32823" ; ]4 Q1 t- |7 e( p
LngKeyD = "20643"
, f: v3 `8 q0 R. N8 pLngKeyN = "29893" * @: n% G2 o5 {: a0 S
StrMessage = Message 0 I# h7 l% H* _& M4 _# f
Set ObjRSA = New clsRSA
3 m+ M; T! J! K% xObjRSA.PrivateKey =LngKeyD
2 {2 K$ A% g& u. o! KObjRSA.Modulus=LngKeyN
0 ^, H; J7 r; _% A1 b9 Udecryptstr=ObjRSA.Decode(StrMessage)   Z. x4 V6 g( Q( ?" E9 x9 z7 S& P
Set ObjRSA = Nothing
- r) B; x% K& P$ e1 f6 T# ?7 @  T2 Mend function   o6 v! `* H/ n* g
%>, {! E$ q  B' W* E* D/ A
===============================================; j! m; p8 Z3 z) V, {

, H! u, U1 k7 B3 l还有一个用于测试这段代码的test.asp+ ?; O" ]4 S8 Z% l
有兴趣的自己搭建个IIS测试下
" u; E% ]$ D! Q+ h% r6 ^<!--#INCLUDE FILE="RSA.asp"-->
! V+ k+ Q& F$ M! `* m% P<%" ]# J$ n' B* G$ G: j
function Encryptstr(Message) 9 c8 ?( z$ S/ D7 c0 B
Dim LngKeyE
. L3 J1 N. W! A2 ^6 c/ |$ k" N+ S3 MDim LngKeyD * l4 t9 D! w( w
Dim LngKeyN
3 P. i8 d6 z4 bDim StrMessage
5 c9 E" p  l5 n( Z* tDim ObjRSA
6 p% Y' Q& D/ D& \LngKeyE = "32823"
5 L$ ?* \- _0 I1 F* g! W; I! Z3 U* ULngKeyD = "20643" " R# }+ s4 f6 P- G1 a# h0 B
LngKeyN = "29893"
. }9 D( G' r2 n4 QStrMessage = Message
, e, m1 ^" x6 o3 T4 C7 v' OSet ObjRSA = New clsRSA
# J6 b/ O2 G/ [8 H6 O& j+ eObjRSA.PublicKey = LngKeyE / l* a5 E+ N4 D" x1 y5 V
ObjRSA.Modulus = LngKeyN & d4 V( ~* W; x0 q# c9 ?
Encryptstr = ObjRSA.Encode(StrMessage)
* E( H3 |4 w  j% A) ]& Q: tSet ObjRSA = Nothing
; F" Q! r( Q* B# Q5 mend function / C! @8 B, R5 w( E8 V" A
function decryptstr(Message)
2 F' w  p3 b6 i6 q  z! P  KDim LngKeyE
. l9 Y7 V# e: J1 @! k- nDim LngKeyD 3 y* C8 [" X9 I8 D
Dim LngKeyN
, U9 p. H& a7 R* W4 f, m# ?, n! pDim StrMessage
% ~! ]9 q! S9 W3 h) NDim ObjRSA
$ Y% t7 u4 `$ H# R% XLngKeyE = "32823"
8 U# T) T0 f% ^3 I4 vLngKeyD = "20643"
0 |) K- H+ J$ _) y+ i: xLngKeyN = "29893" 9 v( k( m( a4 x! z$ d
StrMessage = Message ; ?4 Y. l& t# g! B9 v
Set ObjRSA = New clsRSA & F, I) i6 ^+ v1 x$ r! C' J" r
ObjRSA.PrivateKey =LngKeyD
8 Z1 t! C1 \9 m+ n2 N: L4 D8 q3 FObjRSA.Modulus=LngKeyN
" C* i5 y+ H; c) qdecryptstr=ObjRSA.Decode(StrMessage)
# {& z+ S4 E+ L5 ]- T* n+ C9 R- mSet ObjRSA = Nothing
  }4 I/ C& Q( v  q' M+ `end function
+ }: d: Y: x3 X) L$ c  s* j3 d9 Sdim last,first
! M" j+ e; |1 t! L* bfirst="!@#$%^&*()" . R' Y; ~9 B& W+ U( r& }0 d4 p
Response.Write "加密前为:"&first
, z$ f& K$ x% klast=Encryptstr(first) + `2 [4 s! y) j1 r" W$ }: H& Z+ X
Response.Write "加密后为"&last
- ?9 B# e6 [6 p: N; g1 }! ZResponse.Write "解密后为" &decryptstr(last) ! h. \: S5 i7 k
%> ==============================================
0 }. V- u7 ?6 ]2 c  y( L; T& r剩下的就是字符的对照表了
6 P, A; o- s3 _; c: k3 @6 F===================字符集================; D$ W6 v/ u4 D- Q; L
1_____6EBB2 R4 ]) L5 i8 i" W; I
2_____5C1F4 t' M! ~) j, y! w# l' Q3 m% F
3_____4D75
# }+ ]9 k- y4 y1 \9 k$ D; n& N4_____26CC
( h8 [* z! D1 w4 ]8 J5_____4F88
' Q8 n+ E0 n9 p* h- F9 y/ A' J6_____3F4E
* l: [+ z$ |" b- a# k- {3 |7_____0A9D
& I6 ?6 b' l$ P: m- W8_____1A1C) Y% _0 f# F* P: @5 ^  v
9_____6D209 K! a6 W6 p+ G1 {: N! V8 v6 F5 u
0_____1089
! Q6 o0 j( J3 La_____0F3E
& R8 v! M% V1 Q: q. ~b_____3159* e/ Q2 ]$ G: {- ^7 T; I8 N% z
c_____35170 _+ _5 `2 G% e6 i! ]# f
d_____419C
% R/ Z) J0 V- ]2 U+ o0 G+ `9 i0 `e_____615C/ Z% k, ]9 T5 E) }. n1 ?& W
f_____556F
1 z( y1 u: S9 t5 e1 H$ ?7 hg_____2B7F5 U$ h# ]2 s1 d
h_____0F9C! n: c3 D- O3 I+ p; u; ~5 m! L' Y
i_____00FA- `9 x1 I) i( y1 g
j_____5A50
$ {4 [8 i. {3 V- Ck_____2850* D5 I0 W* F! Q- A/ M9 U7 g
l_____3E7B) t# P1 E! Q* S& Y( J% `* a/ P
m_____71C5, s" y: l. `0 ]' x# G4 |; [
n_____1FC8. Z1 ^  X. ~4 ]8 L3 y, N3 H. ~
o_____74C1  t* x- Y) B" e+ i
p_____5FB8
. _0 K4 v% c# A+ n0 ^# S4 ?, eq_____60858 a  F7 y" D! i' g2 M0 j
r_____3AC4$ @2 T  ]- K1 O5 `5 U* P- W* ~
s_____2F506 _' ], C6 K2 l  g9 D8 {& o! b
t_____36F8) m2 b, p1 p8 ~2 N% l5 d
u_____7010
* c3 L4 u' |0 e" ?) K4 wv_____0B42
& z) a- V4 t, }, Y, Y9 p; b3 Mw_____1C7A1 m' _. @& q# e
x_____16F8
/ w4 X% o4 o5 C( Oy_____2EE7* Z0 [# s3 d1 K- x9 H/ [0 Y
z_____5CF3
0 q( h' Q& z! O4 p* @8 S!_____6233
. n9 i) M( ~/ i3 M" Q& x6 p, t@_____3A459 d6 o& X" c- |: H4 k  ~' `+ [6 q
#_____2291
1 }: T8 Q" [6 N: O7 J$_____5D5C3 B) z/ f% J2 i
%_____09B9: Q' K8 g9 Z' X5 y
^_____43EA
  c0 Z9 h6 u) s# D; P- Y  [0 U! C&_____62B9
+ s/ J" v# w4 ^; Z" r$ W*_____6301
7 {3 o6 v2 @' I; ~4 y2 }/ E(_____4659- E0 \  d' _% v2 L* m- M# x! l" O% F
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表