返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- D5 M+ r" S8 t$ Q2 t. f2 E- e
原始出处:http://www.3ast.com.cm5 d2 J* r" A& R- Y/ T+ K6 o
- \) D' Y; s2 B" B2 e% X
看不懂的直接绕过! n0 b& ?6 s2 S( c* D- h$ x
加密前为:hwy123456
7 z' Y7 ?' E! l" f2 J9 E: c加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E) A% t7 z6 O( M8 Q% o3 s+ ^
' L$ c, M1 H# L  f/ M, v6 Z
============================================) a! B7 V, Z4 ^+ z
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ R: f! d: j) c2 J2 ]也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法0 S1 a/ e' L6 V: i+ |7 ]# N
以下是RSA算法文件+ ]& v! F" A9 Z0 b
: K2 x) F; v" t0 m7 t% v9 r
文件名RSA.ASP
8 T, X& q) n" P1 y  L& I===============================================
7 x- j& v* X* G" I! e, S; K& Z<%
2 z3 I- b1 p$ }. I, L( ]) N% yClass clsRSA
- m- ]* U5 H/ B. e5 K% G! LPublic PrivateKey / H+ \* n) m* [5 x' M" u
Public PublicKey 5 p  e! w6 M6 J( w
Public Modulus 8 V8 G5 }3 N$ {
Public Function Crypt(pLngMessage, pLngKey) 7 Q/ J! W' D; {$ `% C. b& ^0 b
On Error Resume Next & \5 `8 }3 }% [
Dim lLngMod ; G0 d+ E/ m) `4 G/ T1 a4 Z
Dim lLngResult + Q8 H+ I! v( Q
Dim lLngIndex
) ~3 m* q* e/ f+ ]& @1 V4 X$ IIf pLngKey Mod 2 = 0 Then ) H! T  x* x' B6 M+ k
lLngResult = 1 % b8 }" C# {* O8 Y
For lLngIndex = 1 To pLngKey / 2 1 |. q1 p- V/ k2 w; r
lLngMod = (pLngMessage ^ 2) Mod Modulus 5 D3 g: X/ ^5 J8 B9 f
' Mod may error on key generation 0 e) u5 j) `+ Y% a4 Y/ g
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 e& t/ M3 M$ H' O5 Q. a9 t
If Err Then Exit Function
, y  i6 j( ?9 r+ m6 ANext
- y* t6 s% ]! V# QElse
* e6 }" p8 R/ @  h8 c, b. qlLngResult = pLngMessage
/ C+ ?& `) I* Q+ Q% ?For lLngIndex = 1 To pLngKey / 2 . C; g. i8 O8 n
lLngMod = (pLngMessage ^ 2) Mod Modulus
* o0 B4 B+ H& H; ?On Error Resume Next
$ V8 @" ]/ u3 |" @! u- J' Mod may error on key generation
" Z4 F% Q/ l8 k4 g) C# r  A  ^lLngResult = (lLngMod * lLngResult) Mod Modulus ! n- K9 z+ @7 ]! M3 c4 G
If Err Then Exit Function / I( k1 G: b3 D& P# U4 _# m" J
Next
* s: e5 [; O4 ]. B; [' a7 K. ZEnd If , u1 H& T# i8 |9 O" r
Crypt = lLngResult : g+ b6 J4 R% v4 D  e* \9 R
End Function  i2 W. J* Z& S  v
6 i7 h. {/ z5 E) T/ [7 l
Public Function Encode(ByVal pStrMessage)
0 k& I7 k0 W8 k( oDim lLngIndex 9 n$ ^2 m4 r% P! W
Dim lLngMaxIndex
; _1 d9 B3 X" @+ O3 G6 x" @Dim lBytAscii
" M; J' F* p  ]5 Q/ [; FDim lLngEncrypted ' \7 D' k0 e: }" k3 r- E( L
lLngMaxIndex = Len(pStrMessage)
- o: T: S% ]5 iIf lLngMaxIndex = 0 Then Exit Function : o- l/ e4 \, u3 Q9 N: a
For lLngIndex = 1 To lLngMaxIndex
- |% w9 @9 R# j" UlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 e: E( m, A. o0 E
lLngEncrypted = Crypt(lBytAscii, PublicKey) 1 y+ N+ e! N. Y" L  m; e
Encode = Encode & NumberToHex(lLngEncrypted, 4) ) D' L5 ?7 e+ r: W% g% y' R
Next + j+ ^9 G  S* r( Z) ~) J1 u
End Function 5 o8 z) M) R- [, Q
Public Function Decode(ByVal pStrMessage)
. ?5 @6 g; Y% p) hDim lBytAscii - E0 |4 A0 ~( i9 L' T8 v4 P
Dim lLngIndex % [& I; v$ v* e% F7 J# v- Y8 x
Dim lLngMaxIndex
3 s) F- O0 m/ H4 f: ?, `* B8 [' yDim lLngEncryptedData
9 H* Q( a: @. m0 |% MDecode = ""
4 v& z% t! Z% J+ HlLngMaxIndex = Len(pStrMessage)
9 M: }- L# r2 w3 S$ K  F5 LFor lLngIndex = 1 To lLngMaxIndex Step 4 6 X1 ~' V/ b/ L3 ^+ o
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   A) v: f" d9 h# [1 b
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 1 Z9 k" x; Y" H5 H: H
Decode = Decode & Chr(lBytAscii) & U* t% ]4 F! e! z2 U+ \0 e  ]2 t! y% k
Next 1 ^# m" Q2 L* m$ n9 k+ U
End Function , k( ?  _  l4 f
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 3 U, V) f8 [9 x" G/ T7 z0 ]7 M2 _) V
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) " a- K% y0 \' ?$ E
End Function * k/ b: P% z8 p5 q6 p
Private Function HexToNumber(ByRef pStrHex)
0 o3 c3 R9 O: o8 i* O) ]HexToNumber = CLng("&h" & pStrHex) 8 ^: {* d) E( G- f2 b: \$ |
End Function
' m2 G% N3 b4 n& N" DEnd Class 9 t! v  p0 G/ A
function Encryptstr(Message)
1 s  w- S! S6 z% A1 C/ B3 k2 ADim LngKeyE . o' i+ I) j2 l& F( Z
Dim LngKeyD
" e7 a: i) x" p6 ]5 r0 U% c" ODim LngKeyN
$ u& [, g! ]' `2 q; C/ @6 PDim StrMessage
4 ]+ v+ B! j, `9 n" uDim ObjRSA
) Y( a9 R  J, m! W! |& @LngKeyE = "32823"
0 Q3 h$ c8 F9 D# ~* W" CLngKeyD = "20643" ( f5 I: Q% \0 T6 [9 P* K
LngKeyN = "29893"
# d$ L7 n4 V4 |StrMessage = Message & K6 ~$ s& S1 N: }) b  O+ P
Set ObjRSA = New clsRSA
, |$ x% x2 C6 F- v) JObjRSA.PublicKey = LngKeyE $ l: ^, e! D  r+ N
ObjRSA.Modulus = LngKeyN * e+ d. ?: q, o) t
Encryptstr = ObjRSA.Encode(StrMessage) # a  w9 O% H8 b8 O
Set ObjRSA = Nothing ( H% Y4 M) N" Z/ j, w- p( g  \: c) k
end function1 k4 k/ n" @% q/ Y7 F4 ]
Function Decryptstr(Message)
/ _$ }) M5 _7 [2 uDim LngKeyE & h/ u% e$ @3 M9 ?! w
Dim LngKeyD
; c% a' h, r  M0 MDim LngKeyN 1 W) e9 Z7 [) j8 r
Dim StrMessage
1 O7 g2 t; X! o9 @5 W) bDim ObjRSA 2 K, H' f: ?( A4 r
LngKeyE = "32823"
% [  w( N, g- n# |7 gLngKeyD = "20643"
: ]. {8 _! S2 h8 s" hLngKeyN = "29893" & I1 @, [8 t' a  `# Z
StrMessage = Message * h1 _5 ~6 Q' f, v
Set ObjRSA = New clsRSA
. U2 K0 E6 ]8 S; |0 XObjRSA.PrivateKey =LngKeyD
2 o3 {9 c; P* [, K0 X9 FObjRSA.Modulus=LngKeyN
- c3 d$ T  o. hdecryptstr=ObjRSA.Decode(StrMessage)
! v9 u9 M* `/ |/ o! x* ?Set ObjRSA = Nothing
3 C3 E8 C+ W, {" K& C, Qend function
/ ~9 O) k. K. s# y5 h, E%>: Q+ }* N. @9 h( g6 f
===============================================
& ]+ o7 e; ^6 f
% ~3 L2 ?" k2 Y7 c* ?/ a还有一个用于测试这段代码的test.asp
' R3 p$ N* J/ k1 @& X; r( R有兴趣的自己搭建个IIS测试下
& S$ K: g1 @2 W, j<!--#INCLUDE FILE="RSA.asp"--> 7 n+ u/ c$ {0 T$ p1 A6 W' V
<%
' \' Q% t& d' f7 N) rfunction Encryptstr(Message) % `3 N& }( w& m' I) ?7 U
Dim LngKeyE
+ {) e* g" K- M  pDim LngKeyD ) A4 d- j4 x) a, ~
Dim LngKeyN
& @) X7 W9 \. n- T, ?! L* ]Dim StrMessage
' s% U: O! }, u6 I; @Dim ObjRSA
# E7 L8 @- Y( O; y9 LLngKeyE = "32823" , x2 ^# n0 G7 c- T0 C; P! ?
LngKeyD = "20643" & S; [3 d1 n: c. B# J" P' F+ c/ Q
LngKeyN = "29893" ! H( C$ s$ a4 U' I! W
StrMessage = Message 2 v. t( [9 Y, M9 J. P2 B
Set ObjRSA = New clsRSA
5 M& @0 z, ~" [# r7 vObjRSA.PublicKey = LngKeyE 4 r3 H3 l/ Y) u9 W
ObjRSA.Modulus = LngKeyN 1 N0 E" G% w8 _3 g* C* E! E
Encryptstr = ObjRSA.Encode(StrMessage) " Y  A, ~0 ]% ^
Set ObjRSA = Nothing
1 i) p) ^  z9 c4 ~end function % k$ q$ i6 Y: u4 c1 I
function decryptstr(Message)
  K/ d2 M) y, M. z1 t7 j) |Dim LngKeyE
