返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
5 I5 @0 F. Y. d9 I原始出处:http://www.3ast.com.cm
- L5 }  u3 z, P/ Z- }9 ]" S* w9 s9 ?- D' l
看不懂的直接绕过
9 P% a" x. G( D5 B加密前为:hwy123456; D3 \" |3 g3 h! A8 B
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, F/ g) \' A$ |- E+ e; F9 t' W+ h7 @
. {/ O# l: e6 K
============================================  U; e2 L6 u4 e. T8 t
上面是当时自己校内的心情。现在已经解破出来了,分享给大家4 J- s% \5 ^2 ~. M; a4 |
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
" Z5 m8 T2 f& Z以下是RSA算法文件7 L2 E4 \* C/ d, s. X# e
+ y0 C5 e$ X0 a; p, S
文件名RSA.ASP4 r; {$ {) @6 K, s8 F. f8 M7 V
===============================================
+ R* Z8 x1 i& h8 r<%
7 W) u/ y4 B1 S1 ^9 uClass clsRSA
: x* U7 l# ^! }; v+ {: q" O% mPublic PrivateKey
4 {: A% j# ]) X0 BPublic PublicKey 4 E, }2 H0 m! g+ T
Public Modulus   s4 B: N8 X  ^: l" m. }* b
Public Function Crypt(pLngMessage, pLngKey)
# D8 F, i# v8 U& x1 {* IOn Error Resume Next
& p& c! m7 x7 v0 ]; d% r/ UDim lLngMod ( \( F8 c6 ~5 \3 }' X7 M/ i) Z
Dim lLngResult % r% w$ H, A8 |2 F
Dim lLngIndex
  ^# M0 j* q: N; E: eIf pLngKey Mod 2 = 0 Then 7 w& V1 a: P( N! v) s
lLngResult = 1 ( \- F+ v5 G; y  g" |' v# ]  D, m" b0 ?
For lLngIndex = 1 To pLngKey / 2
. \0 x; e7 b* [0 m: G( M4 ?lLngMod = (pLngMessage ^ 2) Mod Modulus
+ d% g% ]* i. N* D& j  G0 Q! S' Mod may error on key generation , F% J8 x' Q9 G. |5 S, ]/ s* h3 W
lLngResult = (lLngMod * lLngResult) Mod Modulus * @* ~' B7 e, y
If Err Then Exit Function
+ J! Z- ], h. @3 d) a' K' WNext
: L# A9 z* r  \  C6 R) O+ {$ @# @. Q# KElse / y9 B+ B8 |+ Y2 \7 X4 Y$ N
lLngResult = pLngMessage
0 @- ]4 O9 |& _+ ?5 \For lLngIndex = 1 To pLngKey / 2
4 _2 e: k! }9 G* vlLngMod = (pLngMessage ^ 2) Mod Modulus 5 }# B2 ?. B- K& z% V1 ~; c; U
On Error Resume Next + F( k7 f' S% O* ]  V0 ]- }
' Mod may error on key generation 6 A" d8 C# g% o/ Z. x
lLngResult = (lLngMod * lLngResult) Mod Modulus * M. X6 P( P  _, v9 n  @
If Err Then Exit Function ) L% [% o, }( E) i, l# r, \
Next
% h$ N% v6 O9 y0 q; C7 zEnd If
$ ]2 |! T- y: |! SCrypt = lLngResult / r4 Q/ s/ u" m$ U
End Function9 L$ V+ j$ _0 \5 B8 x

