返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm4 G5 j2 q. c* a, G* ]2 e' G5 O
原始出处:http://www.3ast.com.cm5 k) v1 M6 u1 V" |& K
# a' J* `6 n6 M& \6 n& |  i
看不懂的直接绕过
) Y- a' u0 U. W; g7 A9 ~6 m加密前为:hwy1234566 V! F$ ]* V, M+ D
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E6 K' d% ?0 Z8 g6 T( H3 {
5 ~5 J2 |5 M) L" i# T3 q
============================================
$ L: p8 e: U3 m1 m上面是当时自己校内的心情。现在已经解破出来了,分享给大家2 P) p7 G% ^: v2 k/ @
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
- ]0 z1 C; L9 G# J# @+ P3 a2 O3 K' n以下是RSA算法文件) C$ U& w! r' R9 {+ Z9 C6 t
: C; {3 t4 L6 R# q
文件名RSA.ASP
. r6 M! c6 _4 |' W/ R- s. n===============================================* T, h4 d9 {" T, a
<%
8 x6 y. t/ R; xClass clsRSA * Z/ v$ b% {! i8 I) ?& i, c5 {& L
Public PrivateKey $ g; G% S/ Z* ~& G& ~
Public PublicKey $ n, q7 R8 l6 f$ ?5 q- Q: z' }; @- o
Public Modulus
. ?+ e5 t2 D; b+ F7 kPublic Function Crypt(pLngMessage, pLngKey) ; ?2 W! N- r# F/ L2 E: k& t9 H
On Error Resume Next 8 I% P9 F) C% @8 k% Q3 ~( I
Dim lLngMod
: \4 H+ J7 |2 r. j3 g; jDim lLngResult
' a! k- @8 x1 u) yDim lLngIndex
, t" j/ {: `" H& c& j4 M  OIf pLngKey Mod 2 = 0 Then
  f7 `0 J* M. [, |8 L. JlLngResult = 1
9 B/ S. ?! U3 F9 K" o+ u, V) m# T; \For lLngIndex = 1 To pLngKey / 2 4 f- \1 m% K2 k
lLngMod = (pLngMessage ^ 2) Mod Modulus
+ [+ w7 o1 P! o9 o0 _' Mod may error on key generation 9 a. n- {0 K& ^# M  s9 X% d  m( a" X
lLngResult = (lLngMod * lLngResult) Mod Modulus   g) g+ g, s& J4 G* {: I) s
If Err Then Exit Function
/ L/ }0 [5 H. H8 m, n& M0 uNext
# i) e; X& l) R; AElse 0 A1 v3 x3 D  l
lLngResult = pLngMessage " ~; e  Z0 o7 a+ `7 `+ L
For lLngIndex = 1 To pLngKey / 2 - x8 h- N* t7 D- Z3 Z- w* S
lLngMod = (pLngMessage ^ 2) Mod Modulus
, O8 n3 m8 b6 i; `- WOn Error Resume Next ' z3 ^$ R; M2 X  b% i: h) E
' Mod may error on key generation : @7 p) b+ l; n2 g! u
lLngResult = (lLngMod * lLngResult) Mod Modulus
: j5 L! z( m6 x9 ZIf Err Then Exit Function 0 c2 V8 @" @, G( X
Next $ c2 K2 I1 u# L$ R" S" x6 [* o
End If
" P8 N0 y+ N: x! \* S( l# |Crypt = lLngResult / d5 D( Y/ w7 u# I, |! Z8 s
End Function2 y' @9 y1 b/ f
& f5 R1 B! {6 A- z. N
Public Function Encode(ByVal pStrMessage)
5 n9 W4 I. o0 g/ |9 @Dim lLngIndex
3 Z1 Q& J" m, Z- x1 wDim lLngMaxIndex ' o9 Q  b/ i# ], X/ l
Dim lBytAscii 0 w3 a* r" K" o; B" L# B* r
Dim lLngEncrypted 9 M. j( v8 l. ~
lLngMaxIndex = Len(pStrMessage) % @: B* J' @( H* q* F, b- w) x7 P
If lLngMaxIndex = 0 Then Exit Function
1 k) |7 {1 d# i& P8 c3 EFor lLngIndex = 1 To lLngMaxIndex , _0 q$ K) t) L+ t
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
0 {2 e) w$ j# k* |3 K  @lLngEncrypted = Crypt(lBytAscii, PublicKey) 5 \) ?% h" Z! ]- S7 ]
Encode = Encode & NumberToHex(lLngEncrypted, 4) 0 F8 i6 L+ o& `* b8 {
Next
+ w1 ~3 H3 d2 o* Q0 OEnd Function
) W/ @! U& W6 a! e4 n6 YPublic Function Decode(ByVal pStrMessage) ( L% H7 |: Q: @9 r3 J
Dim lBytAscii + y3 N! e& F# r5 V+ U5 o
Dim lLngIndex
% h5 D0 i, w7 z+ _7 y) J; JDim lLngMaxIndex % K- J0 a# Z! x: A
Dim lLngEncryptedData
4 P5 o" d0 Y3 Q) r$ R' nDecode = ""
5 }1 N! V, z1 m) a* z( O# slLngMaxIndex = Len(pStrMessage) + u; U! z; c* ~, @: o) V
For lLngIndex = 1 To lLngMaxIndex Step 4 " y' x2 @) n- j7 ~
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 r+ A& D2 F% S0 t7 K8 zlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 t- t; x9 E8 L6 i+ P
Decode = Decode & Chr(lBytAscii) ! z# C" _& Z' @/ H& E8 }; p
Next
0 G3 G. ?0 k% X4 a! [End Function
  T$ y0 ^  F. _& QPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
$ c. Z/ a, o. VNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 i) w- v' b, ~' S$ x/ s
End Function
% P: O, }5 l0 T# dPrivate Function HexToNumber(ByRef pStrHex) / A* w0 a4 j4 O* w8 |0 t
HexToNumber = CLng("&h" & pStrHex) : c/ t$ C: k( _& {% s# o; p
End Function ! v: I2 D- v4 g2 {  `
End Class
* b( `: J9 I/ U1 gfunction Encryptstr(Message) 3 @' Y1 U0 I  j; L' r
Dim LngKeyE . D; j2 s0 m3 y  n3 ~# E
Dim LngKeyD
0 Q2 `6 k9 ]( n# |- L# C" MDim LngKeyN # |9 L  Q7 ]5 @- K' X5 B
Dim StrMessage 2 J, B2 K& c& D  c, ]
Dim ObjRSA
& `( f3 o7 ]( N- ^$ O5 xLngKeyE = "32823"
  l/ D* s# V7 Z8 G3 TLngKeyD = "20643" 8 V5 e" p; u3 A( ]/ h. V
LngKeyN = "29893" ' F  \5 D- T: D# a5 v: @
StrMessage = Message 9 R- K# A9 k  |. X
Set ObjRSA = New clsRSA : z0 K/ P7 R4 l: B& L) O) D
ObjRSA.PublicKey = LngKeyE
$ {" w2 y( h& Z" CObjRSA.Modulus = LngKeyN   X2 J$ ?) W* P0 ?# P
Encryptstr = ObjRSA.Encode(StrMessage) . c8 S, K& K7 q
Set ObjRSA = Nothing
3 O9 v. U( _+ E( Aend function
: m& D  V. Q' e  B! W& @Function Decryptstr(Message) & R' H1 f, I4 P) d2 z" d. Q
Dim LngKeyE
. Z% A* U. W1 s: wDim LngKeyD
& d9 c6 n) U. ~3 D" ?, p% t& y3 @4 qDim LngKeyN 4 e: }; j% A4 C) y0 g- l
Dim StrMessage + G8 S# ]2 [/ o% ~  ^, X7 ~' o
Dim ObjRSA
+ L9 X1 ]1 P( V1 q5 D) z- S5 Y9 f8 YLngKeyE = "32823"
2 ^+ }3 S+ C2 ^; s( `LngKeyD = "20643" , Y8 |1 w: u; z) _  L+ }: k3 m
LngKeyN = "29893" % Y$ I" V# Z% D5 ^: x7 ^  N: J
StrMessage = Message
' a3 s# X. S: O: y; V7 ]Set ObjRSA = New clsRSA
3 f$ J" ]; b' y8 r; k5 C. fObjRSA.PrivateKey =LngKeyD
/ Y" T: n4 S: P- c8 A2 _ObjRSA.Modulus=LngKeyN
4 n+ \4 f# m4 _$ n0 vdecryptstr=ObjRSA.Decode(StrMessage) 9 B" p; o1 _% L9 n
Set ObjRSA = Nothing ) Y9 E* D3 f$ h4 K8 I# Z
end function
" I- i+ {9 r3 l1 I. U%>
8 i3 B+ z. {" m8 g7 L6 m+ f===============================================
9 x' T6 m2 f# ~3 t$ z$ r7 ~1 E7 s2 a9 W: O) I8 l7 L( x9 L
还有一个用于测试这段代码的test.asp
  I! q, ~& V/ ]7 r) c有兴趣的自己搭建个IIS测试下
8 B4 g% d% O: Z4 z<!--#INCLUDE FILE="RSA.asp"--> 8 E- q6 Q, Z/ _: m2 f* j1 T  A! ^
<%1 s0 E& v+ b# v; i" F
function Encryptstr(Message) ( K- d' e/ U& S5 l. ]. U3 C' U
Dim LngKeyE - Q$ n3 Q/ K( M2 N. `# h0 ^
Dim LngKeyD ; R) G5 G1 S2 c! J5 [
Dim LngKeyN # _4 J+ @1 L( u" a9 ~
Dim StrMessage
/ `: E& N/ u, F6 d6 S  i0 KDim ObjRSA
; c$ h4 z6 E  F2 W$ a6 t8 V+ PLngKeyE = "32823"
  C% ]! J2 C# M! y& [+ tLngKeyD = "20643"
  R2 z& e1 G% h( ~LngKeyN = "29893"   S/ F2 A5 U3 z0 p: R+ h5 S! ?! H
StrMessage = Message
1 ]7 s+ v4 ^" R% f; x: \Set ObjRSA = New clsRSA 9 X. i9 p- `) Q9 V  \: D
ObjRSA.PublicKey = LngKeyE
% ]* t3 ~! m6 O) S; vObjRSA.Modulus = LngKeyN
( Y' }% a0 a3 t# g2 S: {Encryptstr = ObjRSA.Encode(StrMessage)
8 ]# S1 w7 f. iSet ObjRSA = Nothing 8 U# u  H" C6 q7 N6 ?+ ~2 a# p
end function & G- E( i6 h& B$ ?- l9 `- _
function decryptstr(Message) $ f- g' M6 i2 I6 v) g) N' _) Q3 H
Dim LngKeyE
2 ~5 K7 q6 F6 s1 w; BDim LngKeyD , X2 ~1 n+ |5 g6 N- N: l# w: c9 u0 J
Dim LngKeyN / I9 y+ L  B! ~5 I; Q$ Y. g
Dim StrMessage * H  _2 U( A; U3 e
Dim ObjRSA 5 q# m+ A1 n& Q; g5 a, ~# t# l
LngKeyE = "32823"   X. t. k; s' e6 ?; ]5 b
LngKeyD = "20643"
  w, A0 B: ]) u2 p3 I' E9 ~LngKeyN = "29893" / {; [# m% C, m4 @7 Y4 P
StrMessage = Message - ~) N8 a% G. X+ O
Set ObjRSA = New clsRSA
+ }! Q& A% S3 R4 R4 T+ O! ~5 n( cObjRSA.PrivateKey =LngKeyD - ~: @9 U  |  H* ]. \% t+ a% X4 W
ObjRSA.Modulus=LngKeyN 0 @4 Q7 I% C% N0 Y1 m
decryptstr=ObjRSA.Decode(StrMessage) # C  _0 G7 m: ?* e
Set ObjRSA = Nothing
) u) @$ x1 A2 ]0 {* A0 Dend function 2 E# B# i. W* S: ]1 n) Q
dim last,first
% ^* d$ M( r4 S. N2 C8 v+ }3 h7 ?& Vfirst="!@#$%^&*()" 6 _0 [. H8 Y) y: \$ l7 j" T
Response.Write "加密前为:"&first
9 H9 q/ r1 r; W, `9 s/ `last=Encryptstr(first)   f" o9 }, C# P( |$ l
Response.Write "加密后为"&last ) C; t7 ~+ b; Z
Response.Write "解密后为" &decryptstr(last)
6 Z1 ?; J( _$ o0 h5 G& D, m! L%> ==============================================
: n6 A- y7 _( i# W8 v7 J5 T6 p剩下的就是字符的对照表了
5 n5 v4 c! }4 I$ k5 N9 C9 U% _) M===================字符集================1 b* M8 X' G' w1 [7 m0 g
1_____6EBB( _$ L- W, C  }- \3 e- T( }
2_____5C1F3 A. n7 ~& {/ k/ r. J( r7 {+ P
3_____4D752 W& C: n. ]0 W  c0 O: K
4_____26CC
/ N6 Q" q; }3 B# L7 Q. S5_____4F88
# h9 K7 L8 t# j5 J% O* {* t2 {. r6_____3F4E5 h: _1 O8 j4 A: c+ c; E' }
7_____0A9D* i) S% T# |. ^9 O! ^
8_____1A1C! u/ C, _7 t3 a9 j
9_____6D20. P# ~5 i# [2 }' Y" Z, ~8 F
0_____1089  [* `8 z) N' U* c3 B
a_____0F3E0 [3 H" J9 p, W/ N+ I% P( i6 C; \
b_____3159
5 Q: c$ s. ~2 Q' _0 fc_____35178 w" c8 [  q7 L' o9 W( l
d_____419C
' R9 s1 i( h. a7 xe_____615C
$ Q' X9 d# U! V. n6 ^% uf_____556F
' i; O* F- U2 e  {0 Rg_____2B7F& W6 D: B" y: D7 }/ _* h4 w
h_____0F9C
. n' E- _. d( \7 A! j9 x6 Di_____00FA, R# |# b' F- f
j_____5A50& ?3 j- n7 A  v
k_____28508 ]6 H9 w2 A& M. O2 R; \) k
l_____3E7B- e0 X. j" x1 C3 d6 j8 L3 d
m_____71C5- Z* k- y) W5 t' s6 p1 t  ?
n_____1FC8; i9 y" j$ V$ h7 H7 ?* D
o_____74C1
8 v' N7 J7 ^2 R8 _7 [0 Wp_____5FB8
6 f; ]: s; i6 m3 r, p" ]q_____60855 O+ K* m( W& }8 F' P, f7 b
r_____3AC4
- d9 h  W; [5 c/ y9 l. Ns_____2F50
2 n' P: }9 J2 \t_____36F85 Q' A# y9 I5 j. D( b
u_____7010" I& E& ?) _! v2 o* {" o4 m
v_____0B42
& w+ ^5 @! r$ w; B; Qw_____1C7A
; d5 [. X3 ?7 q3 mx_____16F8
* U7 n; G( X! V% U: k0 A+ L" Zy_____2EE79 m9 k, e5 B, _) r, O: V
z_____5CF3
8 \- E! M2 r9 A8 J!_____62332 f& f" r5 ^0 m1 H0 E' J
@_____3A458 \3 b# w9 F. H# j  E
#_____2291
7 |3 e/ ^. P  z: m/ S7 A; F$_____5D5C/ |# w. ]1 E) X+ G4 W4 f4 r
%_____09B9$ U  D1 G0 N* q# Q" V4 h
^_____43EA
/ i2 Z! S* O* s# v! `  y3 w&_____62B9
" T3 G$ m" t$ b* h*_____6301
) F. j% k6 ]# p(_____4659% [# |' O" f3 D, ]5 F% ?
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表