1 L" L0 R2 [' e# I5 b' Q, |Dim LngKeyD
# d9 J9 L8 t( W  iDim LngKeyN
7 B: f" [+ g5 p7 |Dim StrMessage ) u' }# a- R# a  K! |- d
Dim ObjRSA
" \5 w/ I7 ?7 |) zLngKeyE = "32823"
7 M6 z- @1 v/ \* H$ O& ~* u: q5 MLngKeyD = "20643"
3 ]6 W3 l& C' `9 uLngKeyN = "29893"
: _* c$ b  W% q- AStrMessage = Message
% N% A/ E$ H& ?9 a0 W+ JSet ObjRSA = New clsRSA 6 U; ]& R- t+ M0 d$ L
ObjRSA.PrivateKey =LngKeyD
/ `' n" P7 [3 o1 xObjRSA.Modulus=LngKeyN ' {; J0 A4 m3 n: R' i  y
decryptstr=ObjRSA.Decode(StrMessage) 1 N! [" W- g5 d& |# I
Set ObjRSA = Nothing . v6 j: t8 n9 G# g$ ~0 V
end function 2 O7 p/ x5 V! [
dim last,first
4 [+ s( o# ]  i% X! Ofirst="!@#$%^&*()"
2 d) e3 O7 Y( oResponse.Write "加密前为:"&first ) P, K) a. u5 s  u  E# _
last=Encryptstr(first) / Z7 t; B% L0 z7 J7 C
Response.Write "加密后为"&last 7 A$ s* L6 s# w: T
Response.Write "解密后为" &decryptstr(last) 3 T6 l: i. A7 A0 w: c7 L
%> ==============================================+ @( U4 y( _( a$ F# g8 l8 n
剩下的就是字符的对照表了
: i3 ~' V5 @+ G1 U% x6 U1 |) R===================字符集================4 V2 d& R* u$ r
1_____6EBB3 a# h# o: F5 M1 u( E% M% V- C
2_____5C1F/ c( Z( k' A  m3 L% j9 f) x* J4 ^$ B
3_____4D75
0 B" ~7 w. n, I4_____26CC
/ u: @: d5 w3 q) j, n+ P5_____4F88
+ m' c0 [2 u3 w5 d( U/ }. i# p6 \6_____3F4E9 n% \+ p6 Y) z- M
7_____0A9D
1 H% _( n1 h, K" l) U' j( W: ~7 O) E8_____1A1C
$ C6 P  r2 |- M0 s5 E9_____6D20: Q  S/ E% p( f" d3 m
0_____1089
% p; C9 R( Z$ P3 @a_____0F3E
5 Y/ C/ D) Y$ X7 X8 R* Ub_____3159- p; L# f1 ?3 y8 A4 s. F7 }: \
c_____3517
: R4 ?: F! R5 p9 Vd_____419C
7 f' w1 {' I9 r, I& Xe_____615C+ G9 o: D* a2 a; |
f_____556F4 o: K; m5 C; x! C: O0 v/ p: z
g_____2B7F
: q4 K" m' N- h. d5 W1 M5 @h_____0F9C! g9 A* P. F' x7 h! J3 Q; `
i_____00FA( b7 s( R- I2 f5 }
j_____5A509 l4 Q4 X" v' ~4 L- R6 y
k_____2850! j. r. }/ O# S& @+ n
l_____3E7B
5 E2 K; l; R/ }+ Um_____71C5
! K8 i+ Y- {: g0 E; v; b( gn_____1FC8
- R" |9 X7 E' |, Y$ I! ?- ]: Q% xo_____74C1# x7 w; H1 p+ W! h: z1 ~
p_____5FB8
2 V- u4 [: R, ~6 r, lq_____60851 a4 e, r) ]/ M7 s# |. g
r_____3AC4$ w' U" R) [. J+ O6 M
s_____2F50/ n/ s0 R$ n' a. ]/ b. ]: Y/ ~% U
t_____36F8
% D# @) s3 C9 O( i5 I6 pu_____7010
9 S; c: A: d9 I* G/ P$ ^1 y1 l+ mv_____0B42/ ]; @7 \, l; A$ b: v+ k  a3 ?
w_____1C7A
6 z3 A2 p) Q7 ^+ o/ }; m7 wx_____16F8
( T, G6 j4 B. q/ Hy_____2EE7! x0 E- c5 {, x$ e) e/ d2 I
z_____5CF3
5 Y( B3 ]+ E% W6 D3 b# P' Z!_____62332 x0 P' Y6 D  w! o
@_____3A45; H( n5 J* V0 S: v' N) _
#_____2291) y6 h. [8 x4 Q" e0 W+ n
$_____5D5C& I5 [/ i5 g/ Q0 f
%_____09B9+ a( u0 Z/ ^% k+ {* O0 k
^_____43EA
9 V$ r4 z, p: a" Z+ ^! ~7 s5 @% r&_____62B9# ~7 H. N8 V* r. t
*_____6301
& K9 u+ H$ ~' e  P& p% ]' s1 L(_____46593 Y, S+ ~/ O0 _" t
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表