返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm# {6 ^3 z1 A3 K/ ]6 [8 `: d; t
原始出处:http://www.3ast.com.cm3 n6 @: x7 q- C( K' q
+ V" r2 X8 t* m" X
看不懂的直接绕过
7 \3 O3 t% [6 `5 ?$ p加密前为:hwy123456- m2 x3 m0 D) h- C  M; u
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E- J& @6 L# ^) \( u" R/ K  t/ z, I; o

* o8 M" D" F9 q; j: Y, f5 b# Z============================================: V& H' q4 P  Z/ |  g  i; c
上面是当时自己校内的心情。现在已经解破出来了,分享给大家) S8 J6 j" H  l% u7 N) ?
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
" V3 Y* a  F' p  \% Q  r以下是RSA算法文件
8 _7 k$ K, F: V
9 _2 F: B: t; i  d6 v: G文件名RSA.ASP& H' @- _9 y! Y4 d, u/ d
===============================================
9 \$ R  J. f/ ?<% 0 y! @5 P2 ?2 l  C+ H5 S
Class clsRSA 0 q* i9 b8 G: V6 t
Public PrivateKey
( p' _3 G- B4 \& ^$ vPublic PublicKey ) U; E+ Y$ }( e; n& ~
Public Modulus
# G% R7 ?* Z- I) V8 }/ QPublic Function Crypt(pLngMessage, pLngKey)
% m6 y4 M/ O2 [' P9 x! N$ f( }On Error Resume Next
) C- f5 c; C8 J! m; @Dim lLngMod
( z( p0 L) O+ e  Z& u2 u1 ]Dim lLngResult * T7 j: S4 N2 c# \# J1 @1 Z- {
Dim lLngIndex
' {. x  i* t$ b1 \( yIf pLngKey Mod 2 = 0 Then
2 F+ M: u. d0 Z$ AlLngResult = 1 : N+ F, Y: \1 \- {4 K+ L- C$ r
For lLngIndex = 1 To pLngKey / 2
4 L8 K" W# G$ WlLngMod = (pLngMessage ^ 2) Mod Modulus
/ }* ~  [9 k: l' j+ n' ^$ w6 F' Mod may error on key generation 3 ]- z( b! r3 p
lLngResult = (lLngMod * lLngResult) Mod Modulus
& D# E: ]9 m% S8 M1 D1 y- eIf Err Then Exit Function
8 c1 U7 b' K4 F! u3 |Next # o, F+ @. ?! }) Y. `+ o
Else 8 E! X! q# i6 H: J  K5 R7 b. A
lLngResult = pLngMessage ' v$ Y& y+ f6 D. `7 a
For lLngIndex = 1 To pLngKey / 2 " s% C5 t' l! j% D: Y/ L) u
lLngMod = (pLngMessage ^ 2) Mod Modulus
1 A" z+ Q  C) t9 k% SOn Error Resume Next
* S5 N: m; M2 ^' Mod may error on key generation
+ J7 [$ p3 S! [lLngResult = (lLngMod * lLngResult) Mod Modulus
  x- ~, g5 D/ W2 eIf Err Then Exit Function 9 ~0 c7 l1 L: S
Next 9 M) e: r& K( i* A
End If
' i3 x9 a, T1 ^/ ]0 d1 rCrypt = lLngResult
# ^4 f1 L0 n5 V; D- ?End Function" o% D( p$ B: `5 D
/ b0 o4 f; B  a5 G- ]; G
Public Function Encode(ByVal pStrMessage)
* z% Z7 G( v# E6 KDim lLngIndex ' i1 p# a& [$ s% _" x" y1 A
Dim lLngMaxIndex
, j( H& v3 f* P+ E- I. W% ^5 y! C+ NDim lBytAscii * `0 F* W9 j/ X& o: C; J
Dim lLngEncrypted
+ A, h# {; j7 olLngMaxIndex = Len(pStrMessage) 7 q1 h8 @9 ~  _3 r, T2 f
If lLngMaxIndex = 0 Then Exit Function
! g! B4 }: z+ T; _: XFor lLngIndex = 1 To lLngMaxIndex 7 Q+ v& ~6 j' w/ m! J  A) L  V. q0 r
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) & j0 }/ N7 T" e! b
lLngEncrypted = Crypt(lBytAscii, PublicKey) # |1 R( V+ h3 H3 t
Encode = Encode & NumberToHex(lLngEncrypted, 4)
( R8 d" c- e% oNext & K% v% [' P1 V; k& U. F6 M
End Function
0 d4 g8 v$ T/ h0 {& z  IPublic Function Decode(ByVal pStrMessage) 8 g# f$ ?* `+ E- v5 y
Dim lBytAscii ) g' q, K$ z6 z; y7 y/ `3 _
Dim lLngIndex
' a- E( Y3 b+ QDim lLngMaxIndex 8 J/ q% L3 s$ M5 I" Z! e2 D! D% t
Dim lLngEncryptedData
6 x, j0 C  J# ^  d3 cDecode = ""
6 x/ c2 c# t, w2 c0 M" S1 ilLngMaxIndex = Len(pStrMessage)
% G9 b; }' ]3 h( ?* K. g, ^& I- j0 |For lLngIndex = 1 To lLngMaxIndex Step 4
# {  `3 ~7 C+ z) U  nlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
$ I$ v) G2 \; f6 x6 M6 a& qlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! U) G. x. L& o! s! wDecode = Decode & Chr(lBytAscii) 3 @4 Z) i, Z3 t8 C# F
Next $ K1 P; G+ S9 T6 }. J3 S4 S
End Function
( p5 [0 s5 s$ H7 q4 vPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) , R1 R, m$ y' N! Z
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
) G% ]7 J* Z. |/ \9 N4 C4 {End Function ' G0 T* C9 S- d( T$ q- A
Private Function HexToNumber(ByRef pStrHex) , J0 t* L: N2 Q/ o% w4 C
HexToNumber = CLng("&h" & pStrHex) & h, u. c2 B6 \- t( o( R6 U- x
End Function ) t' O( }8 G7 j! m( n
End Class 7 C- l: O% U" b% I. u
function Encryptstr(Message)
' [3 p8 M- B1 v7 X2 v/ l4 eDim LngKeyE
) P/ ]0 Q3 e6 Z8 GDim LngKeyD
5 Y1 z6 ?8 H/ W( Q# F: gDim LngKeyN
5 K! o8 P2 q' k3 }Dim StrMessage
7 ?7 N7 t$ [  @( L: E5 E' k. kDim ObjRSA 3 e3 P% \  e1 M$ G3 ?
LngKeyE = "32823" 4 g: v6 r8 D) f9 x
LngKeyD = "20643" , h0 b  M+ S1 C+ f+ {. X* }
LngKeyN = "29893"
1 \) w, ~$ `2 P. VStrMessage = Message - l1 ]* U& V9 p5 P) l
Set ObjRSA = New clsRSA
4 [3 g6 a- u7 O9 bObjRSA.PublicKey = LngKeyE
8 ]+ ^9 C% h( \6 IObjRSA.Modulus = LngKeyN 8 j# j% X0 o9 M+ a+ C- E: t
Encryptstr = ObjRSA.Encode(StrMessage) / E  p% t4 h9 @+ n% Z
Set ObjRSA = Nothing
( c, \8 L6 A+ i' M& Kend function
+ z: h0 ?9 V$ O3 V$ }& I8 sFunction Decryptstr(Message)
  A0 h' M' i3 NDim LngKeyE 1 _4 U' E/ C3 |
Dim LngKeyD
' g' Z6 e* D) P7 b7 t" w2 eDim LngKeyN . ~# `/ o% V) @, b
Dim StrMessage
  T+ g$ y* J2 V! {  x* sDim ObjRSA / Z. |, `: @  Z# Y
LngKeyE = "32823" 3 }$ [! g' |2 }- O; d& k
LngKeyD = "20643"   _8 U& q( ~% p+ r: N. d. x4 N  U
LngKeyN = "29893"
/ N/ f! \1 p$ T0 c1 KStrMessage = Message
2 a$ H6 h9 t$ e0 ]% ~, ^Set ObjRSA = New clsRSA
, M$ t1 e9 R8 _/ RObjRSA.PrivateKey =LngKeyD ( i. Q' X. C0 d, i# M5 U9 ]  ^
ObjRSA.Modulus=LngKeyN
7 r( D) `  x9 U* w! w3 n$ G+ G: Adecryptstr=ObjRSA.Decode(StrMessage) 5 j/ ?' Z" u  ^! H+ H
Set ObjRSA = Nothing
+ E1 j2 M% |1 [+ ?& g! q. i4 rend function
' l' Y" r6 B1 W/ n- G0 e* h1 K/ d: e%>
+ }, s6 F6 j# x$ P===============================================/ c) Y' A, g0 W

3 e" e4 F# B1 l& l7 O; M还有一个用于测试这段代码的test.asp2 T5 v7 ?2 o- }5 i0 K+ W. K
有兴趣的自己搭建个IIS测试下
3 Z$ ~2 `/ K1 S  \0 T' X<!--#INCLUDE FILE="RSA.asp"--> * F8 s% B/ C+ F; |  f, t# i: z
<%6 G5 O3 }1 y. m% E+ I+ n
function Encryptstr(Message) 2 R( _( `0 Y1 p+ R3 j
Dim LngKeyE
" j: o9 G0 K% F1 N' ZDim LngKeyD ! ]- N8 r; A& ^. J1 O1 U
Dim LngKeyN
6 u4 Q3 X5 t" q2 P& EDim StrMessage $ w3 w9 q9 k; _
Dim ObjRSA
0 V. Q3 n' I' T5 jLngKeyE = "32823" 6 M% H# S9 Q+ ~5 Z
LngKeyD = "20643" 7 ]- g" @. V0 ?! q" I
LngKeyN = "29893"
# t( i2 D# L, w4 u9 mStrMessage = Message
1 v. f' E0 i* m8 X5 qSet ObjRSA = New clsRSA - o, G8 w5 f9 n) W7 u9 \: `5 C0 m
ObjRSA.PublicKey = LngKeyE
0 g# ~3 c7 u7 o" p2 w6 [ObjRSA.Modulus = LngKeyN
" ^& m+ a6 ^2 ?, H' ]; @& @3 kEncryptstr = ObjRSA.Encode(StrMessage) 1 H, W7 P( g7 I% r
Set ObjRSA = Nothing ' z  ]- Z& r8 y1 g
end function $ ?& Q' N; ]1 p9 }8 z; O
function decryptstr(Message)
- ]/ O3 M* @8 w4 w* P0 BDim LngKeyE
; H) _+ A! t9 l# P, g( B2 BDim LngKeyD
* {% R2 F- b4 ?Dim LngKeyN + z# B9 Z' v9 u# u# D6 Q- \* ?1 [7 s
Dim StrMessage
. J9 {5 j% S! _8 y& t& a% v7 aDim ObjRSA
  H5 H/ ?' A9 |LngKeyE = "32823"
% t, V0 G( j/ VLngKeyD = "20643" 8 ?+ r1 ~8 o# X  H9 j. X/ K/ _5 j
LngKeyN = "29893"
% j0 W- R' [8 I  ]StrMessage = Message
# X! Y1 x0 z% W' a$ P- k$ O5 SSet ObjRSA = New clsRSA
9 {: e3 x0 Z! B- g+ G$ S& M' X1 gObjRSA.PrivateKey =LngKeyD 7 }& N. u# h( L+ a# C( f$ h
ObjRSA.Modulus=LngKeyN % x# h2 M; z( \7 Q' t( w3 G( j
decryptstr=ObjRSA.Decode(StrMessage) % ^9 ^) p) h3 x
Set ObjRSA = Nothing
1 P8 D. B; ?9 j+ Fend function # ~, r) K. t* e5 `; q
dim last,first
* z5 K& n9 |' D' L" \6 H2 Rfirst="!@#$%^&*()"
' C, l& h$ I! u( RResponse.Write "加密前为:"&first
/ A/ q3 d4 q) D( vlast=Encryptstr(first)
' U/ f) c- L& [' ?. KResponse.Write "加密后为"&last
  j8 ]3 R3 V) d9 P5 WResponse.Write "解密后为" &decryptstr(last) ) w0 k% \4 v, S
