返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: \" Q  N0 w  K  t; K- L原始出处:http://www.3ast.com.cm" Q# R" N8 }" X; a4 O  r

$ `: p/ `2 V1 N+ `. H8 |$ R看不懂的直接绕过5 a' w, I1 J* }; N; t6 D  I
加密前为:hwy123456
6 W: o; h$ m% M1 p加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E  m9 R' o2 A/ s0 M. @! I
4 P" j1 R0 D: U9 ~2 T
============================================, f1 S8 i& j+ D( O) c
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 y5 M  `9 S! @: s' v  D( d6 n也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
% D( U6 f. q+ L3 s( Q4 f8 q以下是RSA算法文件! `) t% J# ], |4 ^$ [
: q3 ^# V5 Q7 G: o7 M  Z
文件名RSA.ASP
" ?5 U4 ~! z6 N# a===============================================
" M/ t2 e( H) }$ R<%
& K2 C5 G) {) N' Z7 C% EClass clsRSA 8 I" `: h! ^- N1 V1 a
Public PrivateKey ' E1 D) L2 a- l5 t- m
Public PublicKey
. J1 H+ j/ |" o9 u0 v6 CPublic Modulus
9 _$ g  o& o/ A. B' y1 j. ]Public Function Crypt(pLngMessage, pLngKey)
/ O. T; q) s& h) S$ t; JOn Error Resume Next 1 h2 l. Y  \4 F0 a1 t+ x, M
Dim lLngMod ; z! P( w, k( K) L1 \8 {/ a
Dim lLngResult
# _5 s3 s. X. p) n/ @. iDim lLngIndex
8 {0 d. Y0 }  z- yIf pLngKey Mod 2 = 0 Then 4 F# K5 l* {% C$ b
lLngResult = 1
, O6 F) O# j5 F* Z$ L6 e9 _( d5 NFor lLngIndex = 1 To pLngKey / 2 1 t6 T. m4 ^) T- o9 _6 {( k' ^  J
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ U: R: J" B+ j. E: x4 L  [  }' Mod may error on key generation
! a1 L0 P# B- n* q" U8 t7 llLngResult = (lLngMod * lLngResult) Mod Modulus
! i7 D0 c7 ?" S' v" lIf Err Then Exit Function * a0 Z$ L  _7 h* }$ l  Q
Next 3 X6 g6 B9 B, T' ~) ^% m9 \
Else
7 R7 G6 O# o) k3 M2 L5 GlLngResult = pLngMessage - H# q+ ?+ e' a" O* A& g0 ?
For lLngIndex = 1 To pLngKey / 2 2 D7 {! y: G5 e: B' b  E4 C
lLngMod = (pLngMessage ^ 2) Mod Modulus
) e' H/ l, y& s" z( tOn Error Resume Next . n; {! F8 u  R+ n& U% B
' Mod may error on key generation 8 @! t1 B/ c9 k" {( [
lLngResult = (lLngMod * lLngResult) Mod Modulus : R1 R1 h! `& G" i5 V7 H. x
If Err Then Exit Function % W0 o, r9 @0 ~; |, F# D
Next ; x$ L( U9 H: n8 l3 T0 ]1 n
End If 2 T: C1 `- p9 J7 r( i  P
Crypt = lLngResult 4 @2 q& S/ |7 O* b' P: c# i0 Q
End Function
& r, d6 J7 |' ~" Y' |+ E& u* n0 S
3 w4 ?, O/ w% P# tPublic Function Encode(ByVal pStrMessage) + f* ~& s) M2 h* d. F: P0 R
Dim lLngIndex
6 T6 a- _' o: [, sDim lLngMaxIndex 4 {, r7 u8 i% j- s/ U
Dim lBytAscii 0 y9 `- w( l# w8 w  R
Dim lLngEncrypted
5 j" |3 ^; a' q8 a/ |lLngMaxIndex = Len(pStrMessage)
( Z% c- r* k$ P3 j! N+ i! O9 BIf lLngMaxIndex = 0 Then Exit Function : b  t) B, Q1 ~9 s: o
For lLngIndex = 1 To lLngMaxIndex
5 V: N- D5 w' v' p8 O. NlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 H8 I: k* o) G& nlLngEncrypted = Crypt(lBytAscii, PublicKey)
; S/ y9 d8 e3 s; y9 l' d) j0 hEncode = Encode & NumberToHex(lLngEncrypted, 4) ! e3 ^- W  ]. f9 L+ Y7 u
Next
) ?3 s' O. H; |* h( K7 @( N7 |* ~1 hEnd Function 4 F7 i2 K9 e3 Q
Public Function Decode(ByVal pStrMessage)
0 c9 A; [8 L5 e& E' M6 uDim lBytAscii
1 N% R& Z! Q7 X* t7 tDim lLngIndex
5 a  _# z( I- L  cDim lLngMaxIndex
& U. C7 I+ h! b* n% R: j$ tDim lLngEncryptedData
& {6 E+ x: q. q; n* F, EDecode = "" 2 g4 N8 m- \2 i9 n/ [8 V
lLngMaxIndex = Len(pStrMessage) + E% F, e9 W& w" D' {4 |. ]  a
For lLngIndex = 1 To lLngMaxIndex Step 4 7 F3 O- a; s* y! h5 w
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
5 Q% Z" Q+ K, z4 G0 Y$ N0 ylBytAscii = Crypt(lLngEncryptedData, PrivateKey)
7 ^: R4 r+ E' A8 ?& ]5 |, rDecode = Decode & Chr(lBytAscii) . k% A4 T- K/ M/ Y) x' `4 L
Next
- N- ], _. m/ ~& X% P7 mEnd Function ( K0 }( y9 f& `5 J
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
' Z/ D+ O9 V. E* J; v! c) l# qNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ( |, P: h* x) n( ^$ y# ]" [& E& p
End Function + C* r( X8 C4 ]2 U, L( f
Private Function HexToNumber(ByRef pStrHex) & V8 `, M3 c, K+ L' D; k2 N
HexToNumber = CLng("&h" & pStrHex)
8 S* m$ l" q8 H& o% y1 Q. ZEnd Function
) U5 J1 b4 u8 u5 V4 GEnd Class / Z( j& C9 s5 ?% T# d7 X: X
function Encryptstr(Message)
4 H- C' F9 E$ n% u8 e3 kDim LngKeyE
7 q+ o" {& w/ z$ K  D  ^. E3 NDim LngKeyD 1 H5 E4 U1 y- c" Y' ~1 ~
Dim LngKeyN 4 ?- J1 v* r9 B- B# Y
Dim StrMessage
; u8 X9 L# y  l2 A% `, R* jDim ObjRSA
* Y! \1 o( N; E3 xLngKeyE = "32823" 6 N( b% o* f& m) L5 |& G
LngKeyD = "20643"
; p4 m! e. C8 ^4 E) PLngKeyN = "29893" , {' S( v$ t3 p- t- V
StrMessage = Message 3 N7 m: Y2 l. I6 m- A7 ~' z
Set ObjRSA = New clsRSA 4 L$ Q+ D  w/ ]* U$ s8 q. f5 w* ~" |
ObjRSA.PublicKey = LngKeyE 1 T; G+ I# N1 s  I1 ^4 s7 B
ObjRSA.Modulus = LngKeyN
+ n' E% @1 _9 t/ N8 o# x' mEncryptstr = ObjRSA.Encode(StrMessage) / d' n' R6 k. W; R4 A
Set ObjRSA = Nothing 5 `6 H4 ]3 O6 x; g2 K( G! V
end function  O4 @8 H4 H( j; X, q( Y
Function Decryptstr(Message) 3 @6 ~( s# Q8 E" a
Dim LngKeyE
# C& a  L3 p0 [/ P" eDim LngKeyD
/ G7 `$ k" a  ]9 C0 }Dim LngKeyN 7 @' d. I( p+ H$ c1 v# t
Dim StrMessage
& H- a0 ?! Z- R0 d! ZDim ObjRSA
: T) L6 s9 o9 V. [& WLngKeyE = "32823"
  s9 P* X) d! O- aLngKeyD = "20643" - {( r( @4 `8 A. Y7 K7 O
LngKeyN = "29893" 9 ^+ |1 |& Z1 T. _& U( D; V
StrMessage = Message # u- g9 s' J& R" Z
Set ObjRSA = New clsRSA
* o8 D3 R1 R8 i" A! d: H8 C, IObjRSA.PrivateKey =LngKeyD & y: h9 W. a; x8 U
ObjRSA.Modulus=LngKeyN
" f7 p6 M. {) W3 odecryptstr=ObjRSA.Decode(StrMessage) ; e2 q' Z+ u/ t3 d( u0 ~
Set ObjRSA = Nothing
  Z7 X7 b5 ?0 m' Y0 ~  @end function
" i+ g/ U# L( o/ Q8 z$ t  b9 m%>9 \' H) C$ f  v* H; H% F7 x; z7 n: L1 J! q
===============================================
, O- {9 X/ ]: }7 o- |6 r( T2 a0 p* K" v& D! n( J, r% C, e- q: K+ k6 B
还有一个用于测试这段代码的test.asp
: \3 H  X) q! t: y有兴趣的自己搭建个IIS测试下
% e+ C  F+ j, T  F  l<!--#INCLUDE FILE="RSA.asp"-->
( s/ r* j1 u" x# w, p+ _& s1 X- W<%' L" ~2 }) z8 l& j: c* \
function Encryptstr(Message) ' b& n7 b9 S5 n9 \/ @5 o/ B
Dim LngKeyE
1 y* l" g; C4 NDim LngKeyD ' k" \7 r/ A& _+ J
Dim LngKeyN
0 q; V# H; c: A- `! I: @: lDim StrMessage
! i' c7 q  A: x" k3 LDim ObjRSA
# ]# R, _/ S+ x+ O) b0 JLngKeyE = "32823" " o- m  \  f' f' d, V% h+ k
LngKeyD = "20643"
3 `/ R1 _$ \1 P2 vLngKeyN = "29893"
" W  M3 v( J2 k' Z) CStrMessage = Message . p' B: e" V' Q9 {2 z' ?& s# U
Set ObjRSA = New clsRSA
9 q0 B! _( ?2 Q5 _ObjRSA.PublicKey = LngKeyE
7 P+ p* |8 N& p: j' m- |: CObjRSA.Modulus = LngKeyN   ^+ g8 m7 `) w3 s' R7 T* @6 K4 v
Encryptstr = ObjRSA.Encode(StrMessage) ( i# ?2 E- G" e. k. G
Set ObjRSA = Nothing 5 _9 @9 `! U4 m  y5 R
end function % P8 \. D: m+ g1 o- d0 ^+ m: A& T
function decryptstr(Message)
+ m5 @# Z; l8 w( R/ cDim LngKeyE
1 D( A& H4 `1 u1 \* xDim LngKeyD ' _! u2 r0 Q- `0 p* r3 `' S
Dim LngKeyN 0 g- c9 [2 o$ W
Dim StrMessage : y2 s9 H- E% l9 d5 i/ @$ \3 n
Dim ObjRSA 2 P) z, [# r; V% B9 |8 ?, A$ w( t
LngKeyE = "32823" 5 j9 S( w* O8 v, m5 g. W( n4 g
LngKeyD = "20643" ) y, n1 O$ g- D* @* V
LngKeyN = "29893" , ]- @7 u- c# r9 w
StrMessage = Message ( S7 c. l; d; l. D) U$ @3 U( K5 i
Set ObjRSA = New clsRSA
6 X; X& H4 [! u) T2 E# j) G3 `7 k3 IObjRSA.PrivateKey =LngKeyD 4 @8 x1 R3 W/ _' p5 {5 @
ObjRSA.Modulus=LngKeyN ! r8 R/ }. s( |4 B3 y
decryptstr=ObjRSA.Decode(StrMessage) 3 K2 ^/ ~- a4 \; h4 P; U" K
Set ObjRSA = Nothing # F5 g- |+ J3 U% s: h% u
end function
0 ]6 C3 |  x, J* }- v* R, t9 ~3 o9 Gdim last,first
7 q' m- c7 w4 {5 F: `( k) ~" Afirst="!@#$%^&*()"
, W* C( X8 R$ i: {Response.Write "加密前为:"&first
9 D4 \5 `9 Q' g9 X& Y& s7 l. a% T8 ^last=Encryptstr(first) ! _- g  L/ S, o2 Y3 e' L
Response.Write "加密后为"&last
$ C  i7 l7 s  g8 kResponse.Write "解密后为" &decryptstr(last) $ Z+ Y9 Z3 c. w
%> ==============================================  F/ h7 M. o5 y" k
剩下的就是字符的对照表了
& F- Q9 _3 [1 ^' t===================字符集================' @% @0 h! `8 g! ~3 j( G
1_____6EBB
1 M, c  k; s5 x  S. J$ w9 m2_____5C1F0 k% A8 Q2 n/ ^4 e0 M
3_____4D75
, @' e, x6 M. b- m) P4_____26CC2 d6 {- c- u1 x& C* a% _
5_____4F88
7 A1 |: b2 X$ M7 z$ S  f; E# P* g: N6_____3F4E" A( y5 u* _4 E- v
7_____0A9D
" P0 F% A# t6 T# y; t% n. s8_____1A1C9 P1 e6 @  G$ Y0 M5 W% G* S4 y
9_____6D209 i0 M, g0 P7 K" F% m; L$ p
0_____1089: O- n" g! h8 [7 }" B- _% I# V
a_____0F3E
1 p+ ~9 B6 k2 }/ m4 Z; H: h6 Sb_____3159
2 t8 S. f  q1 y' \1 d6 X4 O6 Ec_____3517
$ W" ~4 A- z+ X+ V$ L) ed_____419C1 ~# K3 x5 X7 S5 O) x. N, l) q  M
e_____615C
! G7 G! ~+ O0 v# u, M+ A0 z+ _f_____556F
* m! b6 n5 j/ i% d' Q: G5 |8 Vg_____2B7F
# l& @# s+ `1 C+ @! U7 _, ]( _: d3 Th_____0F9C5 p, X+ C5 Y7 a* |5 x4 ]
i_____00FA
1 O8 }5 v1 l; M) ^- B, Mj_____5A503 o( e$ v% F6 G% c6 i0 y  K
k_____2850$ J* M6 _0 ]( N# B4 l
l_____3E7B7 h+ T, Q& |' O% Z
m_____71C5
1 p% M4 N* ^, K# h( {n_____1FC8+ I7 P8 f& d8 m* i8 u+ s  u1 E
o_____74C1
+ a% \6 K" d) e/ G) ^8 U% Z9 F8 c6 Tp_____5FB8
$ P* h6 s+ O% p( P1 |q_____6085
# h" J/ M! K: s. @% L$ tr_____3AC4
6 p. G. B* P0 }( \& Ts_____2F50
$ m% G6 r9 M. ^3 q% ht_____36F87 w1 R- [& R. y' \& e: u
u_____7010
+ R; [+ ]: e3 `v_____0B42: r3 E) I" ~; Z' u0 W* y
w_____1C7A  z+ J- y% E6 ]
x_____16F8: g, c1 L7 {& K) V
y_____2EE7
; F! q/ o7 f1 R0 cz_____5CF36 l# K) @# k' b% W6 C
!_____62332 d& d/ [5 F" `, z
@_____3A45
3 v) y- v+ t& N, }5 A#_____2291
0 F0 ^  c& P+ w% s7 ]! c$_____5D5C
1 P- c, I, m1 j. f7 F%_____09B9  r7 F1 y8 e7 d- e% o- R  y
^_____43EA
$ t6 @! Z" G+ @: L9 w1 L  @) a&_____62B94 f# \# D9 e& M7 b
*_____6301
6 a9 K: G! p. H+ _% P0 T3 \- z(_____46594 |% I' A4 n: V/ y: ~3 _( t
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表