返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm/ x7 A$ ~/ N! w6 d& ~
原始出处:http://www.3ast.com.cm/ ?) K5 q3 w* H
: \; z/ x5 ~8 Y" ~
看不懂的直接绕过
+ \7 i' X& v" d0 ]- w4 Q8 k- n加密前为:hwy123456/ P3 Y5 J% u1 A/ Q+ G
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E  i% f9 m- v' X. s% o5 T6 G
2 ?6 w  `* i: n- Q# F# C
============================================
1 f& a5 {& J- `0 w2 N上面是当时自己校内的心情。现在已经解破出来了,分享给大家! i7 }& t' k' R; Q% w: F6 k/ b
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法( p; \" v' H0 z; `2 F/ L  ^% \' r
以下是RSA算法文件
% T. p( c* \4 ]6 Y! ]0 c# q0 R0 Q, N" e' I9 i
文件名RSA.ASP  f& H' x: R, ?9 v7 l: m) ^
===============================================
5 T# Q- R, `8 v4 _3 [8 z  ~" H<%
  E, u% d4 A4 U* T2 kClass clsRSA
) T( V/ C4 d1 APublic PrivateKey 2 Z- [, f. t. z3 W! H' }$ q
Public PublicKey 1 q6 g6 ^* n! v- ]7 m3 L  u) F
Public Modulus + K9 D0 P  ?/ G' p" Z6 s" E7 V
Public Function Crypt(pLngMessage, pLngKey)
5 L. [  Q" e3 H0 h8 V7 X3 J2 ZOn Error Resume Next , Z: Z' q7 T& ^0 Y% m/ S8 N
Dim lLngMod
! S( ?; H" }0 q- v/ q1 eDim lLngResult
: P* l7 s8 S; @Dim lLngIndex + V. W  r9 C% @2 e' w
If pLngKey Mod 2 = 0 Then ! H6 D- o5 G3 m* J3 S
lLngResult = 1 9 D5 d4 C% }# S- n
For lLngIndex = 1 To pLngKey / 2 9 s' w8 V4 B2 X. l
lLngMod = (pLngMessage ^ 2) Mod Modulus ) m; M4 }. p' n( I, k
' Mod may error on key generation
7 @2 ^* r2 f/ D% Y3 Q6 ^lLngResult = (lLngMod * lLngResult) Mod Modulus % F/ ]+ ?5 \, Y
If Err Then Exit Function - o5 x5 N( i3 E
Next ' p( u8 c+ y$ O$ D# C3 q' Q
Else 9 |; T: H0 {8 M/ A# p" F
lLngResult = pLngMessage
( S; ~, z6 e( u3 nFor lLngIndex = 1 To pLngKey / 2 2 k, Z7 n9 l$ S( Y" D  D! N
lLngMod = (pLngMessage ^ 2) Mod Modulus / B2 M! o# h1 v
On Error Resume Next
# j: M) ?. w+ K% o' Mod may error on key generation
' m: z3 l2 G" d& l3 b0 L" ]lLngResult = (lLngMod * lLngResult) Mod Modulus
# O  v% a0 y+ O' H/ xIf Err Then Exit Function / p/ u0 y0 ^1 C6 J, O& p
Next
6 ]1 i1 r. _0 u# ZEnd If : V) ]1 W" k, ]4 F3 G
Crypt = lLngResult
) K) Z, q- _0 c2 ^End Function
$ G( m0 U$ b  t( V6 [. C3 l9 i
2 [# U# _4 j. F6 r$ U# Q9 l% sPublic Function Encode(ByVal pStrMessage) ; S) \- B$ O/ A- E- ~
Dim lLngIndex
: @- `9 z7 z5 C7 L1 T; FDim lLngMaxIndex
) z( |9 x5 o, a$ O$ @; [3 y+ W  }: QDim lBytAscii 6 Q$ O) \9 {. L2 _% a& T! Z
Dim lLngEncrypted
/ q$ y' V$ X- h* Y, n" i# o( ~lLngMaxIndex = Len(pStrMessage)
: Y7 i! D3 B4 y9 V! v3 ]5 ]3 JIf lLngMaxIndex = 0 Then Exit Function 6 Q: U& i! I9 ^% }9 T; Z& [* I
For lLngIndex = 1 To lLngMaxIndex
1 R8 C0 t+ J0 wlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 u5 ]- Y+ X6 K% l3 ~lLngEncrypted = Crypt(lBytAscii, PublicKey) 6 N( r; @0 U4 L8 {
Encode = Encode & NumberToHex(lLngEncrypted, 4)
+ X, K( q( {; x! O4 z; FNext ( r7 X, f/ c& m; y) W5 T
End Function : {+ B- }+ d) @! [
Public Function Decode(ByVal pStrMessage)
+ c/ i1 ]3 M9 N5 \0 hDim lBytAscii 4 f3 i9 A$ P- ^1 J4 R
Dim lLngIndex 8 c' k& t9 l/ I% D
Dim lLngMaxIndex
! E  B/ h; U4 M5 S( E3 `Dim lLngEncryptedData
6 F; m  v( _1 X: y9 WDecode = ""
0 ]+ E" w4 N; M8 \1 \lLngMaxIndex = Len(pStrMessage)
. K* G) @! U' A% p( r& RFor lLngIndex = 1 To lLngMaxIndex Step 4
7 }4 D; t7 y) z7 Z! G5 qlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
% Y  b6 t& R  b/ \, |lBytAscii = Crypt(lLngEncryptedData, PrivateKey) % \7 P. F3 H7 [1 |4 u$ x
Decode = Decode & Chr(lBytAscii)
6 Y# b8 A2 i/ K, I/ w; MNext 7 m: f4 V+ w( j
End Function
4 u" W# T* A- q/ t% j$ p, RPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 W, b* Y. \9 S/ F
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) , e' u' V' Q' Y9 S; O3 V8 v& A- F3 e
End Function
! b/ C" K  A. h- d" bPrivate Function HexToNumber(ByRef pStrHex)
9 v$ b# N4 \5 D+ U, }4 ]# A5 CHexToNumber = CLng("&h" & pStrHex) # i! I/ M$ }4 e$ }4 n  G4 A
End Function + W- g* ?/ t; U4 a* w7 n; _, G
End Class
5 q1 f( x+ w, xfunction Encryptstr(Message)
# t7 O4 A3 ~9 Y, v! E4 DDim LngKeyE + W. I' f4 ^& _9 y" N
Dim LngKeyD 1 s" K0 m# ]+ @
Dim LngKeyN $ s$ O: |, u" C: m- ?# W
Dim StrMessage
- G$ C  T9 b# u; vDim ObjRSA 1 y  y) v) `1 H7 D' H
LngKeyE = "32823"
  r: }: L, U  }" vLngKeyD = "20643"
: [/ R% D7 i4 C) O% s4 B3 CLngKeyN = "29893"
$ T, O+ y, W0 t$ m  T' ~& ^StrMessage = Message
  \* N5 c! v# O' ISet ObjRSA = New clsRSA
, r  W& m& s* @0 XObjRSA.PublicKey = LngKeyE
# }; }2 i0 B! r% k7 ~  B6 a' OObjRSA.Modulus = LngKeyN ) ~7 v( C  @; _
Encryptstr = ObjRSA.Encode(StrMessage) # [* v( \5 R) D
Set ObjRSA = Nothing 7 M& {, d: Z1 k1 y9 i9 I
end function
& W0 t  w3 V8 OFunction Decryptstr(Message)
/ ^& H) o2 ^$ u0 h: fDim LngKeyE
8 _  ?8 Y) e' b, ~Dim LngKeyD ( R3 O5 n/ e# H: D, E
Dim LngKeyN + ?/ j0 w% {" R( V
Dim StrMessage
" y5 [1 z8 F% J+ lDim ObjRSA
; W6 H. D9 c/ H6 yLngKeyE = "32823" 5 v8 I; m8 v$ b; Z- `4 \) Y3 i
LngKeyD = "20643" 3 g6 b+ _: \* H! C
LngKeyN = "29893" * R/ l+ y9 ]) ?" j% J. l
StrMessage = Message ( w# y, a, q2 ]0 F9 c( X1 i
Set ObjRSA = New clsRSA
* A9 _! h! k) G7 w, o# W0 uObjRSA.PrivateKey =LngKeyD
4 S3 N. ~3 p- _( i# {& A( a+ RObjRSA.Modulus=LngKeyN
2 F6 h$ ^; c; Q7 M1 S' w7 ?decryptstr=ObjRSA.Decode(StrMessage) ( f) D7 s: ?; b
Set ObjRSA = Nothing
! g: k0 k/ g6 Nend function
$ S; p2 Y" t7 T%>
/ ~, i$ k' X# I: C/ g7 l===============================================$ C; P$ [" r$ Q& |8 O# B4 |. ]# F
0 ]0 O5 y' e: b- e4 @
还有一个用于测试这段代码的test.asp1 Q2 E! Y- S* F0 u& v' ?+ r
有兴趣的自己搭建个IIS测试下0 F+ ~$ H: K/ N; W
<!--#INCLUDE FILE="RSA.asp"-->
6 ^( K( z6 w& r$ z! b<%* K; U9 |8 [2 ~' b- n. f2 x0 H
function Encryptstr(Message) + R" z$ l& B9 u: C
Dim LngKeyE 3 a" D+ `- w8 L9 u$ F& I8 Z
Dim LngKeyD
/ K7 o0 c: N) u- b9 n) v: a* sDim LngKeyN
/ y# u" s$ W, N- H# \Dim StrMessage # m2 Q9 r+ b* H* ]: _3 y0 H& R0 f8 }
Dim ObjRSA : s' Z6 b+ \% g1 T- \( j6 e
LngKeyE = "32823"
  s/ X+ I& u  h6 v. x  JLngKeyD = "20643" 2 j  P2 F9 Q$ z; w2 m( n
LngKeyN = "29893" % u) v0 z4 P3 u0 }
StrMessage = Message
2 M8 P8 r$ O4 v* {Set ObjRSA = New clsRSA $ R0 A3 M2 ?& d9 f
ObjRSA.PublicKey = LngKeyE
5 g% F3 P3 ~# H& j6 {ObjRSA.Modulus = LngKeyN ; a7 P( O6 e- q/ Q* b) [2 _
Encryptstr = ObjRSA.Encode(StrMessage) * _8 Y' F1 o+ }( Y& K5 r" s5 W
Set ObjRSA = Nothing
6 m2 J7 N+ n! ^1 F' gend function , }6 y2 ~+ ~7 K# v
function decryptstr(Message)
$ g3 y& @! ~7 e3 j+ o% p! ODim LngKeyE , S  O2 _" C$ L4 I
Dim LngKeyD
, i# y$ S" A4 _+ Q( l) u! B3 NDim LngKeyN
2 O- m) d' R& W2 m' qDim StrMessage
3 l/ d( A# m$ U+ m' n3 i$ u/ k6 zDim ObjRSA & x, N% C+ e4 S0 X/ ]
LngKeyE = "32823"
' u0 i6 R' k" P1 RLngKeyD = "20643"
! u( v3 w3 K9 n4 R$ z' G1 o8 s- tLngKeyN = "29893" 2 M/ t! S- J" y- J4 }, `1 ]" ^9 b
StrMessage = Message
# k  u. d" H" P# L9 qSet ObjRSA = New clsRSA
. y3 l6 i3 e. r) H2 AObjRSA.PrivateKey =LngKeyD 1 `# n- R8 g( O) G- U  P
ObjRSA.Modulus=LngKeyN
& }6 D, n, C6 x  H9 _3 ^2 Y8 Gdecryptstr=ObjRSA.Decode(StrMessage)   o" c2 j3 d1 m7 G- y5 v0 V
Set ObjRSA = Nothing - i. y$ e; R" C, u) i
end function 3 B; m- {0 N- d
dim last,first 4 q+ V+ R5 y- n, u, a; {
first="!@#$%^&*()" : {$ g- z- h! I: R
Response.Write "加密前为:"&first . B  t( y+ i: a7 W4 t
last=Encryptstr(first) $ F4 o- T; l+ E) M& t+ m" e
Response.Write "加密后为"&last 1 l; X/ S4 H5 {% U% R+ @
Response.Write "解密后为" &decryptstr(last) 3 d: M# ^, `+ |
%> ==============================================+ Y6 x; E. x+ i1 h
剩下的就是字符的对照表了
% K: y: G0 |4 v8 S3 r===================字符集================9 L( q6 k/ b- j5 M
1_____6EBB
6 m- y$ W# b+ ~& E5 B6 i2_____5C1F
! T# @7 z- _. T6 @; O3_____4D75$ e+ F: l3 `' U' S
4_____26CC
! V& C4 }+ T( g6 I- y' P4 D5_____4F88! \$ n* s0 ~' a/ |8 ^. }% @, l1 K
6_____3F4E
1 L1 `5 w. Q+ }/ e6 A6 f7_____0A9D
! }3 l. x% W! s* ?5 f$ e. [8_____1A1C
7 b; G$ g2 ?/ W1 a; j8 R9_____6D20! w" O3 C& |" h/ A' v* N
0_____1089+ t" u7 k5 `, k8 `+ X  n
a_____0F3E
! a( _# w% `& T* D8 l  Zb_____31598 m$ M" R$ A% o  w
c_____3517. i  r/ Z8 H: u" g
d_____419C
7 _8 z, T! T" [e_____615C9 f/ P3 W4 d1 t  E
f_____556F
. s% }  G& y) yg_____2B7F7 W. d9 S- Q- r  n( j
h_____0F9C$ G: ~6 T- ?* u# c! Z
i_____00FA1 }5 v7 ?, c$ i7 r0 n1 A5 j$ J1 o
j_____5A50  a6 i/ B4 z' ]
k_____2850* H% p9 l9 U/ J3 n3 O
l_____3E7B4 M; |, \0 h; q
m_____71C5; h- Z; M/ |8 H; K+ v
n_____1FC8
3 w/ }# t3 S# }# [& D- B( w4 h1 Go_____74C1
0 k" S* y! \) Z. c6 ?, \p_____5FB8$ b; Q& F  q1 x3 T$ x0 M
q_____6085
  D! i/ v  e& d" er_____3AC47 }) }8 b' y. b
s_____2F50
) ^5 `6 b1 V' L5 ]8 E0 v; Nt_____36F83 [# ?1 j% p3 K& T8 P
u_____7010& R7 I( z$ x2 J' p; ^& T
v_____0B420 t7 c  Z; D6 }) G, W1 m
w_____1C7A
' K. y9 s: k, I& l/ T" |. g: Vx_____16F8; k9 A3 O) {$ D1 y1 U$ l" h
y_____2EE7
* p9 z2 E( p: y: W. o0 i) R! gz_____5CF3
' R% `! E/ b! u( f& K5 y; h!_____6233: a7 a& B9 `- `7 |" l  l/ }& ^
@_____3A45
1 k9 @; A) V; P: ^. }#_____2291
- s0 p2 J6 R( M. {$_____5D5C) w3 n* l7 f* b: W2 S( m8 [% |
%_____09B9' ?" w5 X& D' U8 a
^_____43EA: o  Z) F- _9 U2 s" a
&_____62B9
+ x/ X+ H, {9 Y4 m! x% b4 ^*_____63015 u1 @5 n2 o# H  q7 p
(_____4659& H* E5 H0 O6 c" B" F) r! j
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表