%> ==============================================
4 D  C) a8 `- }剩下的就是字符的对照表了
/ N3 {# t0 w4 e6 L===================字符集================, Y, K& x( t3 B
1_____6EBB, k$ z- {$ z! A- E, G; s
2_____5C1F
( @2 }" _4 I+ v* `0 p& Z0 l3_____4D75( k6 i6 M7 _/ c( F* V0 D8 B0 e
4_____26CC
# P# L" i1 o& [7 \$ \6 p5_____4F889 l+ P% Q) o0 x2 |1 N9 t2 c
6_____3F4E' c; u/ M1 K. G4 N2 d
7_____0A9D1 |4 e# Y) Z) C! Z4 K
8_____1A1C& b0 Y; t. w8 Z8 c6 I* O9 z
9_____6D20
. M% `: E, R5 h/ ]2 m4 B. z( L0_____1089
4 F, e5 E- A1 E9 l9 E: n7 z9 j2 s% d5 ^a_____0F3E" i1 O9 s/ b( y& s* @1 A! N
b_____3159
, K& s& c0 r/ d  jc_____3517
! f: O3 }+ d. c$ fd_____419C1 m7 B, g/ s$ N1 o/ n/ A' {
e_____615C
- h4 p: |( m. E1 M/ \* N% l) N! xf_____556F8 X: l: Y+ X( ^) Y: e* |
g_____2B7F
2 x% W: H  \3 M7 n2 Nh_____0F9C
( @: J. s8 H" p- ^9 e" ~i_____00FA/ w: b3 _" m- Q* |: L8 `9 N, a. z% G
j_____5A50: |# ]( }0 a7 K3 \- A8 x' q# a; m/ L
k_____28507 v7 e+ L. \5 w  C
l_____3E7B
& U0 o8 j0 ^" a1 E; B4 pm_____71C5
! M' y/ y, M1 B& Tn_____1FC8  v" S, m$ \1 R9 E
o_____74C1+ o& E5 F# @6 }0 F: r$ f. e0 }
p_____5FB8  x' D. x2 o# a1 ~1 T. M' M
q_____6085# O) ~5 n9 h2 w: V8 \& ^+ V7 Q
r_____3AC4
* i% |, I  H; l: ys_____2F503 W. I+ J) i0 `+ b1 c$ E
t_____36F8
0 B; {6 K/ N5 w) b1 s* Yu_____7010
+ J. r, w6 p. A8 p8 v8 B- _v_____0B420 Z) U3 A+ x- m8 \6 A( P
w_____1C7A
, Y' M8 K/ i/ ]" z& p2 k. N/ Nx_____16F8
/ ?8 h0 t/ N8 X, J3 j% q5 ^5 Oy_____2EE73 ^& a4 x4 l$ c* r
z_____5CF3+ @  u0 D3 z9 _( \
!_____6233
3 a# K" {1 |9 z) M" G( @@_____3A45
4 N7 V; `# ?, Z4 ?! J5 i#_____2291/ Q! T* s8 x- P  Z2 l
$_____5D5C
' \: v, V5 s4 U; g$ K%_____09B9" |7 F7 N, b9 y2 U9 I3 j
^_____43EA
, C' d% L$ g5 f8 T( w' s&_____62B9
/ I0 p/ ]) b$ H*_____63012 H8 P; _" |" I- r' [
(_____4659
2 V( t2 |; n; |) W0 f: j* p' E)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表