返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
9 ]* N2 n+ v4 z) [5 H0 a: W原始出处:http://www.3ast.com.cm
' I% c, k( A: o" a# H  F/ ^9 w* m! [: _: D
看不懂的直接绕过
2 F" G% R8 U/ I0 q, k1 G加密前为:hwy123456/ d+ ?6 v$ ~1 B3 s- P2 `1 o
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
; |# ^6 Q2 W9 U
* m1 R" ]  U2 _" o5 z3 P+ y============================================$ u! ^! z% b5 B( @3 O: w1 L  C
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
* W# t8 \1 X8 p) v- j6 d也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法) w: }2 H% ?" P; ]! j# P
以下是RSA算法文件* p$ u7 f. s, r% U# \

& Q3 ]( _! E+ j; w6 S8 {2 G6 E1 T* m文件名RSA.ASP5 r1 j! \+ f6 R. I* J
===============================================
1 K4 q6 o- K# ]# h) o) @<% ) S+ P8 u$ @$ ~6 v4 b! M6 w
Class clsRSA : o& D5 K6 b9 n
Public PrivateKey
2 u' O2 q0 P0 z# c  FPublic PublicKey " o' J; B$ c) t: C5 b$ U
Public Modulus   a% g- P4 c" j4 _: E) [
Public Function Crypt(pLngMessage, pLngKey)
1 L0 I7 W' Z9 C) _9 f! ^On Error Resume Next 9 n! [+ N$ ]& \, V9 [8 p+ @5 _. w
Dim lLngMod / \' c. i  }  H" O: Y3 K- f, I, B
Dim lLngResult 8 C* ^' \  o# f- h* C3 S
Dim lLngIndex 4 R# N1 r: u2 r  W7 j
If pLngKey Mod 2 = 0 Then % L% j$ Z0 E9 l
lLngResult = 1 % g- @$ q; |. j; i
For lLngIndex = 1 To pLngKey / 2
. X! j% m5 @7 O* P. U3 F( x1 AlLngMod = (pLngMessage ^ 2) Mod Modulus * ^# L; |0 S, v* n+ Z$ q. G$ l
' Mod may error on key generation
' q1 s; C$ u# z7 ElLngResult = (lLngMod * lLngResult) Mod Modulus 4 ?3 {. [1 S" F7 w- g6 l2 J4 L
If Err Then Exit Function 4 E, @. [, G) t0 P6 {  p
Next
  ]7 _5 x% e& y3 ^; e4 rElse 8 v5 J5 |4 _! z0 L+ i/ U8 L
lLngResult = pLngMessage : {2 z3 }+ q, s! a* M
For lLngIndex = 1 To pLngKey / 2
  m& \/ Z( j- B* M3 PlLngMod = (pLngMessage ^ 2) Mod Modulus , w6 U7 Z6 H* E
On Error Resume Next ( Y, i: }* C" A$ L2 c3 x9 P% [; n
' Mod may error on key generation
1 V  s+ l$ ^8 XlLngResult = (lLngMod * lLngResult) Mod Modulus 8 y+ M& V! c5 D8 O7 b6 l4 t
If Err Then Exit Function
# D5 H( g6 [2 w3 W2 @8 HNext
) f+ w' t. m% m+ c; S; j, BEnd If # b) T" T1 e0 k
Crypt = lLngResult
; h* o+ x4 N/ j8 w+ e; f; {( iEnd Function& A; D- n, B" L$ {, E

3 f3 {) B; p! V/ |1 UPublic Function Encode(ByVal pStrMessage) 5 l2 G7 \+ [5 }' p! e4 G
Dim lLngIndex ) g) y4 l8 I  N: G! x/ |& P
Dim lLngMaxIndex / v6 n# Y8 ^! [6 {" J( \
Dim lBytAscii
, Z' U9 ~1 ~  b! @5 JDim lLngEncrypted
* J. A5 E" F& AlLngMaxIndex = Len(pStrMessage) 7 N7 `/ }1 C2 g
If lLngMaxIndex = 0 Then Exit Function
, `7 Z* m1 O' o: S' u. B& TFor lLngIndex = 1 To lLngMaxIndex $ I  V1 |! z) `# a. B
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ! V" ^9 K' J- b* x9 K+ Y
lLngEncrypted = Crypt(lBytAscii, PublicKey)
$ {/ T9 i; @3 b: l4 J9 EEncode = Encode & NumberToHex(lLngEncrypted, 4)
. Y* R5 C" Z' r% F1 XNext + Q7 O) ?% L( S
End Function
# c, ]0 J2 ~3 t2 u. sPublic Function Decode(ByVal pStrMessage)
& N' U! a& I- R. s$ o4 _$ EDim lBytAscii
3 D' i4 x$ q" Z/ ?6 P7 eDim lLngIndex
. C5 C4 |  _0 L: A1 LDim lLngMaxIndex ! t$ C( o2 \: l
Dim lLngEncryptedData 0 N1 g" v; ]( m0 h1 {
Decode = ""
5 K3 ~) T  x9 y$ j/ clLngMaxIndex = Len(pStrMessage) & V7 o- a& n  c
For lLngIndex = 1 To lLngMaxIndex Step 4 7 M, a) x6 {4 [- e/ Z0 B
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 R$ y) b( F: K1 N  H7 llBytAscii = Crypt(lLngEncryptedData, PrivateKey)
0 \0 ^) b  o% Z1 qDecode = Decode & Chr(lBytAscii)
" J+ c; |. f$ h7 iNext 1 H( i  w$ I  D2 d
End Function 1 {/ _  C/ [/ r3 M+ r" s* L
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) $ U7 Q, Z, D+ G
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
8 m$ ^. z% T' F( oEnd Function - n+ Q: S( v  a* Q
Private Function HexToNumber(ByRef pStrHex)
& b' ~$ |- N* C( y# O; @; ~8 ~HexToNumber = CLng("&h" & pStrHex)
0 P2 f7 m& R3 a6 i, UEnd Function 7 l9 M; f1 `! ]( M
End Class , z/ T! w0 T& D$ M
function Encryptstr(Message)
7 B: ?( a, D& LDim LngKeyE   n1 b6 u3 _4 K# g( K0 v
Dim LngKeyD
8 s. W) y1 j/ I; D5 CDim LngKeyN
* x/ U0 }; R% z) o2 x6 s4 lDim StrMessage . A6 Z3 ]$ x$ V. c+ Z' B6 m7 B! z
Dim ObjRSA
- A4 U0 H: k# sLngKeyE = "32823"
- u$ @& l7 h9 B6 O& k; A% c7 SLngKeyD = "20643" # Q2 Z* [3 d% Y$ w" c) Z& S% M
LngKeyN = "29893"
& l: G4 Q: a: v* M( c8 q  lStrMessage = Message 9 Q4 D$ \8 Q: E
Set ObjRSA = New clsRSA 5 z# J/ r) l9 c& ~" b; `
ObjRSA.PublicKey = LngKeyE
8 Q$ d4 R/ ~2 T$ {8 S8 aObjRSA.Modulus = LngKeyN ) g0 ?5 c) z3 T3 P; A& m4 F
Encryptstr = ObjRSA.Encode(StrMessage)
, H3 U0 I7 _# D' ?1 W! tSet ObjRSA = Nothing $ B, Z& G, W* o" k- ]* [0 O+ j
end function6 m1 V. H* L, d
Function Decryptstr(Message) & o8 |$ _: S  f! M' X8 m( R
Dim LngKeyE . C; M9 _+ ^9 h8 N
Dim LngKeyD 9 |% v" b- x0 B. F
Dim LngKeyN . p# A3 q0 ^* V, E4 g' d3 \* b* H
Dim StrMessage 3 f1 z6 E+ G# d6 |4 _
Dim ObjRSA # u- I4 u0 L/ H' B
LngKeyE = "32823"   M$ U$ ]4 {" k3 g6 ~2 e$ Y
LngKeyD = "20643"
. \$ N* d; a' j" f1 l! h1 PLngKeyN = "29893" 3 r* g0 }8 {  f5 [, H
StrMessage = Message ' v5 {/ F4 i+ ~' m) L9 m1 Z
Set ObjRSA = New clsRSA ; J  u4 K) |% V! K8 \
ObjRSA.PrivateKey =LngKeyD 8 ?9 U) a4 q  ~
ObjRSA.Modulus=LngKeyN
- x' [" |8 I1 R' z. K, }3 _4 }( g: \3 hdecryptstr=ObjRSA.Decode(StrMessage) 5 s% r9 m4 x4 q' D  M
Set ObjRSA = Nothing
' \. v* Q* k: S0 Uend function 4 i/ ^7 j) a( a! t# U# g
%>: Z* ]/ |( O5 V' c6 b; K& |
===============================================
% P/ V* j) o% {# S5 \% C1 h1 ?1 ]* X* b& R6 g( ^0 Y6 d7 u
还有一个用于测试这段代码的test.asp
3 h9 Z& @" A: x: Q有兴趣的自己搭建个IIS测试下" _% B' D% ~8 [2 T* o6 ~
<!--#INCLUDE FILE="RSA.asp"--> ; y4 y4 J0 f2 u1 N" Q
<%0 ?/ x" n, T  L9 H
function Encryptstr(Message)
, n; M* I0 o! P- F& J5 F) ^( HDim LngKeyE
2 X& D0 w/ v% ^9 g1 c' ODim LngKeyD ! ^* n% f, _8 P
Dim LngKeyN 6 N0 k( F5 _, Q0 U0 U9 s$ G4 L
Dim StrMessage
% v" U% ?/ x2 G  W' a! H$ TDim ObjRSA
& R  z5 s& T8 a4 z) @) P6 tLngKeyE = "32823" & C1 b' e5 K, d, L& W! S
LngKeyD = "20643"
2 z7 t/ b4 j7 CLngKeyN = "29893"
) D, Y" O& i6 F1 pStrMessage = Message : S6 o' p1 Y: [, v
Set ObjRSA = New clsRSA
% L, u( n7 l6 T5 z8 uObjRSA.PublicKey = LngKeyE
, s- z* N7 m1 U  U# g' u9 wObjRSA.Modulus = LngKeyN
4 W- Y) f0 D: S  T- }1 }; uEncryptstr = ObjRSA.Encode(StrMessage)
, Z" x3 j, ~+ Q$ }, d& @2 GSet ObjRSA = Nothing
' \; p2 d# e$ p- N  `end function 8 h% _3 s1 M) N
function decryptstr(Message) : P  z% }% i4 c! H0 f7 u$ D& v
Dim LngKeyE 5 E8 V- k! C4 x2 i
Dim LngKeyD 9 \8 d0 l! A! H6 b
Dim LngKeyN ! Q4 E+ ^5 I" h& R& d5 O- D
Dim StrMessage & W" `3 u" K/ O2 x- G! n0 F
Dim ObjRSA # K2 v  M3 U" p& E! K
LngKeyE = "32823" ! z% C2 x4 i; L, j
LngKeyD = "20643" 9 @) x: e1 z5 [+ }; ?" i9 y! G8 A
LngKeyN = "29893" 7 O, x1 \1 m- M+ _6 N) D
StrMessage = Message . _' I7 d2 R. G1 x+ @7 F1 t! L7 B
Set ObjRSA = New clsRSA
( s$ o" R! |; _. F) t5 nObjRSA.PrivateKey =LngKeyD ) s& v5 v: H" [- T: z! v) }2 z
ObjRSA.Modulus=LngKeyN / j8 t7 t$ }% c3 U8 u% A
decryptstr=ObjRSA.Decode(StrMessage)
$ Z7 B) J# j% P: k: ]- tSet ObjRSA = Nothing
8 r1 s! ]! Y" A8 s9 Q6 hend function % ?$ A8 O3 [7 p% {8 @6 `
dim last,first + a# \5 o8 G8 Y4 U+ x
first="!@#$%^&*()" # D0 I/ X9 r$ ?7 n# _
Response.Write "加密前为:"&first
; j2 l$ B5 g0 r" Q" B: ]; ~9 }' Dlast=Encryptstr(first) , Y2 s) c9 [: E/ X  b+ x0 v9 g
Response.Write "加密后为"&last
* Y7 k: s" h/ t$ S2 m5 ]Response.Write "解密后为" &decryptstr(last) - I+ ~) l& ]! Z2 S- f
%> ==============================================
% }4 Z0 N7 ~# j6 C6 `剩下的就是字符的对照表了& x  E$ \) a1 ]$ ]* O, Z1 a) E
===================字符集================; g. _. Z& m# s$ y& y% J9 S
1_____6EBB
& w, A/ R& [+ S! N; D' l2_____5C1F
; k. ], A. b4 C8 |3_____4D750 I5 }. t: u6 c' A
4_____26CC
$ s' C; N. ]0 o9 E8 C* f5_____4F88& V5 X+ g! a; J. x7 {0 G: G3 _9 I
6_____3F4E
& [5 W7 m. `% Y6 T$ u9 I7_____0A9D
2 A1 V# C$ i/ L! O. ~$ A. r8_____1A1C  m; }3 @/ w: ~* ^" b) i
9_____6D20
/ h: I: j0 y8 }' z7 d/ R4 \+ p0_____1089* t4 s! {+ N, i
a_____0F3E8 W& F/ e% o2 G. f
b_____3159( l- c. u- T) J
c_____3517
- P; b8 W$ D/ g/ l: J& Ed_____419C8 \1 f5 K" `' e! s% Z
e_____615C. ]) A; e! ~" ~
f_____556F2 z& G1 [5 b  Y
g_____2B7F" b. p9 h5 ?+ T1 L. b! d
h_____0F9C
5 Y3 W4 a- y0 s) u7 |i_____00FA7 E& I8 |% F, n" c0 I+ r5 B. q% r
j_____5A50
" [# @# I0 c" k1 U1 ?k_____2850
) y& G" V2 X# u$ \, ~3 bl_____3E7B; [: x* _  L! l, t" D6 t- q% c
m_____71C5: v$ E9 h; A3 t: `+ S: `
n_____1FC8. A. o7 w  d+ l2 Q( F2 l# K& g/ m( G
o_____74C1
! E/ V1 D3 \  T" G; s/ A9 h* x# yp_____5FB8
3 x9 U5 i. F8 d, F; G5 |/ zq_____6085
5 y- D6 }- J% U' v0 ~9 K  Jr_____3AC4' s7 `; c# J$ u' v9 y5 L6 g
s_____2F50
: E( [  N- J6 p4 k0 Yt_____36F8
) Y" c! V8 J( m! C4 hu_____70101 H% }7 Q) C4 h& M8 V( u
v_____0B42
/ ^, o7 P/ f" Z8 f( ~w_____1C7A' u; G1 @. _* `" `! k
x_____16F8
: L# E7 l, x" P! zy_____2EE7% _4 G5 t7 i! k7 j0 u; M
z_____5CF3
. Z: @) D. j# c6 P!_____6233) e% [0 Q; n+ w2 s
@_____3A45% s# P0 f( n. W9 ?/ l9 o- j
#_____2291
4 z2 r5 v2 W: }# U$_____5D5C+ U" W# }2 ?. U8 ~; z2 l) N$ F$ a) v. l
%_____09B9* Q# f, w* a% f9 m
^_____43EA
, }# ]( U. g2 L&_____62B9
2 f$ Y/ @8 s0 u*_____6301! I4 T) ^' Y- A
(_____4659
/ \$ B" s* H- T$ i) V9 h)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表