返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm  O2 u  u) [- `' c* I2 X( W' k' w1 S
原始出处:http://www.3ast.com.cm- r  v8 ]* c2 N. Y1 N0 W! B
2 |" u! \: `. r3 q
看不懂的直接绕过9 U9 @. T' S& w' ^2 n) R
加密前为:hwy123456! _: m" z% f1 f6 w4 Z+ l* C4 [4 m
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E4 w6 h' O9 w- T  j) s) v: T& N/ F
$ M- C" k- z, ?# _8 D. T$ S, G
============================================
2 V" U. k' \' n8 }: S$ U: K- d上面是当时自己校内的心情。现在已经解破出来了,分享给大家1 ]8 u6 T# Z' Z0 n* [- {$ d
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
& g7 F: a# L9 o$ Z. ^以下是RSA算法文件
6 y  @- q3 l* k/ I( Y- c
# g/ W/ C. K! t0 {' f/ F+ S文件名RSA.ASP
/ j. Y4 x7 I; ]===============================================
1 `) T9 [6 z( e: U0 S: N3 z<%
  ~  s% ]# P0 R% t) W& bClass clsRSA
6 s3 c0 J/ e, C' X+ j2 {6 R* ?, WPublic PrivateKey
- g9 f6 w$ h1 w6 G) TPublic PublicKey
2 W6 Z7 F! p, pPublic Modulus
4 @! ^4 }/ d4 {9 [( |* ~9 \6 GPublic Function Crypt(pLngMessage, pLngKey) / i$ h% d1 q; d6 ~- ^) M4 v
On Error Resume Next
  i1 o. }( R% K% F: K  p, ~4 eDim lLngMod
/ B  m" m  s+ ^( D+ {* LDim lLngResult
6 Z: y4 k: l% H" |5 wDim lLngIndex , h; S0 x! G5 M1 o  H' V8 C
If pLngKey Mod 2 = 0 Then : W" v# y/ h6 X
lLngResult = 1
3 ^1 L2 _; `0 Q% s/ e* FFor lLngIndex = 1 To pLngKey / 2 3 `- a1 O5 A( v, [( {+ I" _2 Y* r
lLngMod = (pLngMessage ^ 2) Mod Modulus   m5 y$ _; C: d8 {
' Mod may error on key generation
; R( R0 M+ J/ ], O' r' ilLngResult = (lLngMod * lLngResult) Mod Modulus   ^' J% C  H( @9 y7 }
If Err Then Exit Function 3 z0 R9 z+ M% a! q0 ^. `
Next # ^/ b3 W( [# f) K+ h) `
Else
9 i/ f( e8 d/ X1 t+ ]+ F8 FlLngResult = pLngMessage
  r7 G0 \% Q0 @- Y9 S" P2 x" Z  ?; VFor lLngIndex = 1 To pLngKey / 2
