返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm# F; C! K4 w8 p
原始出处:http://www.3ast.com.cm
9 k+ p+ ^/ V9 F9 a2 \* N& e3 E: g$ @4 y# A. V2 c3 B& I$ {
看不懂的直接绕过0 l8 R2 Z; L0 }- O5 r) w
加密前为:hwy123456# p5 O( t4 k; V3 E( F5 ^: ^
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
* p* G- _1 x5 h' `; g" @3 q$ D  X# `& x% \& O* ?
============================================
% W8 W9 l7 O, ?  b  d上面是当时自己校内的心情。现在已经解破出来了,分享给大家
, M/ S2 e5 t! c2 i! e8 C也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, G# q- u1 N; e2 I7 D
以下是RSA算法文件5 F6 @4 A" r4 p  [
5 t; f9 s" ?8 t" G5 c6 ^8 x
文件名RSA.ASP
: N2 }4 n) K: ~& {8 \===============================================
$ x  `* F. u! x" J$ u' K2 ?: A<%
! N% ^$ k+ o/ K$ DClass clsRSA
& O$ |- Y% B! K; rPublic PrivateKey ' K4 G" e) C3 L0 b) k
Public PublicKey . w7 Q! D3 q$ @% y( q
Public Modulus + W$ V4 F& r+ f+ g
Public Function Crypt(pLngMessage, pLngKey)
, O# y( D! i, B6 kOn Error Resume Next
% W! ]2 S$ z8 e" B1 S# ~% YDim lLngMod * p" _8 O" p3 N
Dim lLngResult
( c+ E; ^' x- Z* B6 aDim lLngIndex
1 f- T! k2 M4 |4 g! i/ A2 FIf pLngKey Mod 2 = 0 Then 7 X# I/ a& f7 o) {7 V0 b, J& p5 f/ E
lLngResult = 1 1 o, \! o, X8 a8 L
For lLngIndex = 1 To pLngKey / 2
5 e1 |8 H9 o" W: n# tlLngMod = (pLngMessage ^ 2) Mod Modulus
4 [( t# s2 P* F' Mod may error on key generation ) [/ J' N3 g& G# {% }  D- F% k7 F1 `
lLngResult = (lLngMod * lLngResult) Mod Modulus
  s# @+ c. M0 M, \% f4 gIf Err Then Exit Function
2 D' b$ z( Y# p1 XNext
0 r5 ?; T9 a' B) U% `Else
7 i' W" Y$ c! m: S1 }. \# e+ ElLngResult = pLngMessage
, V  |7 y4 q; }+ C) m8 y2 @For lLngIndex = 1 To pLngKey / 2 . m9 G4 R/ P; X/ p2 B
lLngMod = (pLngMessage ^ 2) Mod Modulus
. y- @2 p% h9 z- j$ m( rOn Error Resume Next # ^: r+ B9 ]! F. P7 T1 V
' Mod may error on key generation
" j6 N: X1 h' v, W1 @8 ?& N. slLngResult = (lLngMod * lLngResult) Mod Modulus ; d" R& r* }6 t  j# _0 h
If Err Then Exit Function $ C: `& l8 e" o% q6 f
Next
! p/ Q4 b2 Q4 LEnd If 3 O- c2 ?3 Z- g9 Y6 Z  B; P
Crypt = lLngResult
  R. m( a+ k3 [End Function
, t: t" O6 Q) ]1 b' c8 r1 M0 Q+ K) u0 e, a9 Y2 K0 E
Public Function Encode(ByVal pStrMessage) * w) x! ~/ j0 h0 a
Dim lLngIndex / v, e" u( }: @
Dim lLngMaxIndex . V; u" P2 v. h2 i6 a% _) E6 L8 l
Dim lBytAscii " k6 l- a1 i  o, J6 ], E3 J$ R
Dim lLngEncrypted
0 G- w, z3 i: n% S& ^4 P( rlLngMaxIndex = Len(pStrMessage) * |& w, ?+ `. i& _5 M5 A
If lLngMaxIndex = 0 Then Exit Function % c, @: Q- f, _$ J- Q$ x. T
For lLngIndex = 1 To lLngMaxIndex 0 ^7 K- S% p3 `
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ; l1 Z# o, h/ h$ }3 ^1 f
lLngEncrypted = Crypt(lBytAscii, PublicKey) + k' b  ?, v8 \' @2 P
Encode = Encode & NumberToHex(lLngEncrypted, 4) ! ]; X5 P. N! H3 g+ u' X; ?5 a* ~: z
Next 8 `, ]3 n# d, i! m5 G! R, J& M
End Function
8 x9 ]8 p9 n; r0 ]( J/ d& LPublic Function Decode(ByVal pStrMessage) 6 l* s# F$ T& i% ~  W% K
Dim lBytAscii
0 E" |; t. M8 o# I( L, Y( EDim lLngIndex
& q( l2 _+ q! w- j! f$ YDim lLngMaxIndex 8 I2 p6 n1 w2 E2 q6 q
Dim lLngEncryptedData
. B7 I9 |2 j5 q6 C4 tDecode = "" : n7 m, i0 _3 O6 h$ A
lLngMaxIndex = Len(pStrMessage)
! s3 c& U! `. AFor lLngIndex = 1 To lLngMaxIndex Step 4
9 F) K0 _9 h0 R4 B1 }( rlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
4 g8 e) Q0 M- m  E7 y/ q0 FlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ d: p' R/ Z$ h3 y) dDecode = Decode & Chr(lBytAscii) 0 c" p4 j  g9 ^
Next   @3 t5 e& I8 [' _  P5 ]
End Function ! N: _/ J% v! H+ \) c
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
$ h/ x0 y/ M6 HNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ( z$ ]% ^) d2 t) @' Q2 ~4 ]
End Function 5 |$ X3 V9 N& g8 R# n) G
Private Function HexToNumber(ByRef pStrHex)
' ^; ?8 E2 a8 }- K6 THexToNumber = CLng("&h" & pStrHex) ( K  w% @- i' L* k! n
End Function ( Q7 s6 v8 Q3 C& T: }$ }4 l
End Class # z: }- b. N1 a9 r! |
function Encryptstr(Message) 6 a5 `& ?9 a* G* M
Dim LngKeyE $ O1 K/ q; W8 a/ s3 y; F& M
Dim LngKeyD & M. Q. K7 `& k! d/ C$ f
Dim LngKeyN ! [. ?# E6 F2 G- q
Dim StrMessage
5 j+ q: L7 Y# d. M0 j2 GDim ObjRSA
2 o, X+ \  p* e5 O$ |( s- x" }3 G" SLngKeyE = "32823"
' O! T5 N$ v" Y4 I# aLngKeyD = "20643" 6 @" ^9 f& e: Q/ M9 w  }& N' e
LngKeyN = "29893" 6 g4 D$ C% V( Q
StrMessage = Message
" B) V& q( a7 t5 T( a0 n8 J7 M1 ySet ObjRSA = New clsRSA
8 q4 t! R  C6 v& T- J; {ObjRSA.PublicKey = LngKeyE
( y+ t! S! Z7 k$ r9 ^ObjRSA.Modulus = LngKeyN & Z* v; N  F# L1 U' d# }
Encryptstr = ObjRSA.Encode(StrMessage) 8 E% g/ X5 n" I  j6 P* o( Y- C
Set ObjRSA = Nothing
# C- D' {% d. |! N. }end function! v% G: N) M8 o
Function Decryptstr(Message) 7 f2 A4 j  K* R3 N) B
Dim LngKeyE / O+ f9 V: |1 g1 r* W$ g- H1 `
Dim LngKeyD
$ G. e4 R' ^$ Q0 Y4 Y4 RDim LngKeyN
$ s; t% {1 s9 N- S5 d  QDim StrMessage
& ~0 _6 m  T2 U) S) {) dDim ObjRSA
( P6 d8 Y9 I1 x  iLngKeyE = "32823"
: q% b3 P2 k8 @, R4 ]9 hLngKeyD = "20643" ! z! j0 Q9 U- Q& R  G2 ^
LngKeyN = "29893" , _& X1 k. i% J* @: b8 Q2 V
StrMessage = Message 3 y  R! W3 v  B2 V
Set ObjRSA = New clsRSA
0 e* A! l9 Y2 i: E' ^% rObjRSA.PrivateKey =LngKeyD   i/ f# x9 I( b
ObjRSA.Modulus=LngKeyN ; b9 f. T% @* ^8 i+ [8 ?" J
decryptstr=ObjRSA.Decode(StrMessage) 3 X9 N" k0 P0 A; M9 E; N
Set ObjRSA = Nothing
+ Z! x9 T0 ^, I) O$ r% q  Z' ~0 @end function
4 `. F) i7 t) G, w0 e%>
6 @9 ]; Q1 x0 ^===============================================
/ m8 y, M( D7 \4 X; r: q  p
9 T0 W) l2 M# S+ Z4 |8 r还有一个用于测试这段代码的test.asp7 `0 j& Q/ H  H: T
有兴趣的自己搭建个IIS测试下: p8 E+ ?) d2 S! Y
<!--#INCLUDE FILE="RSA.asp"--> - }9 M* g/ y. L' v
<%  d) o# T1 r2 O; L4 O& z
function Encryptstr(Message)
7 {" ]# C+ u- w& CDim LngKeyE
+ S! v' ^( V, m. ]Dim LngKeyD + M- ?2 B9 Y9 \& V2 ^
Dim LngKeyN
. t. J3 f5 y/ ^8 J+ @Dim StrMessage
* }, p2 p. L( z( i2 v# n) n" BDim ObjRSA
7 n; }$ O: L$ cLngKeyE = "32823"
3 c. m9 y. y; K1 r7 P0 pLngKeyD = "20643" % Z4 Z1 f* [4 w* q9 Q/ i' ~
LngKeyN = "29893" # b$ M& s; ?, B+ Z, |, H% v; _
StrMessage = Message
/ [8 Q8 K7 `6 S( D$ _) e2 fSet ObjRSA = New clsRSA 7 ?3 Z! Q/ ?% p1 V
ObjRSA.PublicKey = LngKeyE % i; _* |2 C3 P: S2 I* N, q
ObjRSA.Modulus = LngKeyN
) }( s9 F6 ^# Z+ iEncryptstr = ObjRSA.Encode(StrMessage)
! i* |, M( x' y" t- P1 q5 pSet ObjRSA = Nothing
: u. Y. E9 z+ ^5 [% f$ ~8 ~  ?/ yend function ) e! |* T( m3 W( ]: J( c
function decryptstr(Message)
1 C& |3 w5 k- {, E7 g/ bDim LngKeyE " W, Y/ A- \  ]4 b3 u' r
Dim LngKeyD
; O( p+ Z) ^% n) }Dim LngKeyN
# U( \9 d! a. BDim StrMessage . h/ J/ `( u% N2 r
Dim ObjRSA
1 I& I$ B) E1 v; X7 wLngKeyE = "32823"
: J3 T* J# W- ~- U3 d4 Y! JLngKeyD = "20643" # ]. A. a3 l) s& U. m
LngKeyN = "29893" : S  J' {8 X8 d8 M
StrMessage = Message
9 H; X9 [1 ]+ [( N& F/ w9 f( z3 _4 J( VSet ObjRSA = New clsRSA % o. w0 N5 S4 |( T, O# G% x- F' e
ObjRSA.PrivateKey =LngKeyD   P- S! z: p- }' u: G/ m
ObjRSA.Modulus=LngKeyN 7 q7 `+ [4 v- q. l& t) O
decryptstr=ObjRSA.Decode(StrMessage)
- d9 v$ c; q9 B2 i9 L" ?Set ObjRSA = Nothing
3 l9 m. f7 T- s' Wend function
& E3 I; \1 G- `+ p6 Bdim last,first 5 y) ^/ _, J4 f0 A2 C7 z# g
first="!@#$%^&*()"
; \1 R; F" v# a0 o$ V! MResponse.Write "加密前为:"&first
( N( |4 v. l$ {, l7 Jlast=Encryptstr(first)
* P- F/ m: W* N' [5 a8 \Response.Write "加密后为"&last   x) C* z0 ]# |+ }/ C
Response.Write "解密后为" &decryptstr(last)
4 [4 b' A7 w2 D$ u2 I%> ==============================================
5 {4 }. v" I, X( q剩下的就是字符的对照表了; F/ v2 w1 _4 ^
===================字符集================
* Q2 R. O# S. _# `2 G, G; y1_____6EBB1 h: Z3 \6 S+ @% M0 T
2_____5C1F
: `6 g  f# L" l: e+ Q, x3_____4D750 ]! L4 l- R$ I: _- b. C
4_____26CC
/ K/ b* x+ v7 u5_____4F88
1 [  Q' p4 W2 \4 a5 X4 n& r( P6_____3F4E; I. M, A. o7 c' r+ Y
7_____0A9D2 W3 }  ~0 O9 Y& X, w
8_____1A1C: T) Y( v1 \1 L5 ?: ^& E! _7 u
9_____6D20
) o6 x: F* P) U+ A0_____1089. d4 A+ g4 B1 r' K5 e0 q4 G" r) Q) |
a_____0F3E. S/ U  I( O/ @) M
b_____3159
$ |# ~, l' V) K" {c_____3517$ i1 h- t  a! {6 `3 j' {& M0 `: x# O
d_____419C. j9 U8 C# e# a3 w7 Q& ]: i
e_____615C
4 L# [; V. C3 b0 I# U- wf_____556F6 `/ ?; E0 X% j- n
g_____2B7F
# G$ I. c0 R4 dh_____0F9C' I& e4 s6 H$ l2 e- \
i_____00FA
! J" @6 }. v. Ej_____5A50
5 W( i. U5 [$ E! H6 u1 Ok_____28502 j5 C4 ]7 j5 N% B) z) N" Q
l_____3E7B' K! s/ C$ O3 S
m_____71C5/ l% I2 k; X, E# y6 k4 j- G$ @6 y
n_____1FC8
' P% |" @5 y! }. j  k. Io_____74C17 h, l, s  T3 r
p_____5FB8
9 r" n8 a1 ?" hq_____6085
# J0 H4 h0 j4 E+ E5 B* j+ {. Gr_____3AC4& p1 P4 L% s7 t, X
s_____2F50
% t! B. d3 i& I  w0 g* C- i- n) xt_____36F8/ D6 i0 t! ]9 k7 b9 Z! _: r
u_____7010
2 g5 _& {' _. {# w0 xv_____0B42
4 d7 d9 m. [8 c2 c* xw_____1C7A
& |1 S: i' M5 c) U  r3 Y1 U  F8 ^x_____16F8- U: x, G( D3 }( w; D
y_____2EE77 i) |4 E: p6 u0 M
z_____5CF3
. r4 B/ v% L& E. G, K  p; W!_____62334 E: Q& D, v$ P) u, C. \0 f9 I+ q  @' ]
@_____3A45
0 \9 E5 W% G7 |& `#_____2291$ X/ J  E0 m3 K
$_____5D5C
% g6 A' M$ b. n* E7 N%_____09B9
3 `+ b, a2 [- m: `: F^_____43EA
+ d$ {$ U1 c# t( X. ]&_____62B9
: P' R5 U% ^% P! i- r  l2 N*_____63019 A; A6 {" m9 ?# Y& A
(_____4659& S; Z6 U' Q7 b0 ?/ ?
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表