返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, y; l& S* c7 S" U" {  s# w原始出处:http://www.3ast.com.cm
0 v4 i! ~  h/ E4 j& z% M
9 ?. Y! t! S* O2 ]$ X3 v0 m看不懂的直接绕过, r: V& I; Z( g. _3 n" I) O- H; \
加密前为:hwy123456% w6 @0 [; V& f( H$ _! R7 e% k
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E2 E1 O' A+ u- H5 a6 O" a% ]

8 t! F5 _9 v( i  U" v; H. B============================================
' x1 u" B* s" s$ d8 p上面是当时自己校内的心情。现在已经解破出来了,分享给大家4 l$ g' B  v8 X
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
$ k+ a0 w! o& X; [以下是RSA算法文件
- W. H+ t: N: [. D2 R' w7 P# U1 J  }' f% T0 e+ |4 k9 N
文件名RSA.ASP
* V* A" Q: c! E; m- ~===============================================8 r) B! I: j2 \% H, [# C
<% 6 g- s* W7 b4 G, b) P" N
Class clsRSA
. h' _$ m0 B6 s# B& xPublic PrivateKey $ X- q$ R! k  J: ^
Public PublicKey
. r+ g9 G8 c6 V: I: t; z1 e8 QPublic Modulus 7 g/ e2 n- z7 m
Public Function Crypt(pLngMessage, pLngKey) 6 X! m" D! D$ W
On Error Resume Next ) @! i+ Q" p& N3 _, N, |# @3 H% S
Dim lLngMod
4 Z' i8 E8 v+ w: D( Y. `Dim lLngResult 5 d/ K! |! ^) C* |. g# K! w
Dim lLngIndex 7 Y# ?4 S. c, f, Q4 r
If pLngKey Mod 2 = 0 Then
0 G+ h9 X5 y, n/ E2 YlLngResult = 1
* L' T* i, i  @+ j4 {: TFor lLngIndex = 1 To pLngKey / 2
$ C5 n2 T0 l: R- ElLngMod = (pLngMessage ^ 2) Mod Modulus
2 G/ V! G# g4 Y* N  D+ S' Mod may error on key generation , x' f4 V. C8 v, C
lLngResult = (lLngMod * lLngResult) Mod Modulus 1 ?5 b  \% k6 u) T3 k4 a7 W
If Err Then Exit Function
3 |. g, v- o6 c% f/ G. _Next
! g2 K0 t- f1 N, W% B" h5 LElse ( e6 m( |, {7 ?
lLngResult = pLngMessage
$ |9 q% {; \* F' E2 t, T% DFor lLngIndex = 1 To pLngKey / 2
: C9 l- |4 V7 X' M. dlLngMod = (pLngMessage ^ 2) Mod Modulus 3 h* }+ S: F0 A. s% l
On Error Resume Next
* g) x' L8 G( R$ W' Mod may error on key generation
' Y, N6 r- w7 QlLngResult = (lLngMod * lLngResult) Mod Modulus
* D8 a' D: ^" ?! q9 X  e' p3 ^. IIf Err Then Exit Function 5 D; f6 H2 l  b1 K; {
Next
! ]' g5 d8 e( K) ?End If
4 x  Z- m: z) n" bCrypt = lLngResult
: p3 P& t: h6 EEnd Function7 m, g- p7 B; H