$ J0 G, |. M# I% @: clLngMod = (pLngMessage ^ 2) Mod Modulus
+ z) W/ K) B: LOn Error Resume Next
- x4 `$ T: H9 j+ ~: y" r3 k6 Z. d' Mod may error on key generation   F* V) r: k. z& \/ Z
lLngResult = (lLngMod * lLngResult) Mod Modulus
3 A) w6 Y% Y: k. s. e: tIf Err Then Exit Function ( Q$ T. j8 P5 g* p' n0 G
Next
0 X' b+ f8 q* \0 ~; {  ]+ C  KEnd If
/ Q9 u& q7 E0 |1 Z8 lCrypt = lLngResult 9 H. l# `+ x$ ]1 p9 i# V! y" i
End Function
% f! O$ t" K2 q  S5 n, u
/ F1 Q* r8 Y( }; l7 `3 k" CPublic Function Encode(ByVal pStrMessage) & M& V7 t9 p( T  K0 V
Dim lLngIndex / Q/ k. F* b* ]1 @$ O9 m, E8 [
Dim lLngMaxIndex # w# o$ A3 b& u1 e# W1 x
Dim lBytAscii
# ~  k- C5 S7 F6 b; H, hDim lLngEncrypted
2 E8 P! g1 U# s$ N! a  p: [2 SlLngMaxIndex = Len(pStrMessage)
8 k; {- w2 s0 c) e1 B6 U9 UIf lLngMaxIndex = 0 Then Exit Function
+ Y3 f" m6 N( g" H& TFor lLngIndex = 1 To lLngMaxIndex
0 i7 c/ y8 n6 y4 U  I* B+ KlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) / j* _# k5 G/ M: s
lLngEncrypted = Crypt(lBytAscii, PublicKey)
( q6 T6 M/ \; \$ A4 {7 iEncode = Encode & NumberToHex(lLngEncrypted, 4) 3 M# I% _* E; @& n
Next
8 K9 X8 i% J7 eEnd Function
& A! h+ s& h. dPublic Function Decode(ByVal pStrMessage)
5 ?' h0 |5 h. {4 O3 ODim lBytAscii
* r$ B- Y5 `- M3 Z  CDim lLngIndex
% }. U- |7 S7 g; d  r- f$ hDim lLngMaxIndex
# C2 [( _- V' b; S7 u; IDim lLngEncryptedData
. c+ S3 p1 v# H8 @8 D9 }) U+ l8 UDecode = ""
9 ~/ t4 y* |2 N" O) glLngMaxIndex = Len(pStrMessage) : @( c+ a* Q2 J. o: q8 j/ C* T
For lLngIndex = 1 To lLngMaxIndex Step 4 - ?7 F- l# ?$ q. W& i* q
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
* H! B" p2 A* i6 `lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 0 u9 }8 u- f0 {
Decode = Decode & Chr(lBytAscii)
" _7 ~3 B/ [. E$ W' t: vNext
1 b5 j  j3 K/ b) C+ XEnd Function 2 x7 S2 w+ g0 A$ f$ A2 |, t, [
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
" K$ r3 ?# l2 h) R$ [3 c% i& [NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
: v+ y  e* H+ N" X9 xEnd Function
  x/ e. H# a+ O+ i; A9 x; Q  sPrivate Function HexToNumber(ByRef pStrHex) # `5 A6 Y6 y) G
HexToNumber = CLng("&h" & pStrHex) 3 M3 G! J/ `) C1 A: \' s
End Function ' L9 H! m, w; X" a
End Class
0 G  D+ l4 P* H5 G$ r  \9 U0 ?function Encryptstr(Message)
5 g; y1 K) h0 W2 [Dim LngKeyE % C. t) d) g7 L+ _# d
Dim LngKeyD $ S) X  u" L1 k( z
Dim LngKeyN
  H  Z; F! I7 B; M/ qDim StrMessage
% l) |' Y3 e2 m# @9 W, [Dim ObjRSA
, N4 U2 t, q+ z7 P8 q& c, {LngKeyE = "32823" 9 K$ ~5 `6 d9 }8 Z6 P0 W3 }1 u* \
LngKeyD = "20643"
9 [/ L$ E- c/ |% d, [/ }# ALngKeyN = "29893"
* a% Q: s! U' k! N& i$ zStrMessage = Message
- `- j2 ^; |: i1 S. ^# {) pSet ObjRSA = New clsRSA 9 U4 J, U9 I+ ^) Y* s2 F+ w
ObjRSA.PublicKey = LngKeyE
4 S# U! w/ R( b. e( ^ObjRSA.Modulus = LngKeyN
5 O) O. m" d) i7 g  z: @/ _Encryptstr = ObjRSA.Encode(StrMessage)
  O5 d7 a. E. Y+ @' M3 `Set ObjRSA = Nothing / x9 H6 S( y  Y% w
end function$ w3 M; R. F% S
Function Decryptstr(Message)
; N& `/ c, q5 G+ k1 yDim LngKeyE
" E) A( R# ~6 d' d- o2 sDim LngKeyD
, J5 N8 p& p# J9 R0 C( C, K5 |Dim LngKeyN
( w( O% P9 i3 J( wDim StrMessage 3 _9 D# D% v5 b; ^
Dim ObjRSA / ]; o0 N) X+ f/ ]
LngKeyE = "32823"
+ C9 k  P; i8 ?' mLngKeyD = "20643" 3 y4 M3 F' Z. h, J; P6 A3 I
LngKeyN = "29893"
. I6 [6 f2 W! S% ]StrMessage = Message 3 E" P; }: e2 _( r
Set ObjRSA = New clsRSA
7 v4 h9 Q. h- n# m+ oObjRSA.PrivateKey =LngKeyD $ H/ U6 |, P5 T: F$ d/ J
ObjRSA.Modulus=LngKeyN * Y3 N) ~- ]& k2 q
decryptstr=ObjRSA.Decode(StrMessage)
. v8 v% k! y. w+ oSet ObjRSA = Nothing 6 z# W6 m- B: D
end function
2 s% v- x2 _% L( V" F8 o%>; \1 M+ `) Z+ M# `# b( P; N
===============================================
3 q2 s/ ~+ u: f* S
4 f0 l* w2 b7 ]: U) ~还有一个用于测试这段代码的test.asp
8 r& B+ I, P% |3 P( P8 h有兴趣的自己搭建个IIS测试下; X+ d, f5 [' x! p. |
<!--#INCLUDE FILE="RSA.asp"--> - W- _: d4 b* L3 J# C
<%. M. B1 C6 Y2 N1 d: N) ?2 W/ l
function Encryptstr(Message) & s2 T8 `4 c9 d2 Q
Dim LngKeyE / Y: }* \8 p7 H3 u- v$ r% D
Dim LngKeyD
- u6 }5 Q) w; P) f) PDim LngKeyN $ T7 R# T3 `& ]' q- l4 _- B% ~+ V
Dim StrMessage
9 ?3 X: Q# P1 f3 E8 [Dim ObjRSA
* V! Z' F" Q- F' LLngKeyE = "32823"
2 ]% g2 k/ @1 V) _3 sLngKeyD = "20643" # F6 w: M. o& B
LngKeyN = "29893"
6 g, K# ^  C/ R1 W3 j* AStrMessage = Message : G* p! H/ g$ }3 H& f9 H1 O' c
Set ObjRSA = New clsRSA 1 m& U0 ?3 q, X8 v% \4 s) b! ]% u
ObjRSA.PublicKey = LngKeyE " b8 l; t, y7 S/ {2 M" A; e$ X
ObjRSA.Modulus = LngKeyN : d" Z3 t: {  @, L; q4 X
Encryptstr = ObjRSA.Encode(StrMessage) 3 j( a! M/ V1 H1 D9 k
Set ObjRSA = Nothing % D8 y) n: ]0 {' f, C
end function
/ Z6 Y$ ^. s2 e! ?7 q# S* qfunction decryptstr(Message) 6 e1 u. `5 }5 {5 j
Dim LngKeyE + {1 _. c: C7 B# S, C: B& T+ P
Dim LngKeyD . J3 ^4 y* @& @' b# H' C1 o6 R
Dim LngKeyN ( V7 y$ c8 n. L* V0 f; s5 b& w
Dim StrMessage
7 z' W" S8 H4 `1 Y6 X0 p+ q. M* ODim ObjRSA
3 P( j+ S4 Z, v/ LLngKeyE = "32823"
/ M  u* m# v' sLngKeyD = "20643"
8 e6 U; I) F5 U. ]3 Z$ a% L9 [LngKeyN = "29893"
2 Z2 X1 w, G/ F3 m+ {, \- F8 n) G# gStrMessage = Message 6 T/ z" ]' V# t3 |% [  _( [
Set ObjRSA = New clsRSA 6 g' E1 G, n. K+ p
ObjRSA.PrivateKey =LngKeyD + A- ~* F7 h. h& g$ K
ObjRSA.Modulus=LngKeyN
: P" R7 l1 o/ C' C! ^decryptstr=ObjRSA.Decode(StrMessage) ) l( K7 q5 z2 M; e3 s
Set ObjRSA = Nothing
9 s# [9 b# C* D  h: F4 j3 J1 Z9 t/ Fend function 3 E7 P! q" ~, J6 q6 c  Y
dim last,first
0 N0 M' g7 {; Y+ y/ [# Efirst="!@#$%^&*()" 2 N" M9 x- m: a! T
Response.Write "加密前为:"&first ' w1 T; x8 f, Z/ G7 @, J
last=Encryptstr(first) ; P; f5 m$ b* H" r0 l3 I
Response.Write "加密后为"&last 9 p# y4 g4 a) H, G) v  S
Response.Write "解密后为" &decryptstr(last)
+ I4 O: x: c1 k" c( P%> ==============================================2 X+ A* E% }, u# ^
剩下的就是字符的对照表了5 i. P, L9 S5 N7 [( {1 |
===================字符集================
/ E' B. g) R* v& R1_____6EBB* p1 J* y2 f2 L; o/ G/ T! D9 _
2_____5C1F2 F  b8 Y" x5 \: a
3_____4D75
! w) h  y2 B/ ?; o& \( ]4_____26CC5 T0 }8 O7 @; w
5_____4F88
% J6 J5 _: z8 i0 q! {5 o6_____3F4E
; F5 R- [: o+ [# ~$ H9 V1 P( U( f7_____0A9D( X2 W0 c: Y& Z
8_____1A1C: c0 {+ l( b6 n+ b
9_____6D20
: G" S, S( s. Q: n3 T5 `* I0_____1089( b  u6 F% `* x3 A2 j) B2 o
a_____0F3E0 O3 u6 T2 V. W7 \: B
b_____31592 H  F& }" h9 f  I( q) x8 z
c_____3517
6 N* h5 a, Q( j, t$ i! l( P  Ud_____419C. c% j: u- K0 _
e_____615C7 |8 E+ ^! n' u, P/ D/ [' h
f_____556F
+ Z5 J; g/ f5 a6 Z9 S$ w. T4 Tg_____2B7F
" I% m3 g% i/ E' p: b4 O1 Ah_____0F9C
& w8 H/ U/ r# i5 w9 G5 O# _i_____00FA
0 `# n6 O! d. a7 Vj_____5A50
- n6 J  a2 g5 r4 I# t% F9 D. l' S* o! dk_____2850
! {) g& |/ J4 {* |* ^l_____3E7B
' }1 t1 X% V' u( z( L( im_____71C5
& e& n! F. g9 D1 l4 n4 Y% e1 pn_____1FC8. m- V/ G5 H$ ]5 w% {: b( t
o_____74C1
  |- P5 w1 k! o9 {p_____5FB8
; q9 @9 u# W' _" Hq_____6085) Z) T( z# S5 w5 i. @; E! ^
r_____3AC4
4 m7 t5 q, |$ `+ e% y2 n: ws_____2F500 v, e* Z2 Q, V0 E
t_____36F8
& b7 Z9 v* O' c. h9 \( O9 Au_____70104 P% g# _6 i1 n. _& l/ H
v_____0B42# H, c1 C9 ~: H/ I. T5 @
w_____1C7A$ b/ T% J0 C. l& z
x_____16F8
2 B# b$ U* r% O( n* ?y_____2EE7
6 [. Q  ~6 p8 }: X0 z" ]/ Zz_____5CF3
8 p0 ?8 h& m3 l2 `: D' @!_____6233
4 h. ^8 W# @* I& o9 y) f9 n( x@_____3A45& h# z2 @" n- G% a1 M& U
#_____2291
, T" n, h/ `" ^$_____5D5C+ V8 S! J5 B# u' V
%_____09B9
* j0 H5 T3 g( Q; c, n^_____43EA  I/ q& l" z- v8 \& q5 z
&_____62B9) j9 o$ j' e+ m5 d
*_____6301! N/ D0 r/ `8 }9 }3 f# l
(_____4659. _" Y- |6 s4 V
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表