返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- B3 `1 q- D  f5 s* `4 G
原始出处:http://www.3ast.com.cm
! J; u, U8 k+ Z! k3 j! n1 l2 X1 k7 H. f/ k4 O( H: j" D2 p
看不懂的直接绕过
3 ~. G, a4 G% P+ {加密前为:hwy123456
/ ~; \) S# {; E9 ^6 ?; d7 W加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
1 g! b2 \1 l3 I. {- Z" h8 y# k# G
============================================
) q/ y, C, _% |  A* d3 O上面是当时自己校内的心情。现在已经解破出来了,分享给大家; H3 K/ S, [( @- E
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
2 i- k4 ^/ U3 Q以下是RSA算法文件
- @  \2 g& W6 B8 \* l& m5 X4 ?* k" u1 ^) r! n: ]; O7 H9 r
文件名RSA.ASP; b1 P; E; J/ L! V& l! V
===============================================3 b7 E. Z& [, u! O+ G: v; ~
<%
( r  H8 g6 i/ @& `, j/ HClass clsRSA
! P' k8 j5 d3 h2 p! h; [& gPublic PrivateKey
; Z3 @7 O( O0 mPublic PublicKey - \. V$ l5 M' b& \
Public Modulus
  {* i- H9 {. ?' m) p# Q- CPublic Function Crypt(pLngMessage, pLngKey)
7 K$ \- B* O$ b" R8 N1 jOn Error Resume Next
4 A9 |6 C8 {- V" A- c8 lDim lLngMod ( B1 ?- }7 c+ T) U8 U; \
Dim lLngResult
9 E7 N2 X, @; jDim lLngIndex 6 {# C& U+ ^6 ^- y! ]
If pLngKey Mod 2 = 0 Then 7 ]; G( [5 Q( ~3 ]0 b; K! s
lLngResult = 1
- o+ v9 A* J0 Z; t4 G8 `For lLngIndex = 1 To pLngKey / 2
  Y$ t8 X( n+ t6 g! u1 PlLngMod = (pLngMessage ^ 2) Mod Modulus
" t/ G" T4 D! S' Mod may error on key generation
% T6 Q+ `+ S0 X( i! V( B2 w0 YlLngResult = (lLngMod * lLngResult) Mod Modulus   t2 y' X% J( _% b- Z( }/ E
If Err Then Exit Function
/ D; f9 J& \9 D- q  W/ [Next " T7 V0 h; y$ L1 y
Else
' G8 c% h0 j7 K: R! {- L: L; Q, w8 tlLngResult = pLngMessage
1 u' U( F4 D3 Q4 h1 tFor lLngIndex = 1 To pLngKey / 2 2 m( y$ R# a# H: n( e1 G. z. f
lLngMod = (pLngMessage ^ 2) Mod Modulus
$ K* f$ a: T7 ]1 b4 JOn Error Resume Next ) n! i  F& k* ^3 I% ]- K  H( U
' Mod may error on key generation
6 C4 {5 d* d& G9 S, W- }) qlLngResult = (lLngMod * lLngResult) Mod Modulus
* }5 G! s. t0 p5 C% C; w. HIf Err Then Exit Function " u- K4 w  f* z: H- [) A" W
Next / S( r. r3 L8 c
End If ( f$ O# X( X* m1 R  B; u8 N
Crypt = lLngResult * e3 Q7 m$ l. Z* f
End Function
: E+ A  P% R, [" o( N7 i) l- e2 l
( t9 |/ z( R2 y3 TPublic Function Encode(ByVal pStrMessage)   p5 f+ i6 Q  H! u
Dim lLngIndex . S; g) O* g7 u  F
Dim lLngMaxIndex " ]$ A& ?+ Y4 h/ B8 o
Dim lBytAscii
# i! q9 E" o/ k- RDim lLngEncrypted 7 `$ ], m+ c& h4 t
lLngMaxIndex = Len(pStrMessage)
6 w" X- ?$ A( `# `If lLngMaxIndex = 0 Then Exit Function * c6 Z# u5 m, s: ?, ]
For lLngIndex = 1 To lLngMaxIndex
2 L! _& f& Y  N" J  L" H  mlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) * \9 r1 Z# f" a, ^
lLngEncrypted = Crypt(lBytAscii, PublicKey)
) E6 k$ s% H# b  [Encode = Encode & NumberToHex(lLngEncrypted, 4) 9 c  P5 t' }0 ]. }) v
Next ( g0 l) R) b( J+ z3 g8 O
End Function . u9 J) e4 b6 @
Public Function Decode(ByVal pStrMessage) 2 ?3 u' v. g% ]6 [% T
Dim lBytAscii
) C, T  r! S( X! c) h" a% ~Dim lLngIndex 1 p. Y+ ?1 Y8 S
Dim lLngMaxIndex * ~' Y( _7 v( Z9 n
Dim lLngEncryptedData
4 A4 [6 o% Q+ W1 n5 T: |- D7 \6 g& J: i- cDecode = "" , X4 u+ {" \" U4 W% w
lLngMaxIndex = Len(pStrMessage)
$ L# K" ?- g" TFor lLngIndex = 1 To lLngMaxIndex Step 4 + a; ~  f8 @+ B" G" }
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 1 V8 G+ {. i5 f  Y& _
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) . a# Z- B5 i5 D5 l" ^+ r" d
Decode = Decode & Chr(lBytAscii)
4 u6 L2 R1 ]' s" m; |Next : g' E5 n* w. W. z& P. p1 d
End Function 2 b; }" S# s  M. M1 h/ S* |$ P) k
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
' U5 T# b4 ^, w3 CNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
3 n6 K6 C7 n) O, o5 u9 J" p; cEnd Function
  w: P9 Y7 o8 o$ Y) N* g& aPrivate Function HexToNumber(ByRef pStrHex) 0 l8 C) u% ]0 T6 Q- U& E" s
