返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: B7 M/ e# d0 I4 i9 `" A: k8 i原始出处:http://www.3ast.com.cm
8 B6 ?& c# D0 L
' \. d, G& a4 b9 t看不懂的直接绕过! D* n2 b2 x0 J5 O
加密前为:hwy123456; P- o" u( V- x+ Q$ ~, F. H
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  J' R% A& `5 @! s1 g
# {2 _" z$ ^2 u0 q============================================9 S% V) _4 z' m9 x0 v" m
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
! j- m# Q# J( e; G& f0 |, d% x也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
! H% V# z. u" [以下是RSA算法文件
1 t, V. s9 L# \+ l1 ]5 l' l5 D
. E3 E5 b8 N8 s( G% w文件名RSA.ASP4 V0 t5 K/ M0 u& Q
===============================================; v1 I& |6 c4 C) _4 a4 ^
<%
) `8 P/ a4 o! ~Class clsRSA - C7 O! V- i4 H" |/ `, x# s! U
Public PrivateKey * u/ _2 s9 R) f. n' j( Y
Public PublicKey
6 {) `4 r' Q* ?) F3 }5 _7 xPublic Modulus 8 A# u( X  z9 `4 H! X- r. E
Public Function Crypt(pLngMessage, pLngKey)
$ l: H, W7 |/ s3 b$ ~; l2 WOn Error Resume Next
. W+ G+ y0 Z& W8 SDim lLngMod
6 |" j/ `/ v, u: q8 @7 qDim lLngResult 2 ~( H2 ?5 L) W! i
Dim lLngIndex
" f6 F: R( b2 _/ T2 EIf pLngKey Mod 2 = 0 Then
, A5 A+ I9 F( N' F8 t2 }lLngResult = 1
! l; v% ?$ V8 j  N% y9 V+ H1 r4 N5 wFor lLngIndex = 1 To pLngKey / 2
' d5 v* O' g- s7 P3 K/ T4 ?lLngMod = (pLngMessage ^ 2) Mod Modulus
# u2 v+ C8 _# g2 \5 h% g2 M) X' Mod may error on key generation 0 u9 [& i3 y- ]; @8 @
lLngResult = (lLngMod * lLngResult) Mod Modulus
# g: l5 F+ {! BIf Err Then Exit Function
4 D! S/ ~! N& w9 n) A0 A: q8 G: ZNext $ b7 ?4 `# v' z- R
Else * A5 G6 z  w6 }: j$ Z
lLngResult = pLngMessage ! }' v! m, \4 V& ?, N
For lLngIndex = 1 To pLngKey / 2 $ Y0 h1 X" t  [# k( b) M4 t
lLngMod = (pLngMessage ^ 2) Mod Modulus 8 q4 i4 l6 p9 e- ]) f
On Error Resume Next 8 m8 l& W2 h( _7 P1 P& U& C
' Mod may error on key generation 9 U  K8 G& K5 e
lLngResult = (lLngMod * lLngResult) Mod Modulus
) L9 T2 I7 D1 F4 g7 rIf Err Then Exit Function + K7 [& W8 j- v+ ]
Next
4 [" C0 B, {# vEnd If * q% e2 A9 c9 J) ^# ^+ y
Crypt = lLngResult : R5 \6 l% i+ e/ X( B& s
End Function
8 v" ~$ p  G& y' j; p: h" q; u. f. U& l) C9 N. A. N+ u, R
Public Function Encode(ByVal pStrMessage)   T: j( I$ o( u7 A
Dim lLngIndex
6 c6 \5 w, [. a& K. K8 n; b3 XDim lLngMaxIndex * D# s' X6 C6 {7 `5 Z
Dim lBytAscii 4 w# j+ ?! D$ u$ T# s" |$ g! a
Dim lLngEncrypted ; H  G4 `6 v. [; ~- o, {* u+ ~
lLngMaxIndex = Len(pStrMessage)
5 [/ c) |  Z" |' n4 x5 _If lLngMaxIndex = 0 Then Exit Function 3 z6 M! j" Q! e5 ?$ a% n$ t7 U
For lLngIndex = 1 To lLngMaxIndex
# h$ W4 P, A8 _9 [lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))   P) e: R. \( \/ ^
lLngEncrypted = Crypt(lBytAscii, PublicKey) - P+ U( p, m/ B4 J; i1 R
Encode = Encode & NumberToHex(lLngEncrypted, 4)
4 t8 z* G7 {9 ?Next
& p) [8 I6 U/ }2 f; _End Function , O1 l' E0 Q. p
Public Function Decode(ByVal pStrMessage)
/ _* x8 M4 z$ C8 F% U- `& CDim lBytAscii
% z* F& B4 l& I1 ^. p* M2 sDim lLngIndex
: M2 L& {3 V  L4 zDim lLngMaxIndex
. i! H5 g& ^3 I( A, }Dim lLngEncryptedData
- f# Y) i9 ?/ h- XDecode = ""
9 R7 x4 a0 s$ g! @( P& ~5 ^8 y; ulLngMaxIndex = Len(pStrMessage)
- V5 k. R0 _4 B" g/ r5 |For lLngIndex = 1 To lLngMaxIndex Step 4
0 e2 n; S8 U/ U) D& n3 DlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ) _" X# J1 X% s" L" Y" q
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) , S3 O4 B' |7 e' g. p, S4 ~
Decode = Decode & Chr(lBytAscii)
- Q% z/ d5 [6 F3 [Next
6 g4 D3 S, l2 n( O: u4 D% T$ BEnd Function , l0 Z6 `4 C7 G
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) $ T1 i8 f/ g6 N, o0 y& e
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
0 h" V9 n% N; j+ f5 JEnd Function
0 a% c, C  @7 h& uPrivate Function HexToNumber(ByRef pStrHex) * A4 Q- w4 c% X; r2 c7 w
HexToNumber = CLng("&h" & pStrHex)
, e+ I5 D# j) y" N6 aEnd Function ! N/ _9 n) U7 E  i  p; n
End Class
+ z: t# w' g. {: Lfunction Encryptstr(Message) . P% w3 c( n+ X
Dim LngKeyE
$ t. \2 Y8 J4 N( {* P$ i  {0 SDim LngKeyD " W' b* S: }# {
Dim LngKeyN
. @) }* C) @/ z! N, IDim StrMessage 4 N+ u; o+ p+ a3 }
Dim ObjRSA 8 S3 t5 r3 h3 R& b8 i' ]# x: a! _
LngKeyE = "32823"
% P. ?  f' c8 o% u' JLngKeyD = "20643" , Q- o& m& a- E) O' `( p( v# U
LngKeyN = "29893"
  O' n' |! [4 h4 GStrMessage = Message # Y0 w' @; J' u( x; L
Set ObjRSA = New clsRSA
! @1 I% F! Y) o! z+ UObjRSA.PublicKey = LngKeyE
5 q" Y4 J2 F) LObjRSA.Modulus = LngKeyN
9 o. j- l/ z' `0 R. i6 n( O0 gEncryptstr = ObjRSA.Encode(StrMessage) : F( W. b% X" _( _' _  ~5 L
Set ObjRSA = Nothing
% H. h% V8 E# s3 h! oend function
7 j8 m% S; t* c2 R4 g) L5 mFunction Decryptstr(Message)
1 z8 {# f! l: j' D+ Z$ xDim LngKeyE 5 x" L, l" J- I  [" M6 y
Dim LngKeyD
% d7 v8 d6 Z. ]) C) Y9 w7 FDim LngKeyN * d7 f. B$ s' R# q  Z. n
Dim StrMessage
6 g) s2 ?) ~/ h, T1 O- GDim ObjRSA
. f5 ]" T+ X4 m& s1 C' w  c2 SLngKeyE = "32823"
& }9 J% w5 ^: qLngKeyD = "20643" / h4 i9 V& F0 v  Z5 k' m
LngKeyN = "29893"
% b2 C, S0 J# X1 f6 j4 m9 zStrMessage = Message
0 `/ C: V& j, T% w( V6 cSet ObjRSA = New clsRSA
3 T- D2 m. Y. k* kObjRSA.PrivateKey =LngKeyD 7 s2 Y" W& y+ a  _3 P
ObjRSA.Modulus=LngKeyN
9 F7 t- h$ }8 Z  u5 Ndecryptstr=ObjRSA.Decode(StrMessage)
0 _& I* y* m9 _) G' p7 N( T+ wSet ObjRSA = Nothing 1 q8 W' M  Q0 H1 z  y
end function
, c8 a2 \; x3 |5 Y1 x%>! K8 B/ e$ l8 m8 P
===============================================
- |, U$ ]( U3 O# o  j
# f7 n5 @8 d" _# {( d( R- D还有一个用于测试这段代码的test.asp
6 s. Y3 {4 o& t0 n: o! u+ o有兴趣的自己搭建个IIS测试下
, S) G2 r7 H( c0 C4 y( r<!--#INCLUDE FILE="RSA.asp"-->
% _* X* `- ^1 v6 m$ [/ g. A<%
. x# k7 X) d& }6 S4 {  sfunction Encryptstr(Message)
7 V; r0 j; O1 QDim LngKeyE
5 z. X! K; {7 a, a$ }$ A. VDim LngKeyD
0 e" p; {( T6 c: i% M4 o) wDim LngKeyN 1 q! ~) m; A' _& Q1 W7 |3 }1 V
Dim StrMessage ! L5 G) d$ {. S) `1 T
Dim ObjRSA 7 q1 B: D1 Y+ l  i( Y$ s
LngKeyE = "32823"
5 {5 z- ^; h4 R# n1 `  I; kLngKeyD = "20643" & |5 w' P) x* V6 o4 Z) A% z
LngKeyN = "29893" ! n' R( D2 U! I9 O. u
StrMessage = Message
- I7 n& N0 i) w7 M" {6 R4 Z( ISet ObjRSA = New clsRSA   {% a  y, r" s! G( Q( R
ObjRSA.PublicKey = LngKeyE
: b3 S; }* {4 B" yObjRSA.Modulus = LngKeyN
# f4 i& ?3 F: I; U/ H" |  cEncryptstr = ObjRSA.Encode(StrMessage) ' q. f+ n: D* s4 d8 Q
Set ObjRSA = Nothing ; r" L$ E4 B; T9 i! o7 L+ x
end function
: N9 L0 s3 @! E- X9 ?( a6 kfunction decryptstr(Message)
% g* R6 T% Z0 T7 D" x$ m, k4 }Dim LngKeyE
9 @5 {6 S4 l0 W8 {1 ?2 nDim LngKeyD # J* v* }& H- X& E& R! \& t
Dim LngKeyN
# z6 m+ n5 v9 I& }( W: X# qDim StrMessage 3 n' u3 f6 s2 A3 W
Dim ObjRSA 9 ]' b+ R- `5 s3 r
LngKeyE = "32823"
8 I; @' D$ m7 K* U1 OLngKeyD = "20643"
5 l- G4 k% x( ZLngKeyN = "29893"
; |- _4 C6 c  M, c$ c* _StrMessage = Message
' U- Z# F8 t) A$ d# z$ ?Set ObjRSA = New clsRSA ( E8 ^2 m& \0 |. W. u
ObjRSA.PrivateKey =LngKeyD 4 Q$ z, U. P" i
ObjRSA.Modulus=LngKeyN 2 n0 f, j& e* v* l% [" N0 i1 X
decryptstr=ObjRSA.Decode(StrMessage)
- [, e% l. I( @' zSet ObjRSA = Nothing
2 O5 v8 O6 m% |; ]* D1 Lend function
) W/ P5 d; F% F. \dim last,first
% b$ X/ ?2 j+ }8 Z' _9 w7 @first="!@#$%^&*()" 8 ~) u; D" `. s4 Y$ x+ v. K
Response.Write "加密前为:"&first
6 [' N' q5 C) Q4 N0 M2 alast=Encryptstr(first)
) q) {, x0 p5 X& v2 I! s3 }. BResponse.Write "加密后为"&last
4 i& V% i# _1 @# G7 H$ B$ vResponse.Write "解密后为" &decryptstr(last) ) a# L7 M$ S. @
%> ==============================================
- N% G; L' F( G  Y. n% }2 f剩下的就是字符的对照表了
- s4 ?: \* s. ]  c8 A( V+ ?# E===================字符集================% F: X  a$ [7 f7 J% [
1_____6EBB5 P& k3 Z( X4 k6 s( g3 V) \/ B( A
2_____5C1F6 [: O2 X# K% u  a7 m- p  n! q
3_____4D75
2 ~5 a, Z7 Y: b' w5 J; t4_____26CC* l! o  K: B3 B% Y7 w( d/ K, ?( h
5_____4F880 f2 v* x- b1 a6 ]
6_____3F4E8 l( z$ p8 n8 X% x8 H8 X2 I) t
7_____0A9D
! b0 n6 I6 X4 w/ p8_____1A1C: `1 E; w* I2 F5 R5 h5 U% h! T
9_____6D20
, Z( E& D' \. X  `7 b- |0_____1089  r& t4 d" t8 [
a_____0F3E+ G9 w# ]% P1 a' r8 F
b_____3159" {: B" T- T% S; T% `
c_____3517
3 P; e5 l4 v  }6 m$ gd_____419C; _1 w4 t6 I( U( [2 J% j7 Q
e_____615C  y" \; A' r1 n8 m/ |
f_____556F
$ Y" |. h. C/ ~5 ^g_____2B7F
& [! s) G' |: \; B2 c9 Z) Th_____0F9C% f# T, I) ?* W4 f# E% |0 _  [
i_____00FA
9 \3 h4 J/ \7 @6 qj_____5A50' c- J' s$ l/ }  w/ w9 C  T6 G) |
k_____2850  }" v4 U: E/ J5 z
l_____3E7B
4 l$ U9 E/ j7 Q. q& d& V! N$ f2 qm_____71C5
5 U8 `) k# A7 o1 p) d  kn_____1FC8  H5 f! }5 F6 F5 z  p" q  y
o_____74C16 @7 l2 b/ N9 d( {; k
p_____5FB83 X3 ~/ b4 u) E# V1 p% \
q_____6085" L0 j6 v  C/ @/ K. l! Q3 ?
r_____3AC4, \" d# F+ c* A0 z& T
s_____2F50# b& X1 w, \8 Z7 F; J' q
t_____36F8
' j; }; |$ E: j7 E# zu_____7010  p- {$ p7 c( [- Z: q9 F5 |, O
v_____0B42/ S9 {6 }' A+ r7 i5 ^
w_____1C7A
5 |3 y* @; y! sx_____16F8& u/ U* M" w3 ?9 @& `
y_____2EE7
2 y6 a* h& D" r& g+ g, q( z3 P+ fz_____5CF3
& g5 F: h6 I  ^# B7 g. H2 @!_____6233
: i! V5 B  F) a- a' C@_____3A452 _9 o% J$ P/ \6 Y% h- q5 |
#_____2291+ V) @( @( e0 q. x0 a
$_____5D5C
' z- {: t/ F  e4 [$ X2 [- j; D" f%_____09B9: ^) G" S) m2 Z4 J
^_____43EA
* c' A) ^, ]; E6 P, V6 W7 {5 \&_____62B9" b4 f; v0 h$ O" d" ^
*_____6301
0 N$ v; j2 U/ B) p0 y(_____4659. R: H( P. u5 W2 a
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表