返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
3 A+ v7 o. l) k2 L1 S. c原始出处:http://www.3ast.com.cm/ b% p2 r) \5 G/ z3 b/ K# C
7 M7 [  A. s/ r: V
看不懂的直接绕过9 P) D6 F6 C: f4 C! I
加密前为:hwy1234561 b5 y" B1 `/ N) r
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E$ C. }. V! _. D  N! @
! J1 ]$ U9 o+ @  e9 T2 x. w
============================================
7 T; R& X' I4 o3 l, ~, y上面是当时自己校内的心情。现在已经解破出来了,分享给大家
/ D7 _/ t+ |7 m. Z% g' C: E; I" i也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
3 g. h6 Y6 f1 v* Q1 M  N: E以下是RSA算法文件7 F% F( S, ?: X7 N' h

* F) Q* {  S" [文件名RSA.ASP; ]  C( T6 a7 v+ t2 |* ?4 C- e5 V
===============================================5 m4 X! c% W) a( O$ C
<%
8 l7 J+ q0 b# U; U3 T2 nClass clsRSA
+ X- |  `9 i& C& I/ k& D9 y6 SPublic PrivateKey
( p* T# J  s+ uPublic PublicKey
1 o/ S  c5 P3 oPublic Modulus
9 r% G* R( d; \: J* f4 W  J4 [Public Function Crypt(pLngMessage, pLngKey)
: L) {, U: e9 P( XOn Error Resume Next
% }  \. h( b6 }& Z( `4 ODim lLngMod
6 D( w9 y  C* D# v( R% e; w9 aDim lLngResult
3 t& `1 w1 `4 G/ U+ f8 Q9 @Dim lLngIndex
" T# a3 |& g, e% b$ l: X  a4 I! qIf pLngKey Mod 2 = 0 Then ) N5 H2 Z9 A% g; s
lLngResult = 1 ! m" z  x1 q2 v9 z: W, }% N4 \
For lLngIndex = 1 To pLngKey / 2 ) _% n9 |; j3 s
lLngMod = (pLngMessage ^ 2) Mod Modulus 5 @7 @- z6 I# t. Z% ^
' Mod may error on key generation " \! k/ r. d3 ~1 \$ m+ J* g4 e+ o
lLngResult = (lLngMod * lLngResult) Mod Modulus 2 s8 s& j' g- q
If Err Then Exit Function
$ H& t2 k9 b" D' [# @Next
' a( j  e  V9 b9 p8 KElse 0 N7 }" T& L- j: V
lLngResult = pLngMessage " V! @  G$ V, s% A* n% T
For lLngIndex = 1 To pLngKey / 2 2 P' p9 W! `' r/ M; o
lLngMod = (pLngMessage ^ 2) Mod Modulus # O" k% B( X5 q# o/ R' B
On Error Resume Next . n4 k$ R* C( [% E. Q
' Mod may error on key generation
9 n# X/ j7 F, b# D' K( AlLngResult = (lLngMod * lLngResult) Mod Modulus
) f+ s" `/ S& T0 F9 Q' D% T/ {If Err Then Exit Function
! Q: G( K  e& ?. E5 i+ V5 s! N) ZNext ) e" C5 ~- Y* p2 G5 r! r) B
End If
# L- m7 U* h* c' t+ SCrypt = lLngResult
1 C. z' x' ~+ C! sEnd Function( d# N# J, a! |1 V1 d2 M: J9 L

3 f/ Q! H( t0 |1 UPublic Function Encode(ByVal pStrMessage) * B+ [# D7 q6 `1 p5 j9 D9 P  ]
Dim lLngIndex * `. q' w% A; I; i  p8 A
Dim lLngMaxIndex   S( y$ u6 N+ S3 W* L3 _% M
Dim lBytAscii / O* e. Q+ l0 S8 ?; o2 ^8 N2 L
Dim lLngEncrypted
( Q* P: W( G: [0 D6 dlLngMaxIndex = Len(pStrMessage)
6 o+ Y$ z6 p% g& Z$ R; s4 {9 oIf lLngMaxIndex = 0 Then Exit Function
( m, `0 o6 h$ W  UFor lLngIndex = 1 To lLngMaxIndex # k" S# a6 B5 {3 R. y1 ~9 |2 P
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
, j, _, a* Y6 X8 w& Y* \lLngEncrypted = Crypt(lBytAscii, PublicKey) , c5 Y. `- ]. }: A9 `$ _
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' a, v2 [8 O1 b; x* I4 G, jNext
: M4 r, ^: Q3 QEnd Function
. N3 r, }5 d/ G  x, HPublic Function Decode(ByVal pStrMessage)
7 a3 r9 e" c8 Z9 Y( nDim lBytAscii % t% Y& A% }2 t( L6 h
Dim lLngIndex 4 T  O! I: C$ Q# D
Dim lLngMaxIndex
! ~, d$ z" v. Y# I, h* XDim lLngEncryptedData
  d/ e; K4 T1 _5 O/ oDecode = ""
+ F+ ~5 {4 Y0 b' mlLngMaxIndex = Len(pStrMessage) + g! w0 h* q4 Z# f5 s0 P
For lLngIndex = 1 To lLngMaxIndex Step 4 . Y- `5 g5 {& {2 K
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
) `0 D, t) L* ?: |+ llBytAscii = Crypt(lLngEncryptedData, PrivateKey) , [2 r: I% w1 E/ D
Decode = Decode & Chr(lBytAscii)
" {+ z' Z5 _1 h+ h1 NNext
$ T5 p( C; r# U6 r0 B3 J' `9 v& w; O) xEnd Function 9 j4 [* s$ y: T4 N6 i2 x( Y
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ) ~1 g- x7 o3 ]) \9 ?( r/ C7 R' f
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) % d6 y+ T: T1 B4 q8 a, }
End Function 0 c% W/ b: K" X7 w$ M) [
Private Function HexToNumber(ByRef pStrHex) & i9 V: l8 m: Y* D. y% V9 I) i& x- P
HexToNumber = CLng("&h" & pStrHex)
% t! T% o8 \- J  s8 H4 F# oEnd Function + s% g7 S) ]- q& f
End Class / [4 n" L  e# m, W1 t! O. z
function Encryptstr(Message) ) L: j( [$ o" V# c% N+ B1 s  x* `
Dim LngKeyE ) B' q( D# N  A; K! b3 Z; O: e2 O# K
Dim LngKeyD " h+ Q# C& w* F% r
Dim LngKeyN ; Q! q2 ^6 ~6 Y5 c5 S
Dim StrMessage
& B6 a$ k1 w$ v! J* ^# bDim ObjRSA
8 T% w# F7 [' A$ c$ R: fLngKeyE = "32823" ! H* E) C9 I* \7 d$ W; Y4 j+ c
LngKeyD = "20643"
. d0 S% b2 J& ?7 Z+ o, eLngKeyN = "29893"
$ C5 z) {" P& d% B0 J: r: h2 @StrMessage = Message
7 T1 M9 X$ N7 _3 I6 Y- mSet ObjRSA = New clsRSA 9 p/ f& [) q& b) I
ObjRSA.PublicKey = LngKeyE . k( ]3 v- x9 A: T7 P: H7 _, b% n7 }
ObjRSA.Modulus = LngKeyN
7 Y: {' s3 p% Y6 DEncryptstr = ObjRSA.Encode(StrMessage) # _' L, ?1 R/ S4 m" p
Set ObjRSA = Nothing
) J# L( O( m2 l; Q: Z+ Bend function+ w. q) T2 J7 A) N
Function Decryptstr(Message)
  a* D, r9 k+ M0 j' `3 cDim LngKeyE 3 v( i& H  U  M, \
Dim LngKeyD # q1 n. K, g8 l: n5 S- {' m
Dim LngKeyN $ f& y7 m# c' i
Dim StrMessage
' }" o. b7 ]8 \1 cDim ObjRSA - Z* l& s& D& [; Z* `0 P
LngKeyE = "32823"
: q* r" a" S2 v; N$ R9 z# l& W+ @/ tLngKeyD = "20643" 1 C* d* v& r+ ~1 r' J! e7 d7 U
LngKeyN = "29893"
; V% ]8 Y: w- }StrMessage = Message
: L2 [6 x+ }$ F& v( g6 `( h4 c0 YSet ObjRSA = New clsRSA
7 f' R. u. D  ]9 t% }! _ObjRSA.PrivateKey =LngKeyD
6 e4 E! R: ^/ @ObjRSA.Modulus=LngKeyN % o" B2 U# f: }( o
decryptstr=ObjRSA.Decode(StrMessage) 2 I* _/ @% @- l1 q9 w7 Y% P1 H2 c
Set ObjRSA = Nothing 5 [& o; F9 t. s0 v1 Q' P, j8 D
end function $ {( H& l+ e/ L
%>
9 \4 Q# ]4 {# P# J===============================================2 Q# ^: \8 \5 A
4 F4 F5 t. ]2 _( X% l
还有一个用于测试这段代码的test.asp6 }( u4 I1 |# P6 n
有兴趣的自己搭建个IIS测试下& ]# \* Z$ Z  ~* L" Y" p
<!--#INCLUDE FILE="RSA.asp"--> $ Q: X' S$ i1 V; k6 }2 u
<%
' I- G$ C" Y! S7 w9 Z( ofunction Encryptstr(Message) ! G6 i3 k4 T" x; X" R% M! o
Dim LngKeyE 8 F! C# ?. l9 u! T) v0 \; Z
Dim LngKeyD 7 c0 X  u8 |2 ^' U
Dim LngKeyN
7 o/ |( D' v2 a3 x" a  ^) {0 vDim StrMessage 6 c- g, q. x* L$ a2 W
Dim ObjRSA 4 w" d6 p( ]0 {. g6 [+ r3 v
LngKeyE = "32823"
% |2 W$ k" _5 g5 B8 X# D3 oLngKeyD = "20643"
  G. {0 q0 Z6 q) I7 tLngKeyN = "29893" 8 S- z3 |7 }' y$ X) [
StrMessage = Message * L9 W8 ]2 p: i2 ?5 R/ \
Set ObjRSA = New clsRSA 7 J/ O$ m& B8 M4 f1 E& L
ObjRSA.PublicKey = LngKeyE
  d) U% R2 ]$ P- ?ObjRSA.Modulus = LngKeyN
) S% Z- _' D' c  uEncryptstr = ObjRSA.Encode(StrMessage) 9 w: ^) Y2 k) P1 o
Set ObjRSA = Nothing
; G# k( Q. _- A2 eend function ; P/ `3 m* J/ R1 f( ]
function decryptstr(Message) ( _  Z, z* d5 V: B! `
Dim LngKeyE   U7 s1 i+ j' n, }6 x* B& y+ F
Dim LngKeyD # ~' H# L9 o  U% Z- K' u
Dim LngKeyN ( k0 v& Y- D. y" m) N  [
Dim StrMessage
2 A; c/ }) J8 j; c# m3 lDim ObjRSA
; n  Z) q! V8 f# l/ e  ?% T, XLngKeyE = "32823" : f  W, _9 V/ t  u) O) E% }
LngKeyD = "20643" ; S3 _" m+ d4 r3 j# I3 M
LngKeyN = "29893"
8 M3 I2 d; \1 X1 MStrMessage = Message   u# G" \* u, Q  ]
Set ObjRSA = New clsRSA + Q6 m5 l( {+ ^" V2 G9 f& O
ObjRSA.PrivateKey =LngKeyD 1 K; W3 X2 L# n# y! O1 k9 w
ObjRSA.Modulus=LngKeyN ' ^! T# b; c" L+ y: J+ w
decryptstr=ObjRSA.Decode(StrMessage)
8 }# d* }0 \. `0 GSet ObjRSA = Nothing
/ M$ u. {; ~/ `+ T; v: L0 mend function
( z0 K1 e) I; ]! B: x' ndim last,first , ~, W7 ~; b6 }3 R) W, o7 y
first="!@#$%^&*()"
: E6 V4 O  R$ F6 VResponse.Write "加密前为:"&first
6 g/ e: y; k+ r5 d1 P) k( [3 V5 @, Y6 ~last=Encryptstr(first)
% ^6 X7 s$ I" B" d! RResponse.Write "加密后为"&last + H5 J4 h% P- M7 f! z
Response.Write "解密后为" &decryptstr(last) 5 \9 o5 d3 L. ?/ M
%> ==============================================
! t' z( y- e+ s$ f  F. e剩下的就是字符的对照表了4 B6 h) S! o( w2 ?; g0 N: [
===================字符集================! g# u9 n3 m3 W9 c9 ^! U9 F1 F
1_____6EBB$ ]9 K1 e: R# E, `
2_____5C1F
& Z+ ^# V9 P3 z$ o8 ~' Z# r" D& d* F3_____4D75/ N, s7 P: c2 I8 ~2 ?
4_____26CC
0 b6 R" v: m) [% E5_____4F88
/ o" U+ r4 o6 W/ V6_____3F4E
, ~. V/ [3 Z' _/ q+ F( z7_____0A9D) P; y0 P- [9 r$ J! F9 R+ W% d# f
8_____1A1C% O3 U3 f9 ~% z' }/ |  O# J
9_____6D20
, b5 M. R! u* c& z) h, j! u6 m0_____1089! r. L4 b' }2 p1 G2 G9 F1 |* w
a_____0F3E4 O: w* i8 r- |+ }" E& I( r
b_____3159( ]2 `/ s! Q& u( e) c
c_____3517) S4 x( r) \, w# ?, K2 k
d_____419C
: j1 H' g2 l5 Se_____615C+ z5 W0 k3 p7 }7 T: S
f_____556F
& B) f: u0 W( c& I4 ~  ng_____2B7F# m2 n  z2 d8 ]8 ?3 x5 N
h_____0F9C
) Y; U+ J% s+ f7 Vi_____00FA' t* C: Y7 n$ H- p4 I' g- l
j_____5A50  c7 u) d6 H  a. W7 v+ X% S7 }
k_____2850; v2 H: x! M6 G( p" G' {+ P8 C
l_____3E7B$ N; ?& t0 I& D" O) y3 k0 z
m_____71C5
9 F' g; w2 ]6 ^: Q  H2 \n_____1FC8
- t+ M$ e' ~) O8 b; P% |. _$ t2 i1 Fo_____74C1
+ v! p0 O, @$ I9 mp_____5FB8
2 U" l+ f; R- e5 tq_____6085
8 A% t! `  E! t* ~( K( Kr_____3AC4
9 X1 @0 V& x! |' Os_____2F50# V8 {0 n1 j0 ?0 M8 i6 P) M
t_____36F8
) H9 p# V: {3 ]' ]& t5 n, ju_____7010
; z. z' \. M8 [) c/ kv_____0B426 T& E; ]6 x) d4 W% @
w_____1C7A
& I, Z% O# K2 g  A8 u. G$ v$ L6 |x_____16F8  U$ U3 |- e9 i) D8 M' k' |
y_____2EE7
: f( G* W. s- J3 |6 f7 h/ fz_____5CF3
9 Q+ G5 }! d( R" D!_____6233( x- B# r' C; ~; F- E( D, S
@_____3A45+ S  Q+ t7 g$ X/ }+ v
#_____2291
/ H2 ~1 {2 f, p+ O$_____5D5C# n& l' a1 V1 d8 z5 d
%_____09B9
& L9 {/ \8 m9 d. l( {^_____43EA
, v2 n: v# A! }" q7 m&_____62B9; `4 s9 m. q; z+ b7 J- x* a
*_____6301
2 `$ G) W+ _8 P0 G) H(_____4659
2 b" E5 u: Q. a# i  E% O+ U1 t+ d)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表