返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm2 e- F5 h" }7 a! n  }" C* m) G
原始出处:http://www.3ast.com.cm1 H& V$ j* Q) @0 M6 {$ o
: z2 m1 P4 f% i: G- r; m. O
看不懂的直接绕过- Q2 C8 J6 t+ j, J, g
加密前为:hwy123456
6 u$ X. W! y  t加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
/ P& Y3 Z. n: s% E) X& I
  N% L9 t& [5 _/ k) _# q============================================
0 s4 ^% M# Y/ i1 d上面是当时自己校内的心情。现在已经解破出来了,分享给大家
/ g5 W, n* W: s也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法" q$ W+ |$ l# Z
以下是RSA算法文件
0 Q; C, l9 {# r! w  _) j
: V6 Q) c: D) E$ I+ n7 n* A7 }& ~文件名RSA.ASP
* n- a0 n4 x% }9 g) Y3 ^* Z9 m===============================================7 P, n) I/ }" x. u0 v. Z6 ], ]3 `, d
<% , ]$ S7 `1 O! X. y5 I; y7 ]. G6 z
Class clsRSA * E5 S- x" M, h
Public PrivateKey
' e1 @  v& D- k! L0 FPublic PublicKey
  n$ v! C  u. ?4 l3 ]# VPublic Modulus # P' v8 {/ f( J+ A8 Z
Public Function Crypt(pLngMessage, pLngKey) ( v2 m/ e/ W/ k2 k
On Error Resume Next . V' `, M3 @$ j  j0 ]$ u9 _
Dim lLngMod ) V+ x: o" d5 @5 E6 O, d; ]9 u, @5 N
Dim lLngResult ) v& H! B+ o6 e- W  ?
Dim lLngIndex
" G8 i3 K. J, L- Q  e) VIf pLngKey Mod 2 = 0 Then
2 L& ?  \$ R; }lLngResult = 1 5 p6 Q& \' N) q( ^
For lLngIndex = 1 To pLngKey / 2
+ P+ ]2 c* u. |1 V* _0 [8 ElLngMod = (pLngMessage ^ 2) Mod Modulus
9 x$ u4 j, [& r' Mod may error on key generation
0 l- K- ^! b% d* ~lLngResult = (lLngMod * lLngResult) Mod Modulus
7 f9 `, F8 x) r, {, c, aIf Err Then Exit Function ; t0 T9 X, Z/ v
Next # _7 d& M$ I' l0 K* C
Else $ C6 }% |/ U( k* u3 N8 m: o& x' [
lLngResult = pLngMessage
& g  v, y9 U* \. DFor lLngIndex = 1 To pLngKey / 2 7 ?5 k: Z" m' v; N2 s; T
lLngMod = (pLngMessage ^ 2) Mod Modulus 4 L2 Y# |( V. X3 e+ c, E
On Error Resume Next
2 l/ k9 K/ f% m  I6 ~* ?+ t3 k' Mod may error on key generation
+ X! r" p+ j# ^" {. LlLngResult = (lLngMod * lLngResult) Mod Modulus
6 e/ o$ r6 u) {' ?) T& h/ dIf Err Then Exit Function
2 L2 N. ]' C6 s) N. PNext ' T" R* ^2 p: `1 |7 c
End If
& h7 L2 ^& q2 \Crypt = lLngResult
7 M8 m8 u1 i/ w  E6 R) ?3 YEnd Function4 \. B8 l: {0 S/ s$ _

) T1 S/ x0 c( i2 I! FPublic Function Encode(ByVal pStrMessage) # n6 R+ H# x/ N3 L/ v
Dim lLngIndex
8 p0 X5 `8 h* n( [# b3 yDim lLngMaxIndex
6 ^4 N3 B+ W5 _* W, i( s! hDim lBytAscii . z; E% N4 x+ s: p$ U
Dim lLngEncrypted ( ?" W2 Y" f3 A0 H9 m8 ^
lLngMaxIndex = Len(pStrMessage)
3 K' w# @  J" o. |If lLngMaxIndex = 0 Then Exit Function
" t: [) J5 z! B/ u' F+ fFor lLngIndex = 1 To lLngMaxIndex
  X% _0 [* c  W- X* a6 v, HlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
3 g. I+ E) @# {0 v+ q/ QlLngEncrypted = Crypt(lBytAscii, PublicKey)
0 {* N+ q+ M2 t6 B' C( G% ]0 B; pEncode = Encode & NumberToHex(lLngEncrypted, 4) 4 F$ u( O3 ?% y( J- f
Next - ]" D* {, }0 F
End Function : V5 X, {/ |% o% g' s4 F
Public Function Decode(ByVal pStrMessage)
& l; f  h3 w5 v- a/ M7 u9 F* a# I. Y0 KDim lBytAscii
$ O9 X, n# X, y5 x; GDim lLngIndex
8 G6 K6 H9 [) rDim lLngMaxIndex
: q9 }7 a/ g& z8 Q8 {Dim lLngEncryptedData
" h! Y  |& r9 a' vDecode = "" 5 J: F9 @# U/ ^' X  D1 w+ M& C
lLngMaxIndex = Len(pStrMessage) 4 K4 W# U% A, C" W! Q" M* W5 }. u$ V
For lLngIndex = 1 To lLngMaxIndex Step 4
7 S  e7 `1 i, ?8 U* t# t: wlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
  ^% `8 I# k! O# n% ?lBytAscii = Crypt(lLngEncryptedData, PrivateKey) . o5 Y4 [+ c, O- S
Decode = Decode & Chr(lBytAscii) ( J9 M0 d1 f/ [% [1 E1 n
Next + H' K; X  l6 `- X5 h
End Function 1 a) D7 t/ e3 e$ ~' [
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 2 [2 w4 |, q4 ~
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
7 g2 A) L1 t8 _5 d, ^) c9 mEnd Function
+ x1 `! O0 J2 d  ]Private Function HexToNumber(ByRef pStrHex)
. X& C5 S* |( q. t: d- s8 KHexToNumber = CLng("&h" & pStrHex)
/ u+ w$ g' V. uEnd Function
$ _% q8 }( c6 B) c4 L( r/ ?End Class - A9 w% H( I! m# l& r# Q9 k
function Encryptstr(Message)
4 S: }/ N& ^4 t# A# rDim LngKeyE " B4 m8 d, B/ \/ m
Dim LngKeyD
/ x5 u& N7 J: y2 }# Z3 l2 XDim LngKeyN
6 h; F% ?2 c, O+ ?, T$ _; tDim StrMessage ) J0 n9 T( P1 K; E
Dim ObjRSA 3 Q- @3 }" C1 f; ]; N/ K
LngKeyE = "32823"
8 j* S( k5 C! m- R, YLngKeyD = "20643" % G5 L% f/ L5 ?% p) U# H
LngKeyN = "29893" ' X5 V0 H# W! }' I
StrMessage = Message
' Z6 |& V7 |( D% P) `Set ObjRSA = New clsRSA " p1 v9 u8 R/ ]+ a
ObjRSA.PublicKey = LngKeyE 8 r5 @% j+ u. r
ObjRSA.Modulus = LngKeyN 6 b( l# Q! c  Q( t( ]& {
Encryptstr = ObjRSA.Encode(StrMessage) 1 W# u) f1 s' @) j3 Y, b' Q
Set ObjRSA = Nothing
* i" E) [* G/ O% `: xend function1 g) L; O2 Q: ~5 D( b9 F
Function Decryptstr(Message)
% ^. B0 D. o2 [1 {7 n! J0 Z& o5 @Dim LngKeyE
- H# ~' H7 \( d0 s8 kDim LngKeyD 2 ~' d. c! a" |
Dim LngKeyN
2 u& ^+ k4 W; d6 z5 kDim StrMessage
7 r$ W, c# Y9 DDim ObjRSA
8 B% L( q( U6 Y! ^LngKeyE = "32823"
$ D$ E9 x+ Y3 |  O$ bLngKeyD = "20643"
' ~' l- G, Y5 S) \3 ~$ `+ I. lLngKeyN = "29893"
$ [; }6 C7 Q5 S5 Y! H9 A8 |( ZStrMessage = Message 3 L: ^& F, i' \0 H4 T: O; q* ?: ]
Set ObjRSA = New clsRSA 6 q) ]' F, ^8 g& @
ObjRSA.PrivateKey =LngKeyD
7 U9 ]: J- E; l) M4 J) }/ P& M) i1 `  F4 YObjRSA.Modulus=LngKeyN   e. d; q+ ~) h# y& a* Q4 E
decryptstr=ObjRSA.Decode(StrMessage)
2 J+ [# l& P8 v# n* F  |Set ObjRSA = Nothing
# U8 b# a, v  I" K( n) uend function # t0 P, H( X$ F! C* ]! `
%># i2 B' A9 ]* a2 y; |
===============================================4 m- Q4 p2 B6 J0 s

" z& V/ u4 C+ z+ [还有一个用于测试这段代码的test.asp
+ x4 a# T% y: Z4 x+ m9 J  ^* z( {有兴趣的自己搭建个IIS测试下! B* P9 g8 N. D( d. E8 j; D# P
<!--#INCLUDE FILE="RSA.asp"-->
3 B+ ]0 N- y' {<%
/ Z' {$ W. T) P3 J' M1 n6 i; Hfunction Encryptstr(Message)
* ]0 S5 N$ ~; ~& i. s0 oDim LngKeyE ) w  j& e. y4 A, g. L, P6 x
Dim LngKeyD 7 V) q9 c" k' `
Dim LngKeyN & }5 t. p! o. ]2 m3 G9 O( ]
Dim StrMessage , ~" q/ \* N- q: i4 h6 [1 _2 q
Dim ObjRSA
& s) i( P' H0 \- a9 cLngKeyE = "32823"
/ O$ N& J6 Q+ \4 `' ~1 O8 s! @LngKeyD = "20643" ) U8 W* _3 S! {  L- a
LngKeyN = "29893" " o: E) K2 a: Z. z; E& {2 `1 G6 @
StrMessage = Message
2 I& s* W/ `* E# t  ?3 E/ E( OSet ObjRSA = New clsRSA / h/ A0 }/ d2 a/ J- u, Y
ObjRSA.PublicKey = LngKeyE
! O$ G; i+ B, y3 sObjRSA.Modulus = LngKeyN
( s* k5 s1 I( Y3 `$ ~: |$ oEncryptstr = ObjRSA.Encode(StrMessage)
7 N6 e( ^+ c" {$ x9 Q$ p! j0 s7 c9 ]% ASet ObjRSA = Nothing - t% J3 M+ `7 E5 \3 B" e4 h
end function
- }5 D. K% N$ ^: W! V& ~function decryptstr(Message) + S6 E0 p7 {* C* K2 ]
Dim LngKeyE 8 @6 N: d; S% W( ^/ b+ {
Dim LngKeyD % ]6 a+ n% \% R6 K
Dim LngKeyN
+ ?& U, Z# n) Z/ D# \; `; L( ]7 ZDim StrMessage 4 w+ Q! ], E9 C( S5 N$ j' D
Dim ObjRSA
5 q0 Y1 b% G8 H: E3 S1 OLngKeyE = "32823" : {( R2 H8 s, Z% `
LngKeyD = "20643" 0 w) E( P: ~/ G
LngKeyN = "29893" & |4 j& f7 u$ b* y8 E, @% ?
StrMessage = Message
" e/ g" b& w' p+ {0 u0 ~4 rSet ObjRSA = New clsRSA ' C9 Y  s% H' v. x
ObjRSA.PrivateKey =LngKeyD
' x4 \% [* P' T3 r$ d3 z" }) Y8 X& e/ R( OObjRSA.Modulus=LngKeyN + e' `" w* K9 l' {
decryptstr=ObjRSA.Decode(StrMessage) : l! \& T8 M, C. z
Set ObjRSA = Nothing
5 g! O2 H0 `2 ^end function $ @6 a8 H. k$ o7 ~
dim last,first
5 ~7 M" n$ z, {3 @$ `first="!@#$%^&*()"
. d; o7 g& s3 t3 r4 }: P# g; PResponse.Write "加密前为:"&first $ H' T1 A* a( ^# X
last=Encryptstr(first) , X4 j1 c& K# ?5 F+ r8 `
Response.Write "加密后为"&last
6 a7 W2 J% f) O- r7 aResponse.Write "解密后为" &decryptstr(last) " B9 M" ?- Q! [( O
%> ==============================================& k$ \' K- ~' ]) o" ?
剩下的就是字符的对照表了/ O# G" _" a6 C
===================字符集================
- P9 y4 |' K9 k( `7 I8 D  p% L1_____6EBB+ r! S0 M5 _  W5 n
2_____5C1F/ A" S! K2 P" e$ c' B) u# r
3_____4D75, x+ y6 p0 [8 B+ ?/ o: X. ]
4_____26CC
! v) {7 d% t" q6 h7 J4 ~5 K5_____4F88
' z) ~. E; V+ }8 f6_____3F4E
  m9 i8 s& _2 Q' M+ Y$ h3 c5 T7_____0A9D
) r$ G* [3 C' G& q2 Y) Y: `. l2 d8_____1A1C
9 b" L8 r% I8 |7 {; f, ~7 ~; X, q9_____6D20
: Z# g' d2 ]) @6 t- H0_____1089
2 }* E! k2 ?0 O3 f# b" v( Ea_____0F3E- S- H, o& n6 k
b_____3159
& ^7 L5 i" I. \8 k5 ]c_____3517
) e" T5 c2 _- j# X$ ]4 rd_____419C& z& m/ c; F9 i2 D3 {& c6 D
e_____615C
. ]& B# s3 C; {. ^0 w' _f_____556F& O1 C7 [0 S! Y; v% u
g_____2B7F
  v! Z! ]2 @+ X1 f" W* U5 Oh_____0F9C0 U& K/ p8 F4 ~5 t2 F& P) k/ V