/ d8 x  ?/ }2 Z3 X' }' x. i7 iPublic Function Encode(ByVal pStrMessage) , T% o# r* e! Z8 y
Dim lLngIndex , i; ~4 i- l* D; e5 g8 R
Dim lLngMaxIndex " f( x3 [; o! D( _+ @  O
Dim lBytAscii 9 A  a9 b% }' Q9 _
Dim lLngEncrypted
; ]' a6 M6 A6 u, ElLngMaxIndex = Len(pStrMessage) 5 `5 B# I; f4 }) _
If lLngMaxIndex = 0 Then Exit Function . p3 w6 C2 {1 z! _
For lLngIndex = 1 To lLngMaxIndex , ^: u; G6 ]8 B5 W8 R/ U. v
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
4 ~6 M3 }1 G) wlLngEncrypted = Crypt(lBytAscii, PublicKey)
( p% m) d0 k9 ^# `$ uEncode = Encode & NumberToHex(lLngEncrypted, 4) ( m4 H# ]/ y" s6 ^
Next # s, L0 L4 v" N/ x% e1 I# T. Q" T
End Function
$ `, |% L9 c) _6 Z( ?$ rPublic Function Decode(ByVal pStrMessage) 6 v+ G8 a- y  B  {' K
Dim lBytAscii
7 }, E$ l0 E& c6 F% o' K( iDim lLngIndex ) i* y# s- ~7 \, n. d% E* b- ^
Dim lLngMaxIndex # |' ?: Q/ n2 F0 r0 _7 H
Dim lLngEncryptedData
/ O; @. e9 T& f5 XDecode = "" 0 e. L" u3 C( w/ q
lLngMaxIndex = Len(pStrMessage)
8 O9 f, K  w' L, [; }; H9 }For lLngIndex = 1 To lLngMaxIndex Step 4
/ s  `/ `$ \5 p% G, c* C: vlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) : c! z. O7 ~8 ?! A
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
' v2 @% ]  y8 l! O* x0 P) \' m, R# VDecode = Decode & Chr(lBytAscii)
! g% H- W( P) y7 x. S2 L6 l" U) TNext
4 F( H: J) @! e. A# p: l9 HEnd Function
; \4 n% L; C  o# |6 \6 FPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 s* e( P5 T9 q0 W* m
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; H. y  X- n9 I) Y0 p. i
End Function 8 f/ u$ |2 o6 S: G' C, q$ P
Private Function HexToNumber(ByRef pStrHex) 0 m4 e9 X7 H6 f" Y7 S
HexToNumber = CLng("&h" & pStrHex) 9 V" x3 o& W. t( i. K1 D
End Function
) \% s6 }" k$ L9 ~* p0 SEnd Class 6 W6 _" Q) C8 B8 o; q$ z  h
function Encryptstr(Message) / K7 _5 w2 [# u, E' n% f# v' o
Dim LngKeyE 3 G- c6 ]% t. e+ D
Dim LngKeyD - [0 q4 h( \( t- ^% t4 g! e
Dim LngKeyN
  {& n9 _8 N) F- S' D: dDim StrMessage ( ~" N& u3 e; V& `
