返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- V% _; j7 N9 G+ z# c+ n
原始出处:http://www.3ast.com.cm0 Y+ l1 O; M8 G7 N6 M2 l

( {, F9 _% T% i' U/ z看不懂的直接绕过
8 k( L. m% {/ N1 Q4 T% Q加密前为:hwy123456
5 H; y1 e! [8 V& m1 n7 W  p4 s加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% t" M# s, F: j5 X; X5 n- B0 z# z, J
============================================
3 n' |# t# S+ v1 P7 ]上面是当时自己校内的心情。现在已经解破出来了,分享给大家! _, x+ A8 w8 c( c$ R( m; u% w1 v4 E
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
, b. J/ n3 ^! b以下是RSA算法文件3 r; j. U& L4 S7 H

1 C+ Y) n2 ]2 _文件名RSA.ASP- h7 B- m. ^# F; }$ j( z2 W
===============================================
) O* Y) E7 Z& y<%
1 {) r" N, V$ ]Class clsRSA
+ z" h8 r: O9 ]% O3 {, g/ ~7 n8 wPublic PrivateKey * \) a3 ^1 V/ l: q1 q' F
Public PublicKey . O  k% \1 M, D! n2 X- ^
Public Modulus
4 ?5 J# F# P& k4 g& ?' PPublic Function Crypt(pLngMessage, pLngKey) 8 A" a/ Y1 X9 d6 C# \1 T8 }9 W  f. j
On Error Resume Next
, K, f4 B' m2 K0 k6 s4 @Dim lLngMod 2 l  V- d- o' N1 v1 q! }; H& g
Dim lLngResult
' X9 M9 |0 e$ G4 JDim lLngIndex
$ I, [, D; F! B4 O8 I5 P$ R0 [If pLngKey Mod 2 = 0 Then
6 [. D- x- x3 p& Y9 olLngResult = 1 - B' R- F9 _& L4 a
For lLngIndex = 1 To pLngKey / 2 ; x) ~8 k, C* G; ]* d( @
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 D3 t  @$ G# |, s* [5 Z
' Mod may error on key generation
( u0 z" w% B' K% H$ K- i7 a2 UlLngResult = (lLngMod * lLngResult) Mod Modulus % l# M& r. O6 h6 F3 _% _$ d  B: ^
If Err Then Exit Function ! {" _$ ?& y" r+ i: t0 o. u0 l
Next 0 G9 e, K. m; x
Else
$ d( H* `3 t8 xlLngResult = pLngMessage
6 ]+ @! I9 v% _! w9 u1 ]0 fFor lLngIndex = 1 To pLngKey / 2 ( M6 x$ I8 z, N+ {& J; Z
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 T/ K. j2 o" \( ^1 `& U' A; l
On Error Resume Next 0 k7 U2 G! m5 i8 y8 q( a
' Mod may error on key generation # N! v, D2 @' i0 H
lLngResult = (lLngMod * lLngResult) Mod Modulus ' k2 ^& ^' D  i; N
If Err Then Exit Function
" ~# j" q. b4 z9 O+ {Next % _. a( t# D: v; _, j9 Q
End If - p& ^8 b" b5 I" p4 r( Y6 v
Crypt = lLngResult - f5 k7 P% F/ G0 K9 e- F
End Function8 k- @8 z& M! f( @. e! S

0 K* x- j2 f% l7 XPublic Function Encode(ByVal pStrMessage) 5 h! W2 z9 O4 V: l8 I5 I0 ~
Dim lLngIndex
5 T8 J0 a1 {0 d; t# K8 `: e2 P9 i- s( @Dim lLngMaxIndex
8 B1 f! I' b! K* @Dim lBytAscii # z! K+ s  J$ V% h3 H
Dim lLngEncrypted
/ B/ a9 v+ P) @# L! F( f  d2 @lLngMaxIndex = Len(pStrMessage) ' ]1 S% @7 t& y4 ~/ I
If lLngMaxIndex = 0 Then Exit Function
$ ~6 j7 [# O5 V5 H3 Z9 Y( uFor lLngIndex = 1 To lLngMaxIndex
( r7 z4 W6 J7 T7 ^# TlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
2 d3 R) J! f' y  n& RlLngEncrypted = Crypt(lBytAscii, PublicKey)   U) P. f6 N4 _( ]2 n7 e
Encode = Encode & NumberToHex(lLngEncrypted, 4)
: O- L6 K4 s, Z  m, R! C4 W1 ANext
4 x) ]+ M8 Q. R+ F, t2 b/ i" bEnd Function ) X; ?" M( p# k/ {0 ?6 z; e; P
Public Function Decode(ByVal pStrMessage) ( m8 A% q* y1 J( k  _2 d! u4 U
Dim lBytAscii
8 C1 O1 F3 G2 J" l; v2 SDim lLngIndex
% F0 K! F. O. @+ a2 [7 k  {Dim lLngMaxIndex
# @: i4 n  L; `7 L1 R* A, }, MDim lLngEncryptedData 7 O( b' N1 ~9 m2 U8 o4 I! z0 x5 t
Decode = ""
& \% a& h4 J: Q) _; }0 |" ~lLngMaxIndex = Len(pStrMessage)
$ }7 J9 E2 k, h- Q" S/ ]) n& H, qFor lLngIndex = 1 To lLngMaxIndex Step 4
3 Q) S2 m& A7 z6 k3 ^lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- Y) H' f& }2 \- e9 s2 UlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
3 t3 Z9 z  }! s# ?Decode = Decode & Chr(lBytAscii) 0 y. y9 T& h( ^& }; E2 j
Next - ~& m/ Z5 k! d/ V8 K
End Function . j2 N- n$ ?5 Y! @+ u) `
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) - g5 m; U& A8 a+ S
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 6 ~2 P6 O1 s% Y7 V" I! n9 _; a* V
End Function % @* o, w/ P, F7 l, J4 z" j
Private Function HexToNumber(ByRef pStrHex)
0 [1 v& [  T9 x) I( |2 \HexToNumber = CLng("&h" & pStrHex) % T, e8 A7 B) H' K# v
End Function % g* s" y6 g2 w$ ~$ A+ C
End Class
6 s; A' }; g" ~( t4 ifunction Encryptstr(Message) 4 C) p% p+ s4 T2 y5 F1 a. \8 o
Dim LngKeyE & Y- F6 W! z" B7 P& b! b
Dim LngKeyD ( L0 n* N4 d: Y% @4 p! K, M
Dim LngKeyN
6 v* j; J: m+ l6 zDim StrMessage
& W( c; s4 G3 P* f6 G0 ?8 h$ n2 XDim ObjRSA 9 O6 A% D; N1 k+ [3 \
LngKeyE = "32823"
! \: F) B% a5 F  L# lLngKeyD = "20643"
  y- _8 K( G' X( h( A; P" P) uLngKeyN = "29893"
8 F. s7 m4 A' a, Z' r) LStrMessage = Message
% f* m7 u/ Q# L, c$ X: LSet ObjRSA = New clsRSA
) y# ~( L; M4 {ObjRSA.PublicKey = LngKeyE
# G+ e! ?6 I/ n/ |1 {ObjRSA.Modulus = LngKeyN
: a3 q' Q) a8 {+ kEncryptstr = ObjRSA.Encode(StrMessage) ; d9 E3 _0 q( A3 B; l5 |$ g3 w
Set ObjRSA = Nothing
) @5 w3 p% }) \. t9 s1 W) Xend function) ^7 a( ^9 _: M& ?2 F
Function Decryptstr(Message)
: v+ P8 m! z1 a4 m- c' w* vDim LngKeyE ) f  n! ~: C1 [* C
Dim LngKeyD
* a5 k( s) |9 F8 p. w: H" `Dim LngKeyN
" }  E+ v6 \# ?; @' c0 |% g% IDim StrMessage . }7 s' Z; u  w
Dim ObjRSA
, F8 n! n  Z7 S: K( f. \LngKeyE = "32823"
6 n3 H- u/ D$ hLngKeyD = "20643"
1 m; {' ^/ d# }$ n4 D& QLngKeyN = "29893" % R7 l- v1 q' f1 ^# y: K6 u
StrMessage = Message
/ Q( N9 J/ x& [& f# XSet ObjRSA = New clsRSA
* W' m' d" h& f2 ]) e1 H) K7 h7 VObjRSA.PrivateKey =LngKeyD : @. |! B, @4 L
ObjRSA.Modulus=LngKeyN / C! _( p" r3 n* C
decryptstr=ObjRSA.Decode(StrMessage)
4 c. _  T( J8 U& k: e; g2 E- CSet ObjRSA = Nothing
, `0 O& e( }+ ]$ D; hend function " Q5 ~# r8 d5 |% _+ V$ `
%>8 ~0 ?# X: A9 n+ ^! t
===============================================
1 K$ z# c2 N  D: f/ G6 L: b* Y2 p6 r+ f; S& w& M, X
还有一个用于测试这段代码的test.asp2 b: g7 B  i: k2 }
有兴趣的自己搭建个IIS测试下7 z+ e' j& I+ t1 _
<!--#INCLUDE FILE="RSA.asp"--> - z# v6 l6 e+ r9 `* R* W
<%: U& L4 h' z4 I& n4 p7 x
function Encryptstr(Message)
/ h1 E, D, M" p: S7 d3 m) G3 JDim LngKeyE . L. P1 _* x- ^. l
Dim LngKeyD
4 M2 L1 I, U0 a, pDim LngKeyN / }+ T; G- W7 g6 L( _0 _
Dim StrMessage # Z" @: k7 }$ |7 ]
Dim ObjRSA : N( E/ u0 W# j
LngKeyE = "32823"
% S- G+ F& q; x" a2 F) qLngKeyD = "20643"
) q& x# |/ K9 T( MLngKeyN = "29893"
3 U: r4 q/ D1 c  z& ~StrMessage = Message ! o, Q9 G6 ]; p; T3 v
Set ObjRSA = New clsRSA
; c0 j- Q" X. B1 LObjRSA.PublicKey = LngKeyE
7 e" D4 P7 E- W( j, Y! ]ObjRSA.Modulus = LngKeyN
6 `2 U6 O( M) Z- [Encryptstr = ObjRSA.Encode(StrMessage) ) y& v) Z, D$ v2 Q7 N
Set ObjRSA = Nothing " Y3 E' }: u  Z5 [1 F
end function
3 ~- Y/ c" k8 Wfunction decryptstr(Message) , X1 C% J) G2 F* h: \9 b
Dim LngKeyE " A& e, _2 r' w/ y/ M
Dim LngKeyD
9 o+ P* T8 v2 ]8 r; |" bDim LngKeyN
. k) e# V7 l( j) v0 d0 t% R; O% EDim StrMessage
9 W9 \/ j9 w. jDim ObjRSA
6 P) Q+ Q* j8 u9 E5 `LngKeyE = "32823" 0 O- k$ C& A: y% n6 r/ g
LngKeyD = "20643"
4 P2 w4 X- u; i$ U: MLngKeyN = "29893" ; Y. |5 U9 F$ E, }! J4 ]! w
StrMessage = Message ; Y9 e2 [" M6 w1 \! s+ e0 S! |
Set ObjRSA = New clsRSA 4 q9 `- @% |$ V- p6 ^) L
ObjRSA.PrivateKey =LngKeyD 8 R" l; D/ H7 ?5 p8 f# f
ObjRSA.Modulus=LngKeyN
0 L# @% r2 X' Tdecryptstr=ObjRSA.Decode(StrMessage)
( D7 b$ C2 d1 S& YSet ObjRSA = Nothing
5 c5 C0 b$ C2 Qend function
9 A* ~# e" x2 k" F& s- f0 S) cdim last,first % Z1 R+ F$ Y, h; s# M  B' g
first="!@#$%^&*()"
! f# {2 |( B8 Q4 w0 AResponse.Write "加密前为:"&first
( K, |' L; g0 J& Glast=Encryptstr(first)
1 x) A* J0 \3 j& D) ?Response.Write "加密后为"&last # E0 u' S7 ^4 ~+ y. K% e* m
Response.Write "解密后为" &decryptstr(last)
7 s' C& V: m3 U# {; d: Z0 u%> ==============================================! L3 Z5 H. i0 K; |: g/ K
剩下的就是字符的对照表了
, l  z# i& h7 ^- Q% b" M===================字符集================2 N* x, P$ ~& J2 Z
1_____6EBB% y5 T2 J" E3 w; `  I; v- ?
2_____5C1F
; ]5 M8 q4 u+ O/ @, v5 x& O3_____4D75" b2 Z' [& F) F( N
4_____26CC
5 d8 t0 h" H: P4 C- L5_____4F88" b& H/ ?4 Q3 N- e8 D: ^, X$ I
6_____3F4E, O" G) i* `. [) p0 y7 i$ X+ A( d
7_____0A9D& S0 d$ J0 s8 B, @
8_____1A1C
; K- d3 \9 E# R1 ]4 \& ~% Z9_____6D203 t, z6 \% i3 Y% u* w
0_____1089! P; E$ ~2 I# E+ q, k7 w
a_____0F3E
, H' U2 g5 i* P# o( v1 d3 l2 i/ Jb_____3159
7 `- K  R, I3 S* J- D. w$ R" \8 p6 H, Uc_____3517
* l4 G5 m/ e3 p$ Z+ f' {4 wd_____419C
& ]& w3 }$ b2 D% ?# [/ je_____615C9 H" P9 D& \# I  h% k, u) P
f_____556F
' S) I- X5 V& Z. u9 L$ vg_____2B7F
& C4 g6 Q6 a- D3 p, Mh_____0F9C
/ j$ w/ C1 ^: ii_____00FA
" ^8 V6 A. ~& U) n: r' n. A) xj_____5A50
- E7 R( R8 v1 }3 }" `; gk_____28507 |; D: y! J- ]5 z! M5 _
l_____3E7B' A$ p- b0 u0 I1 f* K, j" r
m_____71C5
% E* r: S9 m7 X% C$ j. |9 |6 _$ [n_____1FC85 G6 j' F; c" \1 H% @$ B
o_____74C1
: A7 o+ i0 \+ S3 s- r  {5 i( @p_____5FB8
* J' L7 y" p/ tq_____6085+ J4 h3 d- p  R) D) q4 s1 I
r_____3AC4
1 b6 E- g" I* k% R2 Y- I9 w' @s_____2F50# I& I1 ?2 B- T
t_____36F8
- S  N. j$ B8 f  A+ `. Mu_____70102 a5 u; Y' Q8 r: {) e
v_____0B42
& w+ P& H* d# G, r. o1 uw_____1C7A  K9 Y, ?0 B- V2 @8 {  J
x_____16F8  F7 R7 |, [! r; ]- F. ?2 L
y_____2EE7- Y- U2 c# Z: M3 F5 V; W
z_____5CF3! D9 r; _; ~1 ]8 e- h) P- g
!_____6233
" h( L9 s/ L  h3 v' f3 _+ t@_____3A454 b& [. w4 r+ `( L
#_____22912 ]4 Z( T" g6 n" L, v9 `, q4 m
$_____5D5C5 l" e& c: J& e
%_____09B9
$ r  y7 a4 G# C$ m^_____43EA
; V5 p& V" E; R# ]. J% s&_____62B9
9 Z( Y% e1 k3 U* g! M* {*_____6301
7 [# o2 R0 h3 y$ O(_____4659! B( z, ?6 o4 _4 }, k5 H5 V  L
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表