返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 e2 ]) j' V1 Q. x
原始出处:http://www.3ast.com.cm. D! T: l4 Y3 E  Q

1 G* m* L; [# T* ~5 t; z5 x看不懂的直接绕过; B/ z0 |7 O, p
加密前为:hwy123456- W$ H5 |* b9 p# I/ ^8 I
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E! O  u# k/ ]& n# R6 [8 o7 y
3 F, P' e$ r4 l5 I
============================================
; ~% H, `6 h% a6 Z# w4 \- ?上面是当时自己校内的心情。现在已经解破出来了,分享给大家
- W3 U7 t: U# T4 q/ V0 b' ?" h8 M: W) s也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% b, {+ l% O2 K9 U0 t
以下是RSA算法文件1 M- M2 L& F9 X
1 \' R$ m- x- ]. B1 f
文件名RSA.ASP
0 U3 c& ]- k. i6 X===============================================
* @8 x0 o( q' z& p/ b7 O<%
* O2 R4 V& c4 j% A7 e+ }Class clsRSA
  k  g3 y, w6 x% u6 zPublic PrivateKey % J; `: t( N  y3 p- c
Public PublicKey + Y/ }: L+ X% s6 B8 y6 Y7 M
Public Modulus ! B$ ]/ E! P6 G+ \
Public Function Crypt(pLngMessage, pLngKey)
' B6 c% ]) {! m" ?! T9 yOn Error Resume Next # F% Y2 `# o4 T2 q/ V: \
Dim lLngMod
! u1 V' }4 l2 z: n) F% ]- \Dim lLngResult / c" z$ Z: d2 g; J6 X
Dim lLngIndex
2 O) w: [0 g, L# i! _If pLngKey Mod 2 = 0 Then ) c9 e- c" {5 [( D
lLngResult = 1
# Y  i6 w# N* T) B$ k$ XFor lLngIndex = 1 To pLngKey / 2 . }+ U, O* A6 j7 ^: {: c
lLngMod = (pLngMessage ^ 2) Mod Modulus 6 r9 D( {+ ^; f8 P% o
' Mod may error on key generation
# `4 c6 A8 y- u1 @: clLngResult = (lLngMod * lLngResult) Mod Modulus + w3 o* [/ S4 S. C
If Err Then Exit Function
% e" F8 a% m  X) D! K7 xNext
/ w/ G9 ^9 `& X- p. \- BElse + T5 F0 w4 T. @& K/ R3 Y
lLngResult = pLngMessage
  r1 L- M: K( P8 [$ B* AFor lLngIndex = 1 To pLngKey / 2 0 w, L; a6 c2 ]; ?7 V8 F
lLngMod = (pLngMessage ^ 2) Mod Modulus
% @0 j4 w! d/ \0 c! ]On Error Resume Next * v9 t) B( F" @8 j# n8 U9 ~
' Mod may error on key generation
! E$ ~' X! j8 s7 v* |- xlLngResult = (lLngMod * lLngResult) Mod Modulus
, M; H) V0 T; P$ ]4 G7 qIf Err Then Exit Function
7 A4 H* B6 {& i) n$ N/ o5 QNext : l) c7 \9 v% A- t$ \7 U
End If
  w- m' }* I, q9 q' vCrypt = lLngResult
- h: {, U0 }1 u7 xEnd Function6 W+ ]2 t/ ?  h6 h

- {, O6 e5 s8 n! w% E7 PPublic Function Encode(ByVal pStrMessage)
* L* D3 q- Z" H) k. \( ^Dim lLngIndex # w' [  _: E. R! S
Dim lLngMaxIndex
1 T: n& g8 j$ W9 }4 f" m% a- zDim lBytAscii 4 q& q  J0 z" @" X9 a0 W3 c* {% \. I
Dim lLngEncrypted
. T5 z9 a8 w9 M# `/ {. h1 ~4 elLngMaxIndex = Len(pStrMessage) ) e, U( l5 s( u6 n/ P5 |& K; x
If lLngMaxIndex = 0 Then Exit Function , @3 V" n( E8 \, I; x
For lLngIndex = 1 To lLngMaxIndex
) y9 I# S% K+ m* L; m$ l4 GlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 3 ~% c* K$ ?& f2 ^% l: X1 m
lLngEncrypted = Crypt(lBytAscii, PublicKey)
9 f+ O- t9 m) A" k7 |Encode = Encode & NumberToHex(lLngEncrypted, 4) ! Y4 {4 x# [. N& g+ ~  c. a
Next + C1 X  G" v4 A" Q- n, l- u1 _
End Function & N, Q" l' G$ Q( m
Public Function Decode(ByVal pStrMessage)
: [0 C, @7 k% m8 U" b7 _0 M, ODim lBytAscii
6 q% P4 X" o) m  H- k( d5 gDim lLngIndex
9 J4 I$ r/ Q7 Z0 }+ l3 nDim lLngMaxIndex - A9 o2 Y; o% Y: \
Dim lLngEncryptedData & L! }6 r5 I% X
Decode = "" 0 c: m3 U* q4 Z% M4 F9 i
lLngMaxIndex = Len(pStrMessage)
% D& p3 p; V5 VFor lLngIndex = 1 To lLngMaxIndex Step 4 0 r, X6 s) ]: q7 P$ N" s! s
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- k: p6 J5 z& Q* p/ G, j! u9 UlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ! _$ ^: }7 ?7 _2 ~$ n
Decode = Decode & Chr(lBytAscii) 7 A1 k# _- L6 e4 N' `+ U  e
Next
! C  Y" r7 ^7 gEnd Function 6 Q- V8 V( G. n8 K5 v9 A
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 ], W, {5 _+ w) k& M: M/ ~' @( E
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) : @- I3 v+ g# N
End Function
9 v+ s/ i/ P! Z4 ~! iPrivate Function HexToNumber(ByRef pStrHex)
5 g6 g: H' h/ @, K# yHexToNumber = CLng("&h" & pStrHex)
6 j9 `# P* ?" L6 H7 YEnd Function
% |; a8 k/ x# H& ]2 i; Z5 rEnd Class ! P7 l1 @' C$ N" A8 S+ G4 ~
function Encryptstr(Message) 4 x9 b( `. H; U3 z* A
Dim LngKeyE
- s& E  z/ M8 cDim LngKeyD
! T2 C7 n8 b/ k, lDim LngKeyN # B  v# A) |6 x+ k& }- q; E
Dim StrMessage 6 ?  e2 V% S/ z0 c6 `8 v6 _. A
Dim ObjRSA
6 |; M- c1 ^1 l- n: l  ZLngKeyE = "32823" 4 |! |' T8 e( H  _% n) ^! o
LngKeyD = "20643" # |" u' I! u8 A6 D$ `
LngKeyN = "29893" 3 u+ i$ c2 `, q% I! `' ~3 _& [
StrMessage = Message ) ^4 \$ _& m7 ^! ?3 f4 B
Set ObjRSA = New clsRSA , {' r$ ?5 Q& H& a  X
ObjRSA.PublicKey = LngKeyE
+ x2 j1 i% i) r; y, T+ r! TObjRSA.Modulus = LngKeyN & Z$ P$ r$ a. K7 t7 X9 ~
Encryptstr = ObjRSA.Encode(StrMessage) # G( N5 W& F! ~/ E2 a
Set ObjRSA = Nothing
9 V2 S0 T0 s: i) ~end function6 G5 r8 T) g; d
Function Decryptstr(Message) : l* ~) U/ U; O7 U2 e  s6 N
Dim LngKeyE $ z$ b9 M' W, X5 ]& d6 p' a
Dim LngKeyD 7 S  N+ {; i6 |. O8 @
Dim LngKeyN 6 K$ C8 i7 l) Y" @3 H8 S
Dim StrMessage
( N) }5 Q3 ]$ f' HDim ObjRSA
- ^; H4 R. p5 v  ?: k- e. ~5 bLngKeyE = "32823" ) B% K$ k( l) q; c* y: Z2 x
LngKeyD = "20643" 2 d% W4 Q1 j- {2 W$ v! |
LngKeyN = "29893" # }: C$ E. n0 b4 s2 [% a5 J
StrMessage = Message ' F2 d0 N/ w7 k, }
Set ObjRSA = New clsRSA - B  F+ I  l* ]8 l  `: f
ObjRSA.PrivateKey =LngKeyD
4 E+ g) d# ?; Z* f! k; q7 QObjRSA.Modulus=LngKeyN ( v5 A: n5 G  P2 U' l( p" x9 {
decryptstr=ObjRSA.Decode(StrMessage)
% Z8 W4 F& T: `9 ]9 \  |Set ObjRSA = Nothing
* @2 \  S1 _2 J5 {end function & |  K. f+ }6 d
%>
3 T# k: f; k, l4 t0 J===============================================4 ?3 d1 O0 e5 Q0 W8 M

