返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
  y! g. d' p* Z) B3 o+ u原始出处:http://www.3ast.com.cm8 f& O4 k' {) F4 F- h
" Y1 y' A+ q) E; v. J. L
看不懂的直接绕过+ n2 M1 F. z& S  o5 q
加密前为:hwy123456& u0 k6 U( |/ V  D9 @) o
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% [3 ~- R  Z9 ]% u
; q$ k- S. _; \6 b" @% F============================================
6 }7 ~! B8 z/ H  p3 J. H上面是当时自己校内的心情。现在已经解破出来了,分享给大家
7 Y! d9 z& G  o% x' v% ?% V9 q也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
5 J0 w: P: i+ q以下是RSA算法文件8 B0 F1 r% u  b" `6 b9 C$ q

" s# D" z1 Z. J+ k2 b9 J文件名RSA.ASP
  }$ y* V: O' Z8 i3 W, |" s5 I7 R* h===============================================9 {" t. o  E% J
<% ( h( o8 k8 G2 i( {8 G. @! D
Class clsRSA ! {( ^" u& D) k. b) m
Public PrivateKey 0 L. v+ Z1 D$ k
Public PublicKey
% ]% Y' p+ M4 y7 Q% F; fPublic Modulus
4 [( ], p7 B* r8 d- {& _Public Function Crypt(pLngMessage, pLngKey)
- d& f' F, m  ~" y1 R2 UOn Error Resume Next
4 F# h* n9 P6 Z6 ~' \1 V( HDim lLngMod ) j7 e) U8 P9 i$ s2 t; k( \
Dim lLngResult + c+ R; U! M6 M4 l* h+ c3 K
Dim lLngIndex
$ ~5 V  L! j' C; \$ ], s0 A8 tIf pLngKey Mod 2 = 0 Then ; N: M+ s* Q! H& u8 Q3 _
lLngResult = 1
) }) T0 P3 {( V5 L/ ZFor lLngIndex = 1 To pLngKey / 2 : r# [+ X$ z9 R3 X" G
lLngMod = (pLngMessage ^ 2) Mod Modulus " i4 B. ~% \; S: R4 @
' Mod may error on key generation 9 o( \6 J4 p' v; t
lLngResult = (lLngMod * lLngResult) Mod Modulus ) O' ^) H* h  ^6 w- J8 I
If Err Then Exit Function
8 a% G  w# D; L: e* Q: xNext
+ c, ]3 U' `. g' M( j& SElse
2 h2 v% t7 b- M7 o4 LlLngResult = pLngMessage & C, g" Y7 A) g, g7 @# A: k
For lLngIndex = 1 To pLngKey / 2   k5 R0 l' k) [5 F
lLngMod = (pLngMessage ^ 2) Mod Modulus
2 r7 Q0 g4 x* ^- R/ w( bOn Error Resume Next & P1 ~" h9 }& l0 k+ [' g6 U. F
' Mod may error on key generation 5 s( d; N+ S6 @0 n: S; Z
lLngResult = (lLngMod * lLngResult) Mod Modulus
- ]( _* O; T; x: g( o7 `% YIf Err Then Exit Function " j" t. i( I! i% D( r
Next . E) {7 f# A; r7 H# S
End If * E* w) ^/ j, {
Crypt = lLngResult
, v) U7 X  W0 ]( U5 r% `$ YEnd Function7 H; q# e+ c5 V6 x, j; g+ x: s: \
. |! N$ H6 A0 s4 R
Public Function Encode(ByVal pStrMessage) 1 {' Q( |, h/ r* s" d# c9 R
Dim lLngIndex 8 y2 R# u* d! Q  D: {
Dim lLngMaxIndex
( w6 Y0 A* u+ I; NDim lBytAscii
5 N. h" `" R5 b% y4 M9 PDim lLngEncrypted 0 {; A3 E$ g; V( A# Y# J( c
lLngMaxIndex = Len(pStrMessage) " u5 D# ^- E1 e, Z# Q1 Q. K3 m8 M
If lLngMaxIndex = 0 Then Exit Function 6 k) d& Q" I( ^& [1 F
For lLngIndex = 1 To lLngMaxIndex
$ H0 W( N+ W/ }2 R0 I# J7 elBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 ^: W0 `( Y) Q* A% v4 y
lLngEncrypted = Crypt(lBytAscii, PublicKey)
. @! L, E- P$ a4 [Encode = Encode & NumberToHex(lLngEncrypted, 4)
- A/ O* t: b- ~/ n, _5 y& fNext
1 n( H) f: G7 C! b) yEnd Function 6 q/ J3 T/ S6 l: t; ~6 x& b' [0 ]
Public Function Decode(ByVal pStrMessage)
% J% j! ^7 o( @; k; D# wDim lBytAscii
* A8 y# D1 B6 o) k- `/ {Dim lLngIndex 2 \  F/ N& @4 i
Dim lLngMaxIndex
3 m" T1 i2 [. k7 {Dim lLngEncryptedData . s/ E* [. Y0 ?8 _* k/ w; b1 a
Decode = "" 8 z- E" z2 R! p% V
lLngMaxIndex = Len(pStrMessage)
0 e; o% S, h/ s0 s, p# }For lLngIndex = 1 To lLngMaxIndex Step 4 5 {9 K- r; i7 p0 }: s
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) + [7 g& e, P" Y. R, J, o/ ^
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
0 V, t* B, Q$ R  j8 aDecode = Decode & Chr(lBytAscii) 6 }" u2 j) Z: `
Next & ^: |; I" d9 @! c( M8 k, E
End Function 2 j* t' V1 p" G6 q, P$ M
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
% ~) S5 w7 ^( x- E  v2 r  }NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
; N5 Q% y4 }; D- e: ZEnd Function
. I+ }( h) E" s% A- a+ bPrivate Function HexToNumber(ByRef pStrHex) & _$ M6 V5 f9 U& b# y# H
HexToNumber = CLng("&h" & pStrHex)
, G  c* C9 U. |, ?End Function
7 [3 A( R1 o1 ~End Class . {' p$ d# g4 m( b$ r
function Encryptstr(Message)
) T% {9 U0 T) W/ z7 t# T* |! bDim LngKeyE
( F; ]8 b2 ]. w" ?Dim LngKeyD
1 d5 F( M& u% i4 L# J. u, LDim LngKeyN 7 u. r" H9 K0 M$ I
Dim StrMessage - h; H+ Z8 P2 C" w$ y; ^
Dim ObjRSA + }. S% f( h4 }+ i" n6 G3 G
LngKeyE = "32823"
5 `2 o% |6 }2 wLngKeyD = "20643"
  e# M- ]! K9 B8 S6 Y3 {6 Y0 uLngKeyN = "29893"
/ y5 ]4 L0 I6 R: r' DStrMessage = Message
! r4 S4 ^! l5 l! `# aSet ObjRSA = New clsRSA $ E8 T3 ]4 v+ z3 G% `5 K3 |
ObjRSA.PublicKey = LngKeyE
4 d& R* K2 p9 p5 y5 ]ObjRSA.Modulus = LngKeyN 4 g0 l. R3 A) a' W% i3 J9 W+ S7 v  F0 n
Encryptstr = ObjRSA.Encode(StrMessage)
4 J# l; B! }$ r* o- D& d7 ^- ?Set ObjRSA = Nothing $ Y  G: A: Y6 g, v( b9 x( Q
end function
6 W: h7 b8 O( Z( @' ]- |Function Decryptstr(Message)
) A2 ?1 u2 C* r9 d- K( ?$ YDim LngKeyE - \3 }& T$ U) X% V  b$ l5 R
Dim LngKeyD / ~) \+ S9 D- x& C
Dim LngKeyN
6 F/ D# `8 N+ }, @; p8 WDim StrMessage
! a4 s" E# x. p; ]Dim ObjRSA 4 h1 g9 k7 ~- R/ |% u8 `" ~) u
LngKeyE = "32823" % b5 f! ~4 a9 U* V+ t0 G& [( A. [5 ?
LngKeyD = "20643" ! P  H3 i1 [( I! g! Y
LngKeyN = "29893"
5 a  C* F$ g$ }StrMessage = Message 3 s- `  V- j3 r1 l
Set ObjRSA = New clsRSA
! w: D- p) i2 PObjRSA.PrivateKey =LngKeyD : L& W4 V( ?( L, [8 d
ObjRSA.Modulus=LngKeyN
. ~: }  e% h) M1 r; L, sdecryptstr=ObjRSA.Decode(StrMessage) / ]8 R! o" i$ u: m
Set ObjRSA = Nothing
% _# @# b! N" n# M2 ]# }, wend function
* Q3 h, c  z( x3 l! ~%>
4 l$ {# S4 @3 U2 x( u===============================================4 t6 b+ X8 c; t5 D, G! c
5 ?) j3 S+ C3 l4 F5 u. K! @
还有一个用于测试这段代码的test.asp+ h1 ~0 u9 \% }# ~+ h- V% f- l
有兴趣的自己搭建个IIS测试下" y" |6 m/ g1 i$ b# g; O( s1 U
<!--#INCLUDE FILE="RSA.asp"-->
: o( }- n' }% ^. D' ]% y$ p/ r2 {<%8 [9 I9 f7 ~- i' ?- D# ^; R! \
function Encryptstr(Message)
0 N+ G. o' k$ j: V- E' z5 j- A0 HDim LngKeyE
- I# k, k9 T, O% CDim LngKeyD
/ B. V$ n8 l' G! [& A# `, nDim LngKeyN . q3 T4 ?: l' d. {0 M( K5 o
Dim StrMessage
& B6 C$ Z& K, _% iDim ObjRSA 9 `- H7 a0 [1 {' H5 [% w
LngKeyE = "32823" 9 K! Y) Q: W4 B  k
LngKeyD = "20643" : J& P$ [7 h4 G4 D+ Y1 Z& G6 t
LngKeyN = "29893"
/ }. z( Y; u6 B+ L/ m1 Z4 I0 dStrMessage = Message ; u7 R) u' i4 z6 _% @
Set ObjRSA = New clsRSA % f3 Q- _+ I7 i0 h# n- L, n
ObjRSA.PublicKey = LngKeyE   k0 A  f  K8 G. @4 c8 s9 X
ObjRSA.Modulus = LngKeyN
! W- O- }3 {7 ^5 @Encryptstr = ObjRSA.Encode(StrMessage)   b# |9 }$ W0 D6 |/ k
Set ObjRSA = Nothing ' M/ R3 P. @; a3 ]. x
end function
" A+ n* U* x8 n' V* U2 {function decryptstr(Message) " h% \( U2 {6 W2 c8 \, C$ n
Dim LngKeyE
! F1 L; S! G6 q  v; VDim LngKeyD
0 [; [% i0 P3 S+ r$ Y! Y( CDim LngKeyN
- b: p/ _- c8 w* {Dim StrMessage
, p0 j$ Z( `" B/ y- y4 @2 L  pDim ObjRSA
/ j- u7 U! D  i& v8 ~& p* sLngKeyE = "32823" # W3 G" ]4 q  B; d1 \, ^8 |
LngKeyD = "20643" $ c- `5 E& W# U" B! l
LngKeyN = "29893"
3 H. d) b; `' _$ Z! zStrMessage = Message 2 f% n8 M% j' k# Z8 ~
Set ObjRSA = New clsRSA
# x; r& h0 `$ a) [ObjRSA.PrivateKey =LngKeyD
7 H4 s" h* x& y. Q" BObjRSA.Modulus=LngKeyN
% L9 t; C! i; M: Fdecryptstr=ObjRSA.Decode(StrMessage) , d0 e- z" I" J
Set ObjRSA = Nothing
/ W5 @1 E4 E" i. A3 t$ `9 g- W+ uend function
& Y& b) i+ u, B1 Jdim last,first
/ c5 _' G1 j' O- \first="!@#$%^&*()"
; A  ]. e9 A1 Z7 F2 i  h6 EResponse.Write "加密前为:"&first
9 R8 P" S: w% _8 h1 [2 r' l; alast=Encryptstr(first)
1 o2 a4 i# `: l- _/ EResponse.Write "加密后为"&last ' [! w$ @- D  J
Response.Write "解密后为" &decryptstr(last) 0 L- J) r, U, |; Y* S- k
%> ==============================================3 x' O% P. c( X: k' G' t
剩下的就是字符的对照表了
9 j  W0 P( M* K===================字符集================6 i! ?8 i; G7 U- H; V3 C
1_____6EBB
3 r6 M! y) {. q. b8 g0 Q2_____5C1F
) X6 R; t& {0 N5 N; |$ {8 r3_____4D75
1 C: ^) l& L% g" Q1 f4_____26CC; ?! }7 w* r  m4 C
5_____4F88$ o( N1 B  D# l$ K4 T" q
6_____3F4E
' n  s( @5 S! b2 a# Y( u7_____0A9D
$ a4 ?/ p: @. n* E* t6 p8_____1A1C
. g$ Z' d& j) V$ S9_____6D20
* I) \2 u6 ]. M0_____1089
+ d, Y8 a$ Z, c, ma_____0F3E% V* E3 Z; T3 X1 }& s
b_____3159. w) m3 F# ?" G/ F0 U. A" F' }
c_____3517
- F. m* }+ C$ d$ J* b) O" n6 L0 B1 ]d_____419C
6 M+ w# L0 e) f1 Z4 r7 ke_____615C0 [* S4 O0 @7 T* O  T) p1 ?
f_____556F
, P( ]- `3 U+ `g_____2B7F
: Q, t' f3 g3 z% Wh_____0F9C
0 }2 |' r/ X7 q: Ui_____00FA0 i5 j' C, [0 j$ j! m
j_____5A50
: P, j, p) J5 z" c! i$ I0 L% qk_____28503 k+ I& X; H* p- Q' N" r
l_____3E7B
7 Q& F  X. a$ @6 Ym_____71C5. ?9 D& a. z5 T4 u3 s2 M
n_____1FC8
' w4 H% m0 `! a( eo_____74C1
5 D! P1 H3 W& L  N. k! cp_____5FB8
' V5 n$ I/ Y: m0 P7 L6 Cq_____60855 P8 S4 C% R% Y; N& ]
r_____3AC4  v0 s% ^3 K! r$ v% G) j' s* _
s_____2F505 v" w) W8 Q: W6 P& h/ f$ J
t_____36F8
! R- w  q& M5 j: [u_____7010
8 N7 S# I4 K4 Q- tv_____0B42
) z4 D2 j, H) Q( m$ D% \7 e  ]w_____1C7A
) M" O/ u# h0 {% V: Yx_____16F8
# u# o  }7 Q) ny_____2EE7
" ]3 B0 }. T: {# R9 _$ }z_____5CF3
( b5 u- m& z) P. x* i+ a4 {!_____62338 C9 Q+ n5 w+ ]/ \2 z% Y
@_____3A45
( u  b& ?, K, {8 {$ ]: {6 {#_____22914 u! A8 d3 _+ r5 R, f
$_____5D5C
1 o6 m/ q$ D3 O* I% z%_____09B9+ |/ k4 {' E% v  f) A/ w% j( l
^_____43EA
. i5 e, v  Y. Y+ V# k) ~1 R+ Y&_____62B9- C, x- B* v/ J) d- |
*_____6301( W2 H! {2 y" f5 `
(_____4659
2 m9 x! ^- i: l* U! I& P)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表