返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
" Q5 l  L0 W1 W原始出处:http://www.3ast.com.cm! X  F' l: U4 P! `; ~+ Q% i

0 |6 d2 X) b) x$ {: m  C6 a看不懂的直接绕过: R3 ~/ B) d8 `4 z! Y( v
加密前为:hwy123456
' G! M' u# ?5 S加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E. k& T! |9 [& f, ]0 L, g
- `: v: H# `: |. l) b8 t" W
============================================6 l' Z+ n7 N$ l$ S
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
8 X) C) ?+ B! M, s" B也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法8 z( c/ _: K0 ?* k0 @5 D& s
以下是RSA算法文件0 n6 m/ l" e. ^% G2 |! T6 ]4 q2 Q% `

. _8 t8 l% N+ w$ w9 `, S文件名RSA.ASP
0 T  b& L2 H: a===============================================
+ w- @- ?' X: l# t, V# M% T3 K& {<% 0 H( K0 a/ h9 w: \* s$ w
Class clsRSA & v5 ~5 M& @' I- c
Public PrivateKey 4 g' [% ~. }- ~' H* f. @% t$ [
Public PublicKey
( ?% U, a& O% `+ `7 QPublic Modulus
$ S, k7 ]( @& L, y6 R; s, LPublic Function Crypt(pLngMessage, pLngKey) # K# |* h3 v. X$ x
On Error Resume Next 7 f- ^" C) M" b3 s. M( @
Dim lLngMod
' N) x( o4 j/ F( y( m% d/ @. @Dim lLngResult & X1 {' V1 ^0 V  k
Dim lLngIndex 4 y  P8 `3 E# D
If pLngKey Mod 2 = 0 Then
& O  `* Z/ F5 \& ClLngResult = 1 0 C8 S% n! p, @/ s) x; H0 M
For lLngIndex = 1 To pLngKey / 2 0 h6 Q! k+ a6 y! b# O; l
lLngMod = (pLngMessage ^ 2) Mod Modulus
  c9 e' X) E2 h# D5 @5 ~' Mod may error on key generation ! P+ _+ k6 O& R6 V7 c$ \
lLngResult = (lLngMod * lLngResult) Mod Modulus 7 x5 w  ], w8 C
If Err Then Exit Function
0 c; V5 |. [  h9 ]9 z# \* xNext 6 X6 t* C- W) X; {0 ~9 b# d/ G
Else
6 C0 E, p. S1 U8 _, {lLngResult = pLngMessage
4 \4 q9 ~5 r5 p* f1 B6 XFor lLngIndex = 1 To pLngKey / 2 - m/ A# M5 S% V/ B4 Q% A" H2 |
lLngMod = (pLngMessage ^ 2) Mod Modulus
: X! j8 D& _0 o( l! `! k$ AOn Error Resume Next ) i& v% G6 l; z( }: c( O
' Mod may error on key generation & w8 v, f2 A, F$ e" C
lLngResult = (lLngMod * lLngResult) Mod Modulus / }# N. _' S5 U" z# c" c
If Err Then Exit Function
. `0 G# ^% w" Z# L; w7 JNext - \4 {0 z& M2 L' G& W" A+ v1 C% L
End If + D2 d* G/ J- [9 `' u: S8 g
Crypt = lLngResult ; J6 J+ h6 W# _, v; P$ W' y4 x- E
End Function( B, @1 g/ d6 B+ n7 {
6 o: @0 u3 C- r; \. ?
Public Function Encode(ByVal pStrMessage) 4 I; q; e) v; K$ W! Y! u
Dim lLngIndex 2 J* H1 ?3 e* I" ~0 F7 a8 r  J
Dim lLngMaxIndex
$ g# j( b0 s: d4 s" cDim lBytAscii 6 H5 H6 L; |- y3 C- a
Dim lLngEncrypted
7 I. p* W7 Z1 ]' r* y9 ^1 |1 x  Q+ B, BlLngMaxIndex = Len(pStrMessage)
7 O$ Z6 V) Y) l% LIf lLngMaxIndex = 0 Then Exit Function
/ x) }- }5 M' N3 T# }9 q2 XFor lLngIndex = 1 To lLngMaxIndex 0 |+ Z( V* I( {, }" T8 |" N
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
; X) H* C- h& R- l: H9 WlLngEncrypted = Crypt(lBytAscii, PublicKey) % P. [3 P$ b. l: T6 {" u7 K+ w
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' B) F8 D) G% K+ SNext
8 ^! N7 B0 X" I. l8 IEnd Function
: l: ?2 Z4 ^: G" a( c5 {  U- BPublic Function Decode(ByVal pStrMessage)
( V5 y% ^4 |2 c! w% I; u: a, aDim lBytAscii ; m; l  s. v* y$ l+ W. S1 u0 z; F
Dim lLngIndex
7 n6 }& X" ?# d- P( [$ N3 o7 c1 Q- fDim lLngMaxIndex
- u* U3 V5 Y$ w6 c8 L6 xDim lLngEncryptedData
' L0 Q7 n$ _; E( w" ODecode = "" / Y0 M" B$ V# m
lLngMaxIndex = Len(pStrMessage) 0 B( |. O  v( M8 I4 S& @- \* u
For lLngIndex = 1 To lLngMaxIndex Step 4
' l6 N6 Y2 v5 n6 MlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
9 R' l  h; A* _9 ylBytAscii = Crypt(lLngEncryptedData, PrivateKey)
8 v. u* Q3 U; ~8 mDecode = Decode & Chr(lBytAscii)
7 U' p8 s+ T9 b2 eNext 2 L& Z, Q; V# p' B" u. U
End Function
1 K% V4 T. f* \) v/ M- yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 M. H8 v9 M% h1 l0 t
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 6 s' S) w& Y8 C# P
End Function
8 ?6 W: q- S$ }. ]% A  v$ uPrivate Function HexToNumber(ByRef pStrHex) 1 g' E* H+ w1 _* Q9 S8 k
HexToNumber = CLng("&h" & pStrHex) ! b+ t1 F' n( X: \
End Function
% T) ^1 K( |" n  Q. A- n# H& z( M: R, oEnd Class
  E! x- r. o& Afunction Encryptstr(Message) 0 X# g1 ]9 v8 z+ m3 c9 _
Dim LngKeyE
3 k( m* w2 |7 F5 q/ EDim LngKeyD
, E- E2 M# m8 e1 V7 MDim LngKeyN # S, q9 _5 U8 @# B: y# m
Dim StrMessage
1 {/ u- [: H% ^" s+ t. mDim ObjRSA
: b! D/ P. D  B2 bLngKeyE = "32823"
  @! G/ l) Z6 b6 i# Z+ JLngKeyD = "20643"
7 b5 l: a" Y7 m3 lLngKeyN = "29893" 5 D8 c# j# W9 c" X
StrMessage = Message / G" p% N. a) P/ A
Set ObjRSA = New clsRSA
2 P4 y& |3 s/ F/ b, \$ X% wObjRSA.PublicKey = LngKeyE ! b4 \; U% O, X7 o
ObjRSA.Modulus = LngKeyN
. ~, G% i- E: O. Y$ Y* EEncryptstr = ObjRSA.Encode(StrMessage) & E: U5 x0 p6 L3 o8 P
Set ObjRSA = Nothing 2 S, V# t! P: X, X  W. q- ^* p. o
end function
  i+ K1 i0 A8 Q. v! k! m& YFunction Decryptstr(Message) " N+ Z0 Z4 {( ~4 l8 k1 f! F
Dim LngKeyE
5 f! i1 I" i( g" JDim LngKeyD
: K0 z1 V8 w" B0 iDim LngKeyN
" v- T! q5 {/ ^, gDim StrMessage
4 ^- K+ b: M8 J* _8 xDim ObjRSA
6 b6 p1 W& K, ALngKeyE = "32823"
" i( E- {! E: x* e8 jLngKeyD = "20643"
% y7 n' u: s6 ~LngKeyN = "29893"
& V+ b  x: h; U, h# M( MStrMessage = Message
- l1 z1 J; q0 b) r7 q5 mSet ObjRSA = New clsRSA ! Q& B8 P  a" w! [' R3 D0 ~
ObjRSA.PrivateKey =LngKeyD : G" z  @& M7 w( o
ObjRSA.Modulus=LngKeyN
0 ^& m* E8 U1 n  W- P# e# g, Y. Adecryptstr=ObjRSA.Decode(StrMessage) 5 K- f) r' `; S& y& l
Set ObjRSA = Nothing 8 T' ?  H4 B6 U3 I; _0 C4 P* Z
end function
8 F+ L# ^, ~5 E9 n; |* }%>
" O& N$ o& [; E! D. \===============================================7 T6 d/ L5 F# c+ y& S
3 _0 h; b$ S5 l8 s' Q$ \
还有一个用于测试这段代码的test.asp
0 ~1 H) y4 b* m: a$ b有兴趣的自己搭建个IIS测试下
" I5 I2 _5 K5 ?' M; f0 i( \8 c. U<!--#INCLUDE FILE="RSA.asp"--> 7 N; K" x/ l/ [% I2 H( b8 J* W
<%! D$ H2 ^( P9 G# B/ s7 n' ^0 z5 w
function Encryptstr(Message) 2 N& [, r4 j  {6 @: ]: P* o
Dim LngKeyE
1 U. t3 |% ~! i  w& f- RDim LngKeyD ! }0 I9 U/ o  C
Dim LngKeyN 5 K3 C0 m) H3 J
Dim StrMessage 6 B4 V( V$ i7 Y8 m
Dim ObjRSA * @, G* N3 a3 s' O0 ^
LngKeyE = "32823"
2 S/ F8 x8 s9 Q  h& WLngKeyD = "20643" # X& x: Q+ J2 E- r9 A4 Y, D
LngKeyN = "29893" , G) G4 q/ A, N
StrMessage = Message
7 H& i( q; D1 D. G( J& w/ SSet ObjRSA = New clsRSA
8 M( n; Z5 G: _6 C) D  NObjRSA.PublicKey = LngKeyE
) n7 }% ?9 F4 Z' _# v% |6 o, pObjRSA.Modulus = LngKeyN
0 b) p# }: a2 k: jEncryptstr = ObjRSA.Encode(StrMessage) 5 u5 T& m% b. s
Set ObjRSA = Nothing / J7 P  W' u3 \
end function 1 L1 @% S6 O- i5 l) t
function decryptstr(Message) & u) d! m6 a; l# w; J% t
Dim LngKeyE " y5 |! G" G+ l1 e
Dim LngKeyD " \, M; F% V% U5 Q- z' A2 q* p( m5 C
Dim LngKeyN , U. D! T4 J+ j( b
Dim StrMessage
6 n% F" b! u  q9 }: o9 G& H. L; hDim ObjRSA
5 o3 y' f4 ^4 O: P' ALngKeyE = "32823" 2 Q9 M* Q  ^, w9 l3 r
LngKeyD = "20643"
( ?  Q: i0 ?& f% R6 s3 ]LngKeyN = "29893"
6 p9 M5 U; r6 Y1 G$ hStrMessage = Message
6 o- X; `, k& }+ y* m9 A4 K4 I) lSet ObjRSA = New clsRSA
, s6 l- Y1 m! d' i1 F& AObjRSA.PrivateKey =LngKeyD
$ |0 p* Q1 }6 M3 O2 b% D: t. h& xObjRSA.Modulus=LngKeyN
  [/ S' N0 d6 G+ Odecryptstr=ObjRSA.Decode(StrMessage) * l. ], i; |& X6 u; K9 ]
Set ObjRSA = Nothing
3 a& V- B1 ?) Y0 k6 w* d! n$ Jend function , s* I/ _- z5 L
dim last,first ) ^) \2 r, U/ M$ A
first="!@#$%^&*()" # C! N* u& G: X! L% G0 N# h$ ]
Response.Write "加密前为:"&first " ~7 K' r+ N$ n
last=Encryptstr(first)
! R1 `/ d8 w! N( _Response.Write "加密后为"&last
0 }5 m# V9 |! b7 a& gResponse.Write "解密后为" &decryptstr(last)
% Y+ t2 I- q7 E! U0 m* }%> ==============================================9 i* ?/ M* `0 J, J
剩下的就是字符的对照表了
& F) v& C) v1 z7 X6 I* p  |5 K9 c===================字符集================
* |9 e) {9 C  n. ~" u3 A' E1_____6EBB
$ h/ @. m( e1 A0 G9 Q7 v) F2_____5C1F
$ i1 u7 q3 r! J& L, M3_____4D75
6 [8 }3 K! W% l8 s" R- k+ A4_____26CC9 k& R5 T+ Z/ z: ^* l; T  v! S
5_____4F88
5 ~# H9 m1 a3 {4 W6_____3F4E5 W" t0 I2 r! y4 z
7_____0A9D" W* L8 Q$ v; p) v, P
8_____1A1C. I! M' V# v$ w/ Q& @
9_____6D20
# _9 J  y) V. G5 ^$ }0_____1089
- E( ]" W2 j' Ca_____0F3E* @1 A  t4 j6 P
b_____3159
* _% t5 z" N7 Xc_____3517
3 X6 ^0 X0 s9 g. T% I5 o+ Dd_____419C
8 W) f8 |  b1 J8 r0 c( Q3 ge_____615C% f: z: G# w2 ], L+ o4 o+ o
f_____556F
/ B0 c% F2 b/ B8 Eg_____2B7F: M1 i9 k( j+ b
h_____0F9C/ J9 \& z) X" \1 H3 @0 |4 J. P
i_____00FA
7 E+ d. B; }! ?4 E, sj_____5A50$ r* q, A- `( D$ B2 ]# w
k_____2850
" N, H& T' k; X) B8 d8 @% xl_____3E7B
/ v1 D  Z/ v* Fm_____71C54 \' B: a2 \5 i. Z
n_____1FC8
* ]2 d0 n* E. g6 {( M+ D  mo_____74C14 x+ p1 r* [5 p7 A3 K8 o
p_____5FB8
* v7 t- r  U8 f: }. X& O. l: ]q_____6085
: z) B1 N! t+ |5 v6 }# m. R2 Mr_____3AC4
1 z+ O, V5 P! h! p- ^s_____2F50! p3 o) o% r7 B" t; A5 K& z* b
t_____36F89 ^% [# y$ x4 W8 J% i* ~/ j) H
u_____7010
. l! N/ S& V3 fv_____0B42
( Z% i, d/ {9 A& dw_____1C7A
/ M' z2 Q5 P& |5 T2 J: {# nx_____16F86 }& K* b! u6 ~; }2 m. I/ @! m' T
y_____2EE7+ F, t$ p- F* C* [  ?( Z# Q) F2 }
z_____5CF3
( H/ O: k7 l2 |5 k/ ^! \: U!_____6233
, _& O, W$ z* D# E: s@_____3A45& Z' [$ C3 w3 ^7 \1 P( Q
#_____2291
0 i/ f9 c9 f4 k$_____5D5C/ |; h7 ]/ U: F
%_____09B9
" m& d: P" C0 h* n( l( x^_____43EA5 S, u! ?8 J; l) W4 G+ N
&_____62B9! n% \. \$ E. i: G  X. v$ B% N, M
*_____6301" q" b+ p! f9 p" `2 N1 I+ ]7 s
(_____4659) J, h% a1 Q/ j; q- ~5 x
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表