Dim ObjRSA
6 c5 W" ?: h! O* o( V4 pLngKeyE = "32823" , }( `8 ?+ K% |  z$ \
LngKeyD = "20643" + _" t$ {6 X9 z
LngKeyN = "29893" : K) F. _* P+ n1 j+ A8 P- _8 @& G
StrMessage = Message ) _, L1 a+ q4 ~
Set ObjRSA = New clsRSA
1 Z0 j: Y; U) F6 Q: r! P& o/ oObjRSA.PublicKey = LngKeyE
# p1 {  D8 [8 x/ [  w# s: Q2 cObjRSA.Modulus = LngKeyN 2 K8 B* M. t; Z. m
Encryptstr = ObjRSA.Encode(StrMessage) 7 Y3 x6 e" R' N2 g: ~: {2 Q. `
Set ObjRSA = Nothing
2 H1 z; G' n6 D  zend function
4 L/ I( _0 T# l; ~+ yFunction Decryptstr(Message)
0 n1 N4 M) X8 |. c1 ^) g  UDim LngKeyE 9 G, V- p1 i+ T1 x5 Q  U; _
Dim LngKeyD
& m3 C& ]+ o: \$ h5 iDim LngKeyN ( K6 F3 J- U1 I4 F: \
Dim StrMessage
% ?0 [$ x. n; @Dim ObjRSA
9 ]4 B8 ~  O2 |3 iLngKeyE = "32823" : j' z" m  c4 \4 M2 C: p
LngKeyD = "20643" 6 t4 Z# l; g9 D
LngKeyN = "29893"
& e+ a/ U4 F9 Q5 ]9 u3 KStrMessage = Message
1 _% m) X+ w# ^% PSet ObjRSA = New clsRSA
' D( f* B+ z+ T- WObjRSA.PrivateKey =LngKeyD
4 b$ o8 ], N+ w$ `9 X3 f) mObjRSA.Modulus=LngKeyN " \6 Q# b$ D6 \7 U' A) F0 A$ ^
decryptstr=ObjRSA.Decode(StrMessage)
, y' z; E2 x5 m. t/ H% p: MSet ObjRSA = Nothing ! t3 N1 Y% F( M! M8 w8 o# I7 L: X
end function ! `  T3 d. Z; u9 S4 W: e, I  v8 g
%>( ?& ^: F/ B- \7 F. e' v
===============================================
8 l- ]. o) c) s3 \$ m; P8 M: |. H
* ~% ?+ s; V4 S+ o/ r; ^0 ^% a还有一个用于测试这段代码的test.asp" f" m* S+ E; O1 J
有兴趣的自己搭建个IIS测试下
9 {# ^! [) u  t& @3 W: A<!--#INCLUDE FILE="RSA.asp"--> - C2 i' d! e3 c3 O6 h
<%
& u# F* h) G. k1 P( x; p" H& ?+ n- L( Mfunction Encryptstr(Message)
$ o# x7 d6 ]$ ^% d5 d: B& C$ BDim LngKeyE ) i7 i" y9 q! z' Q
Dim LngKeyD
8 @8 n9 k$ v) n. ]3 b# IDim LngKeyN
6 K  g0 X. N  S; r* s% b$ kDim StrMessage $ W% c. P+ D" w0 Q6 i! w
Dim ObjRSA : I. q+ D# h  d( _
LngKeyE = "32823"
4 I" Y' m/ t( a) d  V+ nLngKeyD = "20643" ( T. B- }' X, h$ ]
LngKeyN = "29893"
* s) ]- V* z) mStrMessage = Message
8 J3 m3 j5 k0 |1 B8 T7 PSet ObjRSA = New clsRSA 7 g" a7 d' g$ Z* W) _- x6 O
ObjRSA.PublicKey = LngKeyE ! y) Y& S4 N5 ~5 Y2 e4 n( J
ObjRSA.Modulus = LngKeyN " X2 z4 p; t- F0 H
Encryptstr = ObjRSA.Encode(StrMessage)
4 X: p3 W- a3 u% _Set ObjRSA = Nothing
1 J. |  ~" g( P* ]  G# [6 {3 ^end function # ~1 ?2 i9 [6 K. Y' t
function decryptstr(Message)
. T( G4 r; {6 f7 p* i: [/ FDim LngKeyE   c# U& J& p; f, Z7 X3 W) ?% l
Dim LngKeyD 9 _& k1 F: y7 j/ q3 k
Dim LngKeyN / R+ o( b8 D8 w
Dim StrMessage 5 @3 p. u9 y& C& G6 _
Dim ObjRSA 3 p. Q. X: u% l) ~2 Y  z3 L: b
LngKeyE = "32823"   v/ f9 R; E2 f& M4 ?9 N2 k; l5 @
LngKeyD = "20643" 6 ~1 F! v( m, p6 y. o1 f5 ^
LngKeyN = "29893" " B* j9 ^( y- u% [9 k5 o
StrMessage = Message
, ^5 f. H" k3 s. x: m! aSet ObjRSA = New clsRSA 2 c, Q* B! O. }
ObjRSA.PrivateKey =LngKeyD
2 t& `  M8 `+ d; d* ^9 t, NObjRSA.Modulus=LngKeyN
2 n$ G* p2 K. S9 kdecryptstr=ObjRSA.Decode(StrMessage)
* ]1 L2 ?# m* l7 U; I' mSet ObjRSA = Nothing
% L0 K2 O# G" K) Hend function ) g  i/ a  H5 D$ e
dim last,first 6 F, _2 d+ k' O; m; M6 V: T( Q
first="!@#$%^&*()" ! m4 ~5 n" ~: Y' S
Response.Write "加密前为:"&first
: ~1 h, Y! t5 |. _9 f' _last=Encryptstr(first) 0 z6 O3 |4 E! n% I
Response.Write "加密后为"&last 8 }) c6 B4 L+ j+ _! h4 s! g
Response.Write "解密后为" &decryptstr(last)
) w/ D/ Z- K! V%> ==============================================! k% W) s& l: z* [
剩下的就是字符的对照表了
0 V; E. ~" D0 }. c/ p- f===================字符集================
3 _, E# `  ]! U& Q1_____6EBB
8 X% \# g! }, a4 U2_____5C1F2 y& T$ y$ N* J8 E; ]
3_____4D75& U; \3 W) C9 r5 ?
4_____26CC
, b1 A5 K! M" @, a5_____4F88
& a& q6 J3 x5 p) ]3 D. f# t& M6_____3F4E& l9 M5 W5 t: K$ V7 _% K" T  F
7_____0A9D
3 W* \( \/ B5 u$ I8_____1A1C% {! q% M5 _8 E8 |3 q
9_____6D20
# p8 h9 D) o- N, c( j& J$ i0_____1089% s5 o# W3 \' m
a_____0F3E* |1 T# E% I# V) l9 @
b_____3159/ c) Q, L0 V/ y% c: C7 ~4 ~, W
c_____3517# z# e! p7 G7 h
d_____419C0 Z* `2 C, U9 W1 s; K! x
e_____615C
4 k9 d! T+ ?, Y% @/ P  D" R4 ef_____556F! j, s$ X; c1 p& k7 N( O1 F- c: t
g_____2B7F
' e2 @" A6 V/ }( P- n4 \h_____0F9C3 \  Z8 K- o- o) ]5 H: t/ w
i_____00FA
& j' L. A5 U  b! ^" @8 `j_____5A50* I" o! f4 u0 ?) U4 s3 }/ A1 S/ \/ k
k_____2850
4 |5 e0 h( m' d/ l+ _8 M, v2 Ml_____3E7B/ t4 k7 T* [; F
m_____71C5, C. [. w3 B) s& F9 @, I9 H
n_____1FC8) m. I# W6 i/ J1 V
o_____74C1
* |. M/ A% h" Y! A! s; gp_____5FB8
: ]; Z; _$ |7 v- Q$ |. hq_____6085
0 T' e% `$ _" g  ~' ?/ {r_____3AC43 q" F/ \# x6 z( J& o( F
s_____2F50
8 S: D' O6 b* O: q+ H5 vt_____36F8, I9 ?" B) M2 A% _
u_____7010) G/ B4 H% F  B/ X
v_____0B420 o2 B# f& y: H/ S# d- v
w_____1C7A
8 c. Y+ y2 `3 c0 ex_____16F8
/ z5 p% u5 n; k( P$ Q% Ay_____2EE7
+ s% Y' \6 t4 m# Iz_____5CF3
% `( w+ W, q5 ~2 E" X4 X!_____6233
( u4 Y  L' h  e9 S- x@_____3A45. X/ m  I7 O0 B0 S4 I
#_____22912 v6 \7 a: u8 w1 H
$_____5D5C
4 D, M  w+ q. M& h0 w+ Q- }7 Y: U%_____09B9! |& J0 x# R/ e2 X3 Y" N  T
^_____43EA% ^2 d; d% l; W* j7 Z- t' Q/ H2 b% w
&_____62B97 q5 y" W+ O1 ~  X# y( X6 B( u
*_____6301
% n5 J% @& _& E0 @: s(_____4659
- l3 c' ~0 N3 y" W. G)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表