返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
4 f4 M% ^% S' }: Q9 e原始出处:http://www.3ast.com.cm
- _2 D0 Y! q: H& l( A* l$ B+ [: r0 B5 H; P
看不懂的直接绕过
1 H: Z/ u2 I+ v加密前为:hwy1234562 p6 @5 z+ E1 d! v" Y2 W, c7 u
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
- B$ P+ ]. W/ x& |2 [  K# [. k. A/ ^+ Z; v8 ?9 w
============================================1 e1 R: s5 R! u' X: J4 n* g
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ g3 @6 `& R( X( B也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法7 d* n2 _: W! G1 }3 j8 Q
以下是RSA算法文件2 ~' Y+ G& v% p6 H

& K& h6 V& T) t/ @1 e( n- {3 d文件名RSA.ASP+ E# x* X+ a$ _6 \& P
===============================================
. q3 I  Q2 b6 G% z/ I- u<% . c: }6 q  B# x5 K  G* E0 E# a6 {
Class clsRSA / @* @$ l* H2 ?
Public PrivateKey
% G# [. W# L" S- [7 S  |Public PublicKey
! C' C; p6 h) ]2 @1 i6 A' yPublic Modulus
# X# q0 `2 h5 p8 ^3 n. @# s; nPublic Function Crypt(pLngMessage, pLngKey)
6 s: T" T# }/ E6 |- WOn Error Resume Next , X; o# y2 |4 v
Dim lLngMod
. A% |* N# c: g3 HDim lLngResult
8 t9 z6 `+ e( S9 @4 |( b: p9 FDim lLngIndex - a3 a) F' T& x* L% z
If pLngKey Mod 2 = 0 Then
( {* b4 S, M% W" X! `, K5 }lLngResult = 1
& {5 T& K# ]. v( L' ^6 O3 ?0 qFor lLngIndex = 1 To pLngKey / 2 ! H, K0 c8 w8 _) @8 K
lLngMod = (pLngMessage ^ 2) Mod Modulus
3 f/ c+ o# h' ?6 h8 [+ J' Mod may error on key generation 9 t2 J0 h$ I9 t
lLngResult = (lLngMod * lLngResult) Mod Modulus
) X7 ~5 X% A* bIf Err Then Exit Function
" Z  e/ q) W; s9 s% TNext ' U1 G& u) z% n* f. P$ w- g
Else
* k0 E+ {: }/ U* i5 d4 W3 u" A9 OlLngResult = pLngMessage
/ B6 P6 {, `2 H; k9 j6 ^For lLngIndex = 1 To pLngKey / 2
9 `- h5 v4 M3 X( k: p, ylLngMod = (pLngMessage ^ 2) Mod Modulus # G  V. \7 M& O7 [; d  v
On Error Resume Next ' z3 e7 g! Q/ g
' Mod may error on key generation 6 v, V2 b$ L2 ?2 L! j0 R% u
lLngResult = (lLngMod * lLngResult) Mod Modulus
, a$ c. I/ I4 O7 o8 oIf Err Then Exit Function
! }6 f9 S# S6 H6 g: Y4 \+ UNext
* l4 \3 g$ B& e: t0 o! ]End If . i3 e/ f) `8 Y& E  C
Crypt = lLngResult + z. y4 D6 R5 B$ i0 a" r
End Function
) z2 t) X. }# h/ e: C) ~% R3 J/ r' h7 Z$ e
Public Function Encode(ByVal pStrMessage) % U3 P  B5 q7 e! t! G& a1 }) a  K
Dim lLngIndex
+ @7 O6 I" ~" h3 C- F$ ~Dim lLngMaxIndex # d2 U9 M7 J# t
Dim lBytAscii
" ?9 Z, M+ Y2 H2 KDim lLngEncrypted 0 ^( k( P' E6 M1 B7 K; d
lLngMaxIndex = Len(pStrMessage) 5 u/ P$ J, F5 y& Q8 E4 U0 h. q9 Z6 x
If lLngMaxIndex = 0 Then Exit Function
* Z; n: ~. Z# U- u0 ]8 rFor lLngIndex = 1 To lLngMaxIndex
7 d2 i' o7 l; k6 tlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ A: Z- [' R3 _lLngEncrypted = Crypt(lBytAscii, PublicKey) , O9 o/ q6 A* n2 w
Encode = Encode & NumberToHex(lLngEncrypted, 4)
  J# F5 q( K1 PNext . o; d4 Y. c9 T& D* b6 E+ k; I
End Function % X: C2 z0 C0 p0 a6 y
Public Function Decode(ByVal pStrMessage) / C2 p" G: U  `* I
Dim lBytAscii 1 x+ J  }: x' Q: q6 G
Dim lLngIndex
# o  `9 o$ b4 T1 A8 p3 SDim lLngMaxIndex
/ F4 k, \( h! b5 }& Z! kDim lLngEncryptedData ; ~# c8 z# e; c. r' R( G! g+ e
Decode = ""
$ L) d5 F; {8 O2 O- K* D& S# glLngMaxIndex = Len(pStrMessage)
" X; O4 O9 Y% Q, v8 mFor lLngIndex = 1 To lLngMaxIndex Step 4
4 D$ S$ A  w4 r; I" ZlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
: [/ [) W/ |+ O5 b9 r6 J0 }lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 7 W6 ^+ g$ w3 A
Decode = Decode & Chr(lBytAscii) % p1 v: a" R4 F: }
Next
: T! }: C. _% h: ?6 m8 ZEnd Function 6 D% h- R# Q, E; R3 T# W
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
5 @. [% ]  f' ~7 S4 ^NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; L, C# Z+ k6 y' l! \9 h1 h+ a
End Function ( N4 V% B' j9 U7 _" e; ~) E6 [+ }6 J
Private Function HexToNumber(ByRef pStrHex) & _/ S* H& h& i3 x9 {; Q
HexToNumber = CLng("&h" & pStrHex) & m6 D, M! G5 \9 q
End Function " z4 k+ C4 u& x7 D( o: E
End Class + G% H! s7 p* l) M& e
function Encryptstr(Message) 6 T5 p  N4 z4 {5 x) w  D0 {0 {1 s
Dim LngKeyE
7 d. y0 K$ j$ vDim LngKeyD 7 _5 J$ o- Z0 n+ t/ j
Dim LngKeyN + U$ S9 L6 w- c$ q- x, F% t
Dim StrMessage
) F+ g1 L! y  A- f$ UDim ObjRSA
& n$ \. I, n9 ]8 i3 OLngKeyE = "32823"
$ G/ j1 x" R; D. M# t/ kLngKeyD = "20643" ; f* C" H4 ?5 N% a
LngKeyN = "29893" , j7 Q2 M4 p# c$ a9 b+ `
StrMessage = Message
# _* \5 X- W" }/ ZSet ObjRSA = New clsRSA ! C+ I0 n' D) Y2 Q0 K
ObjRSA.PublicKey = LngKeyE
& t% H8 L& {6 o, g! _/ |) sObjRSA.Modulus = LngKeyN
/ y. @: g; b: J- ]" aEncryptstr = ObjRSA.Encode(StrMessage)
3 h; w; w  T1 y$ GSet ObjRSA = Nothing
; s8 y/ m& O) K: Wend function
# [; {3 x$ k0 X! e0 u. w! r/ ?Function Decryptstr(Message) & y$ a* O% {' {" ~
Dim LngKeyE % a, @# z" V4 {0 S( a
Dim LngKeyD ! g: p# c7 D  {: i
Dim LngKeyN
! ]  `# C) ~3 d2 W+ _Dim StrMessage 0 W- m9 a3 C: {8 }
Dim ObjRSA 0 N* e9 x3 `' `- v0 v& g" j
LngKeyE = "32823"
4 }% B5 m6 L* |1 gLngKeyD = "20643"
* F' I2 \  o4 yLngKeyN = "29893" 5 c! }1 c9 X2 X, l' }$ E
StrMessage = Message ! d6 k* O  _) G
Set ObjRSA = New clsRSA % e% d/ H9 J  i# Q+ \
ObjRSA.PrivateKey =LngKeyD " \* h) P* g4 Q
ObjRSA.Modulus=LngKeyN * O1 P6 X' v7 Q! ~! v. K: m/ }
decryptstr=ObjRSA.Decode(StrMessage) , {- \' G0 S9 {* F4 r3 N! t# S
Set ObjRSA = Nothing
9 K; C( F% i( v4 h, mend function
9 p0 i# W: V2 W%>
) [9 J& C% h# x$ k5 m/ ]===============================================
8 N( B; j6 S( X$ N9 j& O
8 G7 a/ `6 m/ {; I* L# z还有一个用于测试这段代码的test.asp7 |( p, v3 D! c2 m; p9 j
有兴趣的自己搭建个IIS测试下
! e+ R2 T5 }% t  B6 r<!--#INCLUDE FILE="RSA.asp"--> 3 @( }/ V9 k2 c0 L/ a& F- g" ?9 h
<%4 D  G; ]4 c  q# r: r* e
function Encryptstr(Message)
/ e! e, g0 z2 R" e  }, jDim LngKeyE ! ~- v$ W4 O$ \5 d& X
Dim LngKeyD
& ]0 s3 _0 r, {- bDim LngKeyN 5 q+ ]! b, V; W7 D5 z. x& e% E
Dim StrMessage
6 n7 g; h: k& s$ u* XDim ObjRSA
, l* T: \5 w% @3 d0 [* WLngKeyE = "32823" 8 F  {  y" c& S* U9 N+ @
LngKeyD = "20643" 4 R' z0 I' k/ t$ b9 t: q# }
LngKeyN = "29893" / Q7 M/ l$ R7 w* A7 H5 M2 P
StrMessage = Message
  F0 [) f4 x2 T% v" g2 B6 `Set ObjRSA = New clsRSA , k: N' C9 e7 R! R# q8 D0 P+ K8 d
ObjRSA.PublicKey = LngKeyE
8 k0 ~* P) A; u" o- b. W4 ^- uObjRSA.Modulus = LngKeyN
) K$ O5 W0 V3 Y" GEncryptstr = ObjRSA.Encode(StrMessage) 9 ?+ x& [5 I7 v# Y* u
Set ObjRSA = Nothing * v) W1 i$ n3 M
end function 9 {: x. ^+ H# m% x" T, V$ t; W: K
function decryptstr(Message)
6 d" W# L1 Q; @' |- N* {Dim LngKeyE ( h6 y) T: D: ~; O( V4 T. b
Dim LngKeyD 1 S, v1 y4 |* n
Dim LngKeyN $ P0 p" M7 j% {! X0 K, e$ G
Dim StrMessage % M+ p4 P* E  Q& |! W" i  c3 Y. v
Dim ObjRSA
; W: q* m. p2 V3 a7 |8 wLngKeyE = "32823" ; w) l2 Y0 ^6 \3 h9 {5 j% T
LngKeyD = "20643" % F& p9 G+ A* c- h
LngKeyN = "29893" % ?8 e0 L- I; m: e# u  F. A
StrMessage = Message % `2 f  R. D+ N7 G" W+ e
Set ObjRSA = New clsRSA
$ @5 m+ U2 N% a& L- f/ WObjRSA.PrivateKey =LngKeyD ( a, y3 k: y" N8 C
ObjRSA.Modulus=LngKeyN / {: P3 N$ {( g2 r+ L
decryptstr=ObjRSA.Decode(StrMessage)
$ [2 F* B/ k- z1 w+ S, s2 T1 gSet ObjRSA = Nothing " R8 P' s3 ^5 k, E2 _7 g$ n5 x' z
end function . ~. L9 u3 N0 _; M6 P( D! I1 a- w( a
dim last,first 8 K3 ^4 k2 f: P& P7 N  l
first="!@#$%^&*()" " r& y8 V( Z+ |. L) R
Response.Write "加密前为:"&first
6 b  c8 R1 y5 Hlast=Encryptstr(first) 6 G: ^; l- L  d& m! S3 t: h
Response.Write "加密后为"&last
% h  n5 ^, B  |9 W9 i. n3 p( VResponse.Write "解密后为" &decryptstr(last)
# d( W* u. |. f- l. i%> ==============================================6 L# t  o; L8 J+ @" Q
剩下的就是字符的对照表了
- I" O; G9 I' g  z; u' x===================字符集================( ^* P+ z) y/ v: }
1_____6EBB0 p8 T: C2 v& i, E
2_____5C1F
. q2 I0 z1 F5 X! ]3_____4D75
' [% ]/ ?/ g, O1 q( J4_____26CC1 i- I" T3 q( v+ D% C4 @2 s
5_____4F88
2 U- S. U" j3 M, V7 ^6_____3F4E
1 h5 R, l& Y! Y& [( P* f7_____0A9D
- K" b6 W9 C4 U( Y8 ]8_____1A1C
/ o: c, l9 I1 r7 \/ E" O( q9_____6D20
& Z, Y+ n# a* b  y; A0_____1089& }$ v3 ~, b: W' P: o3 q) p5 b
a_____0F3E5 ]1 P/ c9 h. G+ H2 S
b_____31596 W. w6 x' }; P; L# A
c_____3517- g- V8 z# ^" t$ @% q
d_____419C9 R- m+ h% X- |* Q3 Q( @% o( g
e_____615C5 ^2 a! g/ u, g# f  ?
f_____556F
) G8 l$ I! t8 {7 ig_____2B7F# u& [0 ^! q0 h% U5 ~* n  W
h_____0F9C
+ _! b$ F9 B, \/ X+ a: P- bi_____00FA
3 c( \; G8 ]8 oj_____5A50
4 ^2 ~6 \5 y# a4 o9 ^k_____2850
. w/ C9 D4 d0 Cl_____3E7B
' @. M: D5 Z( @- ?3 ]1 @m_____71C5
# U* i6 {' ?. d4 O0 Ln_____1FC8
. E% m0 R+ {( I  V, Oo_____74C1" V# W+ Y4 D4 I& k5 N+ N" Q
p_____5FB8
: `* l# o% W# o! ~q_____6085
3 \3 _# L% _! ], Dr_____3AC4
! F4 Y/ }# M3 W/ y4 d  xs_____2F50
3 L# R8 r1 @% yt_____36F81 A2 A9 v3 a" y! k: G3 O& s* F4 g8 e, d
u_____7010' J" ]" Y! b# {0 w
v_____0B42
# \8 e" H; S, m. C- m. Q  E8 w/ Qw_____1C7A
5 ^( m, j7 H3 y/ ^: `1 ox_____16F8# h5 R! H- g2 N7 j
y_____2EE7
# |0 c5 |) S' t" `. u' Sz_____5CF3# S1 B( S0 [! T+ b
!_____6233* w+ F$ f9 i* @) m9 P6 b% E" ^+ M
@_____3A45) @, ~. T( v5 P: t* j3 N
#_____2291
, ?# X, p2 U" u1 @+ L$_____5D5C
# {) j: |  p2 Y! A5 @%_____09B9. R* p3 u; a; ?# c, M
^_____43EA
6 \, y2 t+ F. ?; w* e- h2 O&_____62B9
# `+ F7 n; t4 [0 ?; v*_____6301
3 ~" r. X8 R9 L8 l% O$ p- @(_____4659
+ m8 D3 S, c  U)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表