i_____00FA( A1 C# L  I3 a, j; J" b
j_____5A50
) c/ [: g# a' [k_____2850
. w: _- Z* X% z5 u1 ^l_____3E7B
! O# l2 g* L5 S0 Bm_____71C5" C( O7 q+ A2 k$ d6 `
n_____1FC8& G5 C- M  E6 o" q4 @5 t( V
o_____74C14 s  }2 d: `7 {1 \
p_____5FB87 e& _6 y7 p0 q- O3 U
q_____60858 Y" Z( Q" O" Y: P3 i' \# m7 v
r_____3AC4) P; S8 r$ [% Q( j( ?: U
s_____2F50
; o. N3 N# W) e6 f0 ?8 Xt_____36F8
  S. T! N7 F6 C/ z' Uu_____7010
  I7 t, t8 z$ `9 Fv_____0B42
5 A8 l/ [- q9 d% H6 Z) qw_____1C7A/ Z9 Z' l9 p' l' y8 `8 E
x_____16F8
' I' M3 O& E' t$ P0 ~* Ey_____2EE7
3 X" [/ H) b* \7 o1 ~+ H0 {z_____5CF3/ E4 Y& a4 v" O1 _& W; s0 x, P3 D7 T
!_____62339 f, V7 @, ?, L! e! K
@_____3A45
$ V0 U7 J; J8 S; \6 u#_____2291
' l8 z* @8 e% Q2 W5 i' ]- U9 Q$_____5D5C
# L6 n" _& G6 o" b%_____09B9& y% [/ T' O$ D% }5 m# p# U
^_____43EA
4 i- I. V. c/ G$ p; A  W&_____62B99 c. F6 Y* M% C9 x; X9 n. w
*_____63013 e% O% \4 D4 w
(_____4659
5 f* X0 X8 Y7 y0 M' [)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表