2 F* I2 C' P0 s+ o, P6 APublic Function Encode(ByVal pStrMessage) # V' s* a! _# E% m3 U
Dim lLngIndex : E4 `4 V5 ^) _( r4 T; K4 _; m
Dim lLngMaxIndex 7 z5 W) Y' H$ u! }
Dim lBytAscii 5 J9 x" W2 E! k
Dim lLngEncrypted
  @  X. L2 e% _* u0 u1 YlLngMaxIndex = Len(pStrMessage) ) m& I& b2 m7 W- Z" R  i
If lLngMaxIndex = 0 Then Exit Function
6 p$ n( i# i5 {4 v+ V6 R" xFor lLngIndex = 1 To lLngMaxIndex ) t3 [. ]- e  A1 U9 q! W/ S0 h
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) * W& c! j: R9 }5 o# `' X6 g8 _1 q; b
lLngEncrypted = Crypt(lBytAscii, PublicKey) ( `9 V7 s2 o$ c$ g( n
Encode = Encode & NumberToHex(lLngEncrypted, 4) 0 N" q! `' n+ s+ |5 W
Next * V6 w( L6 |) G, o6 m
End Function
' O% b+ i% s# r0 Y2 ]/ i  Y" mPublic Function Decode(ByVal pStrMessage)
6 o- x7 w; T8 N: a/ ]Dim lBytAscii
9 V! E3 C) x' O/ `3 ~6 p. {) n, l5 _Dim lLngIndex
" d2 z& k% R4 V6 x1 MDim lLngMaxIndex
7 o; p+ l% @& K$ @2 g  NDim lLngEncryptedData
2 d  X: y6 G& F. uDecode = ""
' d/ \# h" Z2 _4 u' b1 {lLngMaxIndex = Len(pStrMessage)
  W  b8 X# e5 F  ?For lLngIndex = 1 To lLngMaxIndex Step 4 + X6 m! b' q: C: W7 N( v% t% D7 f$ `
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 Z' s6 H) C; U, \
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
5 J% q6 ]: J" I% s$ r& x$ ]Decode = Decode & Chr(lBytAscii) " R' W. Z" U: \" }: X* @5 h
Next
1 v$ r# b- b/ ^, S9 F% sEnd Function
$ g+ ^$ f; J$ l, K; ]; \Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 2 I- ^" @8 V; W& R7 ^- W! D# v4 _
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
* {: R' x- h! Z% r2 gEnd Function # P8 R8 H5 ?- o- b# C
Private Function HexToNumber(ByRef pStrHex) % w/ d1 Z+ M' T+ d
HexToNumber = CLng("&h" & pStrHex) 9 C1 n- ~; C' w0 K- Q
End Function
( i8 P$ q+ g4 j4 \- n5 z1 M2 bEnd Class
! E9 T: ^6 ?, ofunction Encryptstr(Message) 4 _+ `2 f% \! Q
Dim LngKeyE 7 w1 g/ @& ^2 g' e6 f1 U
Dim LngKeyD
8 t% V0 X3 C  s3 B; t8 t$ x) K* dDim LngKeyN
1 v8 d% M! ]( aDim StrMessage , Q, l7 \& [; _) T/ M! T
Dim ObjRSA - f0 [  `) P2 F/ p: p# G
LngKeyE = "32823"
3 w  j* j' N: P7 V; v# @0 t7 W0 XLngKeyD = "20643" & r0 y: f8 Z( |& T2 v
LngKeyN = "29893"
" J" t. Z4 P1 t" CStrMessage = Message 4 F: O! L0 I, K# G( a& }7 _$ O
Set ObjRSA = New clsRSA
- o1 H4 @, C2 D% C/ F* ?ObjRSA.PublicKey = LngKeyE
0 |' M% b. O0 u+ GObjRSA.Modulus = LngKeyN 7 x! D. r* Y" H' K
Encryptstr = ObjRSA.Encode(StrMessage)
0 X6 V/ R( y% [$ O, dSet ObjRSA = Nothing
+ U) M2 Q8 \! |) E; t, ?  U: uend function8 u# m8 O, I$ F* k+ q/ [# f
Function Decryptstr(Message) , I* r0 m8 ?( W* H" x8 [, a
Dim LngKeyE
* N7 ^+ ?6 M5 T" h5 m* H4 y2 U3 NDim LngKeyD
  x2 \' x! g. h; R" d3 ?" p( h5 @Dim LngKeyN ( A9 N% c6 k* J7 }. N1 e- C
Dim StrMessage   m6 w! n" j2 o8 n3 m/ w
Dim ObjRSA 8 ?& V$ u! s% k1 U# A- K0 m  m
LngKeyE = "32823"
' b" X( e; p7 GLngKeyD = "20643"
5 ~; F- T6 h( z' H4 P; |- {4 ~1 @LngKeyN = "29893"
  b) z) q2 s- q1 |StrMessage = Message
9 e# \2 D  T8 X4 d) x) tSet ObjRSA = New clsRSA
, ?) D( S8 C3 R8 n! [( f& \ObjRSA.PrivateKey =LngKeyD 8 |; B* V* L# }
ObjRSA.Modulus=LngKeyN 1 n4 p9 O& q0 B! I6 Q& F3 o
decryptstr=ObjRSA.Decode(StrMessage) ( v0 C5 {& j. t& _0 w
Set ObjRSA = Nothing 9 B) h- \" `# b7 I# Y/ X
end function
  R" K) g& ]: n$ B( N%>
7 S2 ^, p2 M- }9 @+ }/ l===============================================
; V- |2 S  ^5 B: o8 r2 P
! c0 T; J) u" Z% G3 Q, p还有一个用于测试这段代码的test.asp
( a1 X4 P3 X) z& b1 B$ r6 R; [有兴趣的自己搭建个IIS测试下
9 L1 n: S1 M/ _8 N2 {/ m1 G/ s" q<!--#INCLUDE FILE="RSA.asp"--> & H# D+ G6 K/ j1 Q5 B
<%5 a; Y4 X1 k- q: I
function Encryptstr(Message) ) ?+ R3 w" Q1 M) S
Dim LngKeyE
& I& C& a$ |% n% r- n6 EDim LngKeyD 8 U% \9 m( M8 B1 n: }+ \8 L
Dim LngKeyN
- s1 b( J# `' c" FDim StrMessage ( p% Y0 L9 M$ X
Dim ObjRSA ! ?2 W# }4 |; s1 |0 z' U
LngKeyE = "32823" 3 R+ A7 y4 y% l, O2 o
LngKeyD = "20643"
- A* Z( s8 V9 b, tLngKeyN = "29893"
& a# H) b9 V  ~; t% f* `3 gStrMessage = Message
/ ]7 }$ h. X; z8 N6 L% k9 m$ ~. [; rSet ObjRSA = New clsRSA
" j% g0 g3 R5 dObjRSA.PublicKey = LngKeyE 5 F$ ?) W" R: T
ObjRSA.Modulus = LngKeyN
% K) L3 d- Q1 B/ T3 q7 p7 uEncryptstr = ObjRSA.Encode(StrMessage) : y+ M! x0 f# N) S* A: l. M% ?
Set ObjRSA = Nothing ' [0 k* H- x7 l) f, E2 A
end function 0 T3 K0 Q1 ?# B2 ~  _& R
function decryptstr(Message) 8 Y1 p: f) H  L) D) T/ z
Dim LngKeyE 7 g) x, `1 e2 b# \1 [0 L1 e
Dim LngKeyD
1 ^2 ^' \5 X; ?$ P: i* P4 ODim LngKeyN
+ Q0 q2 z: o8 @9 |- [  \Dim StrMessage 6 r5 R" s: x  K: D8 O
Dim ObjRSA
9 G' i6 A2 N9 B2 H$ j/ b! ]7 ?! VLngKeyE = "32823"
- S2 ~( e, m$ d+ D9 l; OLngKeyD = "20643"
% w3 y- H; c9 N& W+ TLngKeyN = "29893"
. ], I0 n) K: b5 X3 I# _  W: Y2 RStrMessage = Message
1 |3 z& \2 n4 H. sSet ObjRSA = New clsRSA ! P, v3 }1 U, u$ \. L9 n1 E$ s0 k
ObjRSA.PrivateKey =LngKeyD
( R, d, \( c1 {2 ~5 e/ M1 @ObjRSA.Modulus=LngKeyN
, m$ t# f1 J" {6 _" edecryptstr=ObjRSA.Decode(StrMessage) . P4 P1 e. Y: P5 R
Set ObjRSA = Nothing
, {' J& ?2 T: l# k3 Cend function ' T. y/ Z; x1 I# ^
dim last,first
5 s$ L4 Q6 w9 p  M/ }first="!@#$%^&*()"
9 r3 f* N! |% b) K6 z3 e8 zResponse.Write "加密前为:"&first , v- I* {: M( R
last=Encryptstr(first) : b) C% q8 k$ V& i3 S
Response.Write "加密后为"&last 8 z, \  D- X. p: b, F* i
Response.Write "解密后为" &decryptstr(last) 6 f" h$ u: \* u# H0 K4 G* I& D% |) W
%> ==============================================/ j' }& V" |0 I( m/ ^
剩下的就是字符的对照表了
. b& y4 E( {) \4 w0 D% J) @===================字符集================8 s) x: Z3 Q" B- n2 J
1_____6EBB
  o! g3 K* y& b$ `. |& r  b! [2_____5C1F
% m* l" M9 x- ^5 J3_____4D75
* c1 j- v3 E) n5 y8 Q4_____26CC
' P5 G3 O" N0 j8 A! N& f7 j  g( P5_____4F88+ F$ P+ X6 ^3 B
6_____3F4E
& ?3 i, {1 o, i+ N7_____0A9D- w0 }2 }& a1 s- G5 I
8_____1A1C
( n. @4 _$ ~0 }9_____6D203 }& z0 ~2 h- ^
0_____1089  Z$ g) F$ k" }1 [0 l6 r! e5 H) `
a_____0F3E2 l; `" C0 T9 e0 J/ ?
b_____3159
5 J: t1 Y. v$ D5 g% G, }6 sc_____3517; O3 Q. @9 P! o7 v& s
d_____419C
' k$ r4 J& ^. l+ y# u) me_____615C1 J  ?: U6 ]* X( T
f_____556F4 X( S3 X2 j2 z
g_____2B7F
% j& v- d0 E3 k% s& P8 Ch_____0F9C  `, V2 |) N) Y+ @8 X6 |
i_____00FA3 q) e# \8 h- D0 [: l8 I
j_____5A508 i; a8 v8 m( \# h3 l8 \
k_____2850
! v! p/ Y  d9 X+ e/ L3 l9 A7 ol_____3E7B
$ V9 s$ _; G1 \  i6 C3 _& K4 v1 r) zm_____71C5
9 B# e+ G" ?. |0 [9 |* O( G& H1 ln_____1FC8& r9 G8 Y1 q  u; q; |
o_____74C1
* m9 t8 v2 T: y, F: ip_____5FB8
; I8 Z$ g/ W+ X" u3 @6 `: ~6 r! r8 Rq_____60856 G1 Z% I, i# n+ R$ H# c
r_____3AC4
" t, G% Y1 N8 K. Q( N( n" z# ds_____2F509 w. n3 V) H+ R( b9 F
t_____36F8
8 Q  y/ c& H7 r3 q+ @- \1 z$ G* C( lu_____7010! z; n* W1 N/ O* J) z; x# r, r' X" D
v_____0B42
; o: C& f/ n# ]- tw_____1C7A9 E5 e2 X6 o* f3 E
x_____16F82 S( J4 M6 U3 q) R! t- Q9 J) _" B
y_____2EE7- H6 H% I4 ~$ V: w
z_____5CF3; K' P0 t' Q! W
!_____6233# D; K4 _1 M1 _: U
@_____3A45: I' R* Q* u+ S- ^  C* }0 z- @
#_____2291
* P6 Q5 A# g( V- H$_____5D5C
; Y2 c- k7 z0 Y5 _%_____09B9, n5 }6 X; y1 ^" `% J# r
^_____43EA
% x% A) `& x( E' [4 U: _&_____62B9
5 g; R7 `7 p4 b/ h) d3 g/ d*_____63011 ]: `" \' ^3 D9 ]0 w& {
(_____4659
: F1 n* f7 U, K, j5 i) x: [" d% A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表