返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm/ I9 L: Z- d+ L# @) z
原始出处:http://www.3ast.com.cm+ e- M: D3 u7 \% d9 v6 l

: M  d  \0 _/ l  L6 w  x" Q看不懂的直接绕过& e) s# |' |! S& F+ @7 H3 W6 e
加密前为:hwy123456. A/ ?1 d' \8 Z9 s) m
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" G9 z- J/ I7 c. J  I! Y

9 v; _3 c& [$ D+ l============================================
4 j/ t' Y$ }+ D& V; d+ O$ ?& \上面是当时自己校内的心情。现在已经解破出来了,分享给大家$ q/ _, M% f8 N! W0 w1 C8 f
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法6 [3 A! i0 v/ R1 Q3 B% b
以下是RSA算法文件2 s1 H% ?  A/ B7 @5 K
  L1 J( G5 x/ H- i. o8 i- @" G
文件名RSA.ASP
" G6 X$ D3 ?. ?+ ]; G" \$ ^0 B( t===============================================/ C! q7 p/ L" T8 f2 ^
<%
1 A" q7 T- m' g$ H4 `Class clsRSA
8 |' u4 M) q/ \+ [8 QPublic PrivateKey / c! z: ]8 [  j8 y: K
Public PublicKey
& S9 w) @; B: F$ t  ]: EPublic Modulus
- l8 Y  d1 V3 s/ S8 v; h: t0 E5 A8 V1 bPublic Function Crypt(pLngMessage, pLngKey)
1 o. L/ S3 y- N8 G+ a- oOn Error Resume Next 8 j$ w! J# C4 ~+ a* }- O/ f
Dim lLngMod
$ y  G5 g- t0 G2 K* ~( M# IDim lLngResult
* o% O% T1 h( t( d! h& hDim lLngIndex # J% E2 z# d, H; J
If pLngKey Mod 2 = 0 Then & h. V; [% i+ H" W
lLngResult = 1
+ g$ [0 w, {3 d7 E( FFor lLngIndex = 1 To pLngKey / 2 $ ^9 F, R+ a$ \' d1 V
lLngMod = (pLngMessage ^ 2) Mod Modulus
& p! S; _! R1 M' F; X' Mod may error on key generation * r" ]1 B  u6 x4 T7 N( p
lLngResult = (lLngMod * lLngResult) Mod Modulus ' C: O1 m- {" O- t0 h2 ~% {# T
If Err Then Exit Function $ v3 e2 ~9 r! U2 W/ s4 ]4 T' I
Next
( a" Y: C7 |, B, i) AElse
3 D( J- d8 S; B; _2 I$ d: t! OlLngResult = pLngMessage - E8 F/ @: o& |! S
For lLngIndex = 1 To pLngKey / 2 / {9 k) G4 a5 d2 n! c
lLngMod = (pLngMessage ^ 2) Mod Modulus 9 E' k' W  c) W* @0 y+ q) l& U
On Error Resume Next
, h( v- {. o% o# r; j' Mod may error on key generation
8 l/ j% M7 _8 ~  nlLngResult = (lLngMod * lLngResult) Mod Modulus + o" V. Q- a; m
If Err Then Exit Function
: F) v% w8 j1 H; P: P0 `6 cNext
9 d3 a8 ?/ D, i0 G, m! F* qEnd If 4 K" G5 e, R8 V: O( m+ Q( [
Crypt = lLngResult
9 Q6 H& T3 z+ T; z' E8 b! SEnd Function
$ k3 l+ D# b7 ]9 N8 x& J' r% x4 E- }+ K1 s8 j/ O) f
Public Function Encode(ByVal pStrMessage)
7 W# t1 U# I5 CDim lLngIndex : e+ @$ ]/ [* A3 c' c9 i- |* k
Dim lLngMaxIndex
) e# I2 b$ G! |/ NDim lBytAscii
7 ~4 k# ]1 I8 T$ ~Dim lLngEncrypted ! w6 p- d  |: h
lLngMaxIndex = Len(pStrMessage)
) J4 ^0 y- I4 N. E( ]  NIf lLngMaxIndex = 0 Then Exit Function ) w% u8 f1 `$ f: c1 A
For lLngIndex = 1 To lLngMaxIndex
& @& U1 M3 k. A$ mlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
* }/ Y# Z. Y$ J: SlLngEncrypted = Crypt(lBytAscii, PublicKey)
& v" w0 Y% F& s1 HEncode = Encode & NumberToHex(lLngEncrypted, 4) ) m4 {3 h5 S& C( m8 [" v
Next 0 {4 G' ?. h9 @
End Function
, b6 @6 M4 [' V9 `2 {7 vPublic Function Decode(ByVal pStrMessage) 2 o' ^, @7 B: J" q4 X- j6 t8 J" s
Dim lBytAscii
# ~' C1 Q: @4 }& C2 kDim lLngIndex
$ S- J2 |2 ]) S2 Z/ r3 R7 a9 DDim lLngMaxIndex
- M, K- q+ v9 l% T1 Y5 K' ^0 a$ CDim lLngEncryptedData
0 W- Z7 h& x9 z0 z7 `( rDecode = ""
6 x/ G4 o  }1 YlLngMaxIndex = Len(pStrMessage)
, Y: |/ z+ o5 C6 w0 f: nFor lLngIndex = 1 To lLngMaxIndex Step 4
# B% i8 m* c" `/ GlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) . C& W2 Z  |$ B: J+ N4 V) e4 S
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
( \0 a. W: G8 H* H7 T; hDecode = Decode & Chr(lBytAscii)
# `- [( u2 y3 }& Z/ K6 \Next 1 u  o+ E9 Z  ~1 L; p; \
End Function
4 c/ m4 ^2 J: x% ?8 ]$ _/ dPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 3 ]6 P& N1 R9 V2 D# d- O( G
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) - r/ ?* M' R/ I4 C2 P9 z
End Function
) \, P& J5 G* j/ x0 C/ M1 CPrivate Function HexToNumber(ByRef pStrHex) 9 p' X& _" L% G" x8 d$ }
HexToNumber = CLng("&h" & pStrHex) 8 `4 k+ }! }  Q" N
End Function
% Y* L6 Z9 ^: M0 G# r+ hEnd Class
7 V* S7 }+ E) Zfunction Encryptstr(Message)
: `2 Z7 {1 N2 X6 k/ I2 XDim LngKeyE : |* i6 ~$ @/ ~4 b, T
Dim LngKeyD
6 S% X! y- w4 V4 b  {Dim LngKeyN / p, P4 v& ~4 _: Q: e
Dim StrMessage ! O/ U5 V- k( }1 m5 A9 F, U; l
Dim ObjRSA
3 p. u' P1 N0 s+ f8 V7 ~5 Z- TLngKeyE = "32823" 1 |- B& a* z; L2 [
LngKeyD = "20643"
  T3 x$ ^5 {6 V9 V  d5 |LngKeyN = "29893" & d9 d0 t! I% [- h
StrMessage = Message 3 f8 D! P4 E: H, H7 ?! U
Set ObjRSA = New clsRSA - g* U8 H; t% r4 @5 [; t
ObjRSA.PublicKey = LngKeyE
& J- A: \7 g4 P  M- y0 ]  }ObjRSA.Modulus = LngKeyN : K. Q) z$ \7 T, Y
Encryptstr = ObjRSA.Encode(StrMessage) 3 ]3 Q' K" g7 ?3 V% h/ \+ {
Set ObjRSA = Nothing " ?  P, f( s; L4 z' B8 |: K# y, w
end function
$ T, }0 n# Q. I8 S, p2 R! g: gFunction Decryptstr(Message)
4 ?( V; e: ?) }Dim LngKeyE - K6 ^% l. @; Y
Dim LngKeyD
/ u. o3 [( e1 y+ A. qDim LngKeyN / A" _5 X* b2 X% v" O9 W8 y7 W
Dim StrMessage " _/ K7 o/ B; K4 y; |
Dim ObjRSA ) ~+ [! Q( F$ `( o$ o: ?" D: [
LngKeyE = "32823"
$ G  a3 K$ }1 @4 }; l7 b0 {LngKeyD = "20643"
7 k4 |9 J3 t9 i; `  q3 lLngKeyN = "29893"
/ @( I* k9 ?& x4 HStrMessage = Message
, B3 t! T! X( C$ `$ [/ ]Set ObjRSA = New clsRSA
0 {  a) }0 g! j5 Z5 z$ D4 m+ p1 cObjRSA.PrivateKey =LngKeyD + F$ I8 z9 z9 H) p
ObjRSA.Modulus=LngKeyN / i! w1 U6 k; t2 R8 ^
decryptstr=ObjRSA.Decode(StrMessage)
" _- W3 E6 C' h( l7 g6 @  c) ~Set ObjRSA = Nothing % T+ ~0 B. S/ ^2 M0 A, \; v
end function : {% S. E3 K7 ?2 e
%>
% K  P" D& C$ h7 y' {& l===============================================
- ^& o$ g- G& l4 |# J* n* \, B' ^
还有一个用于测试这段代码的test.asp
& u5 M# D- V& [- n1 U0 X8 F有兴趣的自己搭建个IIS测试下7 G: I9 }" u* e6 }9 c  Q
<!--#INCLUDE FILE="RSA.asp"-->
% ?2 _9 _  K, W$ ]7 l, g<%; p/ P" U# S4 ~" k6 s
function Encryptstr(Message) . u+ b1 _, @( R" i" Y5 T' |
Dim LngKeyE
7 `. Z4 m# |1 jDim LngKeyD
/ E' J& X6 v4 V6 oDim LngKeyN
4 U5 `. b% [$ x: P% l8 I8 `* UDim StrMessage
, W& g  E9 l7 WDim ObjRSA 0 {! ]; Z# Y& H& c
LngKeyE = "32823" : N# z+ ~* p/ c! [! O7 `4 d
LngKeyD = "20643" & g- W, k4 c# A. k
LngKeyN = "29893" * z. T, N! t4 f( p
StrMessage = Message
" T. s" N# Y- L) A6 xSet ObjRSA = New clsRSA
( @+ a8 k, q. r* y' M. S' ?, c# PObjRSA.PublicKey = LngKeyE 6 ~' J) D6 e0 d, p2 P5 n/ V
ObjRSA.Modulus = LngKeyN
, F* J% e7 H9 ]- `, {  dEncryptstr = ObjRSA.Encode(StrMessage) 8 T+ V9 N: _) b/ X$ g: ]7 p' e% n+ c
Set ObjRSA = Nothing
& ?0 s$ z2 w2 N2 o* f9 jend function & L) P  U) X* H
function decryptstr(Message)
, i) m% }( l% p! [* N+ pDim LngKeyE
! c  \. f; [; a: s0 d; ODim LngKeyD
* m3 e7 D3 N: J1 wDim LngKeyN
9 s7 ^* c1 y3 ~- hDim StrMessage 2 E  u; \4 R- _. ?1 Y' b' g
Dim ObjRSA
2 C, Q3 h4 P9 {6 j8 tLngKeyE = "32823" $ ]6 y, b) x# d
LngKeyD = "20643"
9 d" n$ z2 }5 X; K; ]; YLngKeyN = "29893"
% b/ ?, v5 d9 V. E% k+ kStrMessage = Message
9 U  N8 a9 p. oSet ObjRSA = New clsRSA # x9 z! ?( W6 `" @- t( ?
ObjRSA.PrivateKey =LngKeyD 2 u# M% ~1 R. n) u
ObjRSA.Modulus=LngKeyN
8 ~. Z9 a4 X' Qdecryptstr=ObjRSA.Decode(StrMessage) ) x! G( u5 Z1 z5 e% ?! b
Set ObjRSA = Nothing
! k4 P* n/ i! N& k2 f+ Q1 Yend function : P9 N! Z0 T2 m4 ?( x! e
dim last,first
+ k$ \: k) q# @first="!@#$%^&*()"
+ a/ [- ?( J, N/ i# OResponse.Write "加密前为:"&first 1 J: K% ^2 K( T- B
last=Encryptstr(first) & T. c% p' B4 O' M
Response.Write "加密后为"&last % K2 @  B% [5 Z$ T
Response.Write "解密后为" &decryptstr(last)
0 X) p7 c3 q1 q$ H+ Y1 L%> ==============================================
, M6 E- d* {" w4 y2 H剩下的就是字符的对照表了& U2 e7 t. A& }* M
===================字符集================
7 G  P4 g' a, p( B. a3 q1 @9 s; k1_____6EBB5 ?( W: y9 M3 }
2_____5C1F; K; [8 \+ h+ W. _1 s* m0 D+ Q
3_____4D754 {$ D0 n# W/ }9 }% S+ k+ Q
4_____26CC
  x; y" ]7 Z, P* a9 Y5_____4F88/ l. U) J4 `" S2 y9 n- O! o6 ]9 l- P( G
6_____3F4E& z, X! j) f) V* g
7_____0A9D% _1 L( G3 [/ F8 u0 ?. P: T
8_____1A1C) r6 n/ b, F( R8 Z  B2 p2 L% R
9_____6D20% n0 H' F" \# {: _
0_____1089! K$ ]* x0 B, Z+ j- [  U, f6 T
a_____0F3E# m/ t$ g$ j4 q/ l) M' Z% F
b_____31591 M4 m. Y' h+ ^2 d- Q! V9 I
c_____35171 X+ ^# b, L7 H$ c3 A
d_____419C: D/ B1 X% Y9 i6 R; k+ i6 I3 }, L9 N
e_____615C3 q* U( |8 X0 Z
f_____556F- S5 V7 u: r' z2 b. m1 G4 y' R
g_____2B7F
/ b  R( i' K  ^! Zh_____0F9C
: Z$ t; J# z' h: l" l* V$ Fi_____00FA
* q5 U# u; f1 R5 [. C- {j_____5A502 w4 G/ v4 D" j3 C
k_____2850
! M/ z! ]. ?' F& ]# M5 rl_____3E7B) M4 n% \" j; B$ }8 ^
m_____71C57 Z% l* C1 d4 d
n_____1FC8
' C& A" ^  D, N) w3 a/ c4 N, Oo_____74C1
6 Y/ C) j* k4 C+ c7 o" ^. Rp_____5FB8
  T. j* k7 g- P" t0 dq_____60858 o2 Y+ {4 Z% j
r_____3AC4! |: Z0 [/ d* o# V
s_____2F50
! `( [$ G. n, kt_____36F8
) m4 h. U" g$ Fu_____7010
& ^+ L  z0 U# P1 t" nv_____0B42
0 d; n9 Q: }* r! {w_____1C7A
2 W8 E1 `' D4 y" qx_____16F8
; V8 z* Y. N2 K" J; w" vy_____2EE7
/ q6 O& Q  F- h: c6 \z_____5CF3
" ^$ p" e* o4 U5 u!_____6233
5 k3 \  e6 s. k@_____3A45& S* A. x% Y$ K- p. N7 n; h
#_____2291
9 H8 V/ L5 Z; l; G+ a$_____5D5C
! M, E3 I5 p* ]6 B0 N4 {1 n- H. T%_____09B9' r- w1 g2 Q8 Q/ \6 h
^_____43EA
7 F% v, x2 p7 v: B" B, D) _&_____62B91 V: I2 m2 [2 E4 `% }5 a8 W( H
*_____6301
6 p. `: z1 T) L) r* C; `0 h(_____4659
2 H5 f, y' g( p" ]' H)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表