HexToNumber = CLng("&h" & pStrHex)
' h& r% w" |+ _; m/ T" e% MEnd Function
, @8 T, h5 ^( b) |End Class 9 t9 t4 b4 m4 f- p9 o4 V
function Encryptstr(Message)
9 M  X6 g4 _7 f# c! tDim LngKeyE 5 B# g4 e5 r$ h' E5 _
Dim LngKeyD
9 s4 r8 b! D/ N. k6 _0 r) v8 VDim LngKeyN
. `6 `- S: C4 R7 W2 i9 D; x/ PDim StrMessage ( T& g7 _- P) U0 M) H. Z
Dim ObjRSA " Q- _: |% e( v9 c' T
LngKeyE = "32823"
! v; f( C, g( g! R/ {. E: |LngKeyD = "20643"
/ a6 F3 s0 B; s- j6 xLngKeyN = "29893"
. X# k0 F. C: s7 O) E$ {% q3 EStrMessage = Message 9 G7 O( m- y6 a. m
Set ObjRSA = New clsRSA # L+ t4 ], i; T. g8 z  K
ObjRSA.PublicKey = LngKeyE
9 @9 S) I0 c5 U& A/ CObjRSA.Modulus = LngKeyN
9 k/ P4 ^) Z) s- IEncryptstr = ObjRSA.Encode(StrMessage)
# K7 ^% p- Q9 p# h- q7 q: pSet ObjRSA = Nothing
% c% v6 q' f4 c) n) iend function
2 ?+ ?5 I3 j  m3 b9 h9 w+ [Function Decryptstr(Message)
, g0 G5 e& i- z" IDim LngKeyE
8 b9 ^+ C: d2 C" BDim LngKeyD
$ k: {- V$ S) B) u8 ^( I4 i# cDim LngKeyN
) B+ M: K3 ]1 c' V. a9 iDim StrMessage
2 X  p% ]; D' H6 IDim ObjRSA 6 {8 m. w* r7 _
LngKeyE = "32823"
' F; V0 C- k/ S" q' x- qLngKeyD = "20643" ) R4 q# Y! G4 E6 M# ]3 @) y' o5 J% q
LngKeyN = "29893" - u1 F- w# b) U) E
StrMessage = Message 5 _: I% `/ W% F
Set ObjRSA = New clsRSA 5 S. u7 h3 g  X' t
ObjRSA.PrivateKey =LngKeyD
9 q1 Z# s1 Z& X9 M9 e7 tObjRSA.Modulus=LngKeyN
$ |1 e" i& p) F/ w2 z0 J' F( ~decryptstr=ObjRSA.Decode(StrMessage) ) _( D5 R. {5 `: }" E8 _
Set ObjRSA = Nothing
0 q+ \- ~7 C! F( c7 h) T- K+ Eend function
( {- {) i7 Q0 b- r%>0 ?$ S# m$ q# `8 ~0 D" }2 ~
===============================================
+ ]6 x, P0 c& X5 L0 H& v- Z3 K. r6 w" U. ]- N* O- G: s
还有一个用于测试这段代码的test.asp3 m+ G3 Z; }; f- H8 k# k$ }
有兴趣的自己搭建个IIS测试下
0 k# m+ W; H% U& a0 G7 I7 E6 U<!--#INCLUDE FILE="RSA.asp"-->
8 s9 i/ D$ d9 ]) s* e* P  E/ [( b<%
+ h2 T5 i1 `5 K7 Z0 X* ^# Qfunction Encryptstr(Message) 0 c+ ^. y0 h* D7 S0 C( b" w6 O
Dim LngKeyE
, \3 l4 p, x- T4 D/ j3 lDim LngKeyD
! ^' C4 Q: k/ u* @8 |2 x; nDim LngKeyN 6 B. T% p& h6 [7 s1 o
Dim StrMessage 4 u7 B! P. r) ^/ v) w9 ~1 A9 Z
Dim ObjRSA
+ D4 ?  M4 i7 o6 a; x8 ILngKeyE = "32823" # M! Z/ e& Z' Z. C
LngKeyD = "20643" ' F+ F- H. g. r
LngKeyN = "29893" 7 C& i$ X  D- g1 n; y
StrMessage = Message 2 E5 d0 O0 _% F+ h
Set ObjRSA = New clsRSA & u# U% q2 N1 Y
ObjRSA.PublicKey = LngKeyE
% J, y4 d5 R! GObjRSA.Modulus = LngKeyN
8 t5 P% |# ]1 O& p& z8 sEncryptstr = ObjRSA.Encode(StrMessage)
; x# x; s( r; p0 DSet ObjRSA = Nothing
* x4 E; j0 G  a$ x" b; `/ R- Send function % t4 I$ u5 X5 j: r; q
function decryptstr(Message)
( k& a3 ?+ F# XDim LngKeyE
) L- d  e/ l. @$ k) B# wDim LngKeyD
6 r# D& a# n+ m! Q5 g! _) V/ xDim LngKeyN 5 d& q1 G4 w( g6 O
Dim StrMessage - ^1 f2 R- B3 @9 {4 u" @' l
Dim ObjRSA
7 }: [: d$ E0 }$ Z. t- gLngKeyE = "32823"
3 U4 ?$ R" p, f5 y, SLngKeyD = "20643"
# @- D. x6 h! N8 y/ JLngKeyN = "29893"
' f! H( J$ @) ^StrMessage = Message
$ X. I" @; R# n5 T7 j6 uSet ObjRSA = New clsRSA , K6 t" t+ H: }( B7 w' Z& e
ObjRSA.PrivateKey =LngKeyD
% p2 {3 k; X% O* s% ^; d0 }: yObjRSA.Modulus=LngKeyN
4 u, P0 |. a+ [+ U) h' }$ tdecryptstr=ObjRSA.Decode(StrMessage) 7 E5 R3 p% \( T7 q% f& w$ v6 [- v# \
Set ObjRSA = Nothing / M5 q/ J' f8 P7 S; V, }
end function
( k; [+ ^  U6 d6 i/ q5 A) z2 K! Sdim last,first ! U2 S: n; B* {' f
first="!@#$%^&*()" ' D% ~4 B& t. W) o" W& h
Response.Write "加密前为:"&first
: V  M5 v8 H; u/ Rlast=Encryptstr(first)
$ L3 r! ^# e4 Y8 I) [8 w1 c0 ~Response.Write "加密后为"&last - [: m* C" g7 z0 h+ r
Response.Write "解密后为" &decryptstr(last) ) Z6 R3 }8 y6 ?6 r. E3 C7 ^/ f
%> ==============================================
& d  r5 R0 p0 @1 ?' g' ?剩下的就是字符的对照表了: A7 @) g  G& ]8 E# r* z
===================字符集================8 G% i, g+ ^8 J0 d( B7 K  m
1_____6EBB9 C1 g; `; B* A2 e8 @
2_____5C1F
; D/ ]+ l5 o( a: G: v+ t+ n3_____4D75
# {: l+ W* T! t4_____26CC
4 v: d9 D% B8 a' S- K  R5_____4F88
, G1 C. ^$ l2 q2 D- i& P6_____3F4E( U+ ?" c" J4 A( o+ j* m: ~3 [+ P
7_____0A9D
2 C* W. D% h! J9 k7 U+ |8_____1A1C. N& |9 G6 f1 x# v! e/ B
9_____6D20  q' l0 h1 ^( F
0_____1089. Z6 x. |6 h; t2 O
a_____0F3E% ~% b2 G$ }0 B* y, X
b_____3159
$ i; E# ]# G+ kc_____3517
6 D  R' a# T, S- i9 @" l7 kd_____419C
# y+ ], T* N, De_____615C4 O; C0 j& v7 }% _# z- T/ n
f_____556F9 q' z6 \! \- O/ U
g_____2B7F: s2 D) O/ {# p, R1 l# y2 R
h_____0F9C) U! V) }# e. o# A( y
i_____00FA
- |' d2 |7 m4 S0 U: Q: Q. \8 S4 Xj_____5A50
9 O7 b, M* o# n* i& Zk_____2850
/ U4 R3 N2 o- Z& V8 }% xl_____3E7B) U# t7 g9 p0 q7 ^
m_____71C5- \$ O3 O1 h1 K6 e9 d
n_____1FC8
$ H. ]' R) t  S" ^/ X& s) Ho_____74C1
1 ~5 i1 Q3 L8 o& I1 a. @  Tp_____5FB8) ~* e+ m# A, K# {6 t' q
q_____60859 Q! @& G5 n( p3 E+ `
r_____3AC4
0 [( k+ f5 v7 a: r& E: fs_____2F500 D7 e7 F9 k2 o0 {9 V* w( u
t_____36F8) u, q( L: g# ?) |3 q6 e* B( q
u_____7010) O9 Q1 }6 R7 S5 L% c: C
v_____0B42# v( }! I) }: D0 B0 t
w_____1C7A
# m& z6 }9 U; M! p$ f% Nx_____16F8
3 \. A; w6 _- ]8 `y_____2EE7
; U% f' [2 p/ S$ T( x, Az_____5CF3
6 s) a. r1 \" R: d. v: V!_____6233# k  R: p. b8 ^% M4 m, d
@_____3A458 A3 n4 T8 _% P$ {
#_____2291! i  v  `7 O7 b6 [  \
$_____5D5C3 B; e$ P$ G  Y: k- H
%_____09B9
3 r  K5 e6 g8 t4 f; u$ D2 w^_____43EA8 [. O0 {5 o! `) z! |0 J- c  r6 J; Y
&_____62B9! @9 C/ c6 A/ o" {# t% t* r3 I
*_____6301
* ], v! W, G9 B3 [3 `0 V(_____4659
4 D! \( f5 H' @. })_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表