4 W* f6 o% I) J( m还有一个用于测试这段代码的test.asp
5 A3 s2 t: T- V8 f有兴趣的自己搭建个IIS测试下
1 E/ J+ e& k7 D0 v3 t. n4 a0 E<!--#INCLUDE FILE="RSA.asp"--> * w- M5 T" H2 g8 x3 I) N
<%$ A6 f9 n4 ?$ H& ]% b# M: S# x+ ]* a
function Encryptstr(Message) 9 r& Z4 W1 L& j: ?# S; v
Dim LngKeyE
1 ~) F. f1 Q# l" _9 ODim LngKeyD 3 l& `+ x1 c- y
Dim LngKeyN
7 X+ Z3 J7 T, I" [Dim StrMessage
2 W* M, M# j  @2 R! Z3 h  G! ZDim ObjRSA 2 V; d4 s! E% H) h5 b( g5 p' i' E
LngKeyE = "32823" 9 r, b9 r8 D1 ]5 |. P4 t" R
LngKeyD = "20643" ( p5 G1 U( p0 B& c' |% T9 C
LngKeyN = "29893" 3 D2 |. r8 E) Z0 q( {$ I4 D
StrMessage = Message 6 Z. ^( Q2 Z! P9 U4 Q
Set ObjRSA = New clsRSA
; \% @8 e9 l0 p% X8 U- l4 [9 Y# YObjRSA.PublicKey = LngKeyE , S; q! y" ]2 d; M: M4 T$ U
ObjRSA.Modulus = LngKeyN 8 z) g0 S& n' A  Y+ E
Encryptstr = ObjRSA.Encode(StrMessage) . W& M1 M& A- A$ r/ z6 C0 |1 j
Set ObjRSA = Nothing 1 E3 ~0 R+ E2 n8 W* ]" k* Q
end function 0 ]% D$ f# Q: B# a$ E, A9 c" [: R
function decryptstr(Message) % N5 @8 i# a9 e) W# Z7 ?
Dim LngKeyE
) F" H" G$ m8 Z6 P/ r1 CDim LngKeyD
* s7 c4 w+ w0 v' r9 g9 ?Dim LngKeyN
2 Z% _" @1 C3 z% R" z7 wDim StrMessage " o6 M! S2 c+ n6 x# \( K
Dim ObjRSA ) g0 b7 ~1 Q4 Q8 g& O
LngKeyE = "32823"
- ?* w$ S7 k# Z( a8 DLngKeyD = "20643"
1 O5 s% k. f/ T* V6 _3 L* TLngKeyN = "29893"
+ b' b9 U# X5 \: X( NStrMessage = Message
* r( s$ r  Q: |5 zSet ObjRSA = New clsRSA
4 n6 e& G. V8 s: K2 J2 M0 }2 vObjRSA.PrivateKey =LngKeyD
) j; k+ \/ A3 t) K* f% r+ CObjRSA.Modulus=LngKeyN / \& O) M& i& d, Z
decryptstr=ObjRSA.Decode(StrMessage)
* a2 P) y# {  f5 vSet ObjRSA = Nothing # }- F3 O6 A! p& x
end function
  V9 J' u4 @) I: [- v. Q3 qdim last,first 9 t* u: o1 Z3 C1 o* Y, E
first="!@#$%^&*()" 8 U  b+ r/ D& r) S- x7 q
Response.Write "加密前为:"&first / i. ^, V9 o% T" n
last=Encryptstr(first)
- k3 [- e  @& i0 O8 WResponse.Write "加密后为"&last
: N: G. q' c# g" ^$ Z8 IResponse.Write "解密后为" &decryptstr(last) 5 [$ e" ^9 V4 T+ B
%> ==============================================
6 n/ i" P7 f7 n' |' L7 `# A剩下的就是字符的对照表了
$ E5 J& C5 `! c1 W1 q. C7 Q1 E===================字符集================
! R8 \! I" D: B. i0 H$ ?1_____6EBB' h- V. U0 N6 S9 `' h/ c
2_____5C1F
  G6 U& R" q; c5 ~- F3_____4D75- n5 d+ \, Y6 P
4_____26CC; H' _$ w- K$ _( d3 M6 V9 X
5_____4F885 l( E& x4 [" Z
6_____3F4E
  M; O' u* Y/ M+ ~+ b7_____0A9D
$ o- l2 b2 ~3 m9 b2 a8_____1A1C
- H$ n& s& j. j- Q4 F9_____6D200 V" k$ v. W+ i7 y. A
0_____1089
; a% s7 n0 w8 Ma_____0F3E
1 t2 E  o6 E4 U2 {8 e8 t* Xb_____3159
' f7 j: v) X8 r6 x3 Q1 ~c_____3517% r* q* r" ~& q  k0 M4 _0 K" @: M
d_____419C+ L" Q  c# y. m/ `, H2 p
e_____615C. O5 r9 x  _2 w7 I
f_____556F
* x* i/ [2 B2 w/ F+ fg_____2B7F
& `% F/ S% Z  m/ p. W1 sh_____0F9C
0 Y  V3 g& ^# E; T7 ^, Y$ k' Wi_____00FA8 a7 }7 c# I% v% m0 _! [
j_____5A50. E* m6 Y4 x6 l4 g, D7 L
k_____2850# ^+ x# T, y8 c9 ]! c
l_____3E7B
# ^4 U- f3 ?- Mm_____71C5/ v4 e; m& ~* C7 `4 p! Z
n_____1FC8
, X" ^3 Y/ I! ~4 No_____74C1
% Z6 m& }2 R+ k" q0 l) d1 Up_____5FB8+ p. U6 k$ Z7 A2 E- a& [; P
q_____60852 Z8 B3 M: u; j9 z& \4 j$ Z! `
r_____3AC4
% h& Y/ |) M  n( b; Ls_____2F50# S2 ^/ w, D3 O& c6 O
t_____36F8
! \6 F! v5 p: ~1 q1 H0 o2 [u_____7010! S" o, W; @/ T3 b- c6 ]% _
v_____0B42
2 I. h1 o- D0 g/ sw_____1C7A1 w5 ]% d$ g) F$ {* m, n# K+ ~- a) k
x_____16F8
) i$ h4 B: W5 b; P$ [5 x; O4 R4 q3 Ay_____2EE7& R/ x9 h! w$ T! r9 {9 Z, O
z_____5CF3
0 z: X) ?! Y2 Z1 T0 ^: ?$ k. R7 K" T!_____6233  e+ U' P: T" l" ]  X
@_____3A45
. u8 `: P3 I6 L( x/ M# B# K. f#_____2291' R! s6 B) {% e( t# F7 i. p
$_____5D5C' G$ T' p+ O7 b1 R
%_____09B95 E0 {+ T. [0 u# D9 K
^_____43EA
$ j3 S; }2 Y7 `% a3 m5 R: F+ ?&_____62B9+ H6 X: |5 P+ Y9 P
*_____6301
/ o" a1 ?% ]+ E! T+ w; v(_____4659
) z% t  x( s% d$ q& E)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表