返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
/ h/ c. f! R+ u原始出处:http://www.3ast.com.cm' j5 b: M! w+ P' G( q; p! V

! r1 k4 r  g6 u. M( j, H3 }看不懂的直接绕过2 o. @9 P0 ~& i! Q
加密前为:hwy123456
9 S% t, i% T8 c$ S, _加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E# j( O; C; B/ x8 D

% E) e9 D" `# ]6 K% P! B1 P============================================/ Y& C* x6 z$ B2 M
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
# U* x9 t/ c2 E$ `; `# ~也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法/ U1 h2 q7 C9 `( t4 L
以下是RSA算法文件
/ J* l, h8 r# j5 u' T' x) Y8 I
1 N- Y& d) ]' m* p7 L5 M. T8 F0 F文件名RSA.ASP! _1 ?0 H5 v. H. V, h* }7 v
===============================================/ G' t/ L$ _" i: c6 Y
<%
1 w8 J6 F2 J9 v8 G/ z( L" HClass clsRSA
# y5 q( \- i4 F1 bPublic PrivateKey
+ P% \9 `. J* M3 K! B$ k" U7 b5 MPublic PublicKey ) R7 w7 _+ r$ p$ u- e: u
Public Modulus 0 X/ q; z7 o4 ?: N1 |
Public Function Crypt(pLngMessage, pLngKey) 9 ]% N2 c3 `5 s  W+ Y
On Error Resume Next
& }+ w( L  @7 ~5 a* KDim lLngMod   ?* Z9 o$ D0 E" R
Dim lLngResult
& r! f: r( v' {4 O+ f% H, ODim lLngIndex ; F" O5 P, ?2 y9 M$ u* f  |) p7 \5 S
If pLngKey Mod 2 = 0 Then
1 ]9 b* J/ L1 X: WlLngResult = 1
" ^1 @/ D5 n0 \) \For lLngIndex = 1 To pLngKey / 2 5 g( V* Z2 [+ z
lLngMod = (pLngMessage ^ 2) Mod Modulus & W: A4 u$ D( I) N/ g
' Mod may error on key generation : ^7 M/ X5 J% H* h/ h- b4 _
lLngResult = (lLngMod * lLngResult) Mod Modulus
! w# S" v; W# A+ G" g: JIf Err Then Exit Function
/ O- m& v0 N9 w3 l# j! i9 A  K- bNext 7 }5 v; F; G- g) \2 O
Else 9 K6 ?+ C8 x# k$ l* ]8 c: X. B
lLngResult = pLngMessage
9 T1 u% m- Z5 a3 JFor lLngIndex = 1 To pLngKey / 2
' a# {* U$ _- y. f6 Y2 tlLngMod = (pLngMessage ^ 2) Mod Modulus , g$ v6 w  `) P( x  n, x
On Error Resume Next
2 G# F8 t7 B# T' Mod may error on key generation " a# f0 v0 Z8 w/ G( ]
lLngResult = (lLngMod * lLngResult) Mod Modulus
% Q& H! Z, a" O; hIf Err Then Exit Function
. ~# }% R% I" y; ~Next
+ U4 a$ l9 L, Y4 iEnd If 2 I+ V% i7 X4 \5 T2 K
Crypt = lLngResult
4 \" ^0 f% p2 q5 [) a4 _End Function/ z, q4 \( k6 k( I1 x+ M, v

/ P9 W" t* E" q+ ^  M/ @  r2 EPublic Function Encode(ByVal pStrMessage)
/ I6 H& ]+ H2 mDim lLngIndex
9 c7 o3 X+ y) K( m! L; bDim lLngMaxIndex
6 ?5 `' ^6 R4 GDim lBytAscii   a2 S7 ^6 d. f; u! x: R
Dim lLngEncrypted 4 C  r4 N! f/ I/ X* c  x) ~
lLngMaxIndex = Len(pStrMessage)
- g1 o' R" }  b$ f% hIf lLngMaxIndex = 0 Then Exit Function
$ I! D; H, v  f6 JFor lLngIndex = 1 To lLngMaxIndex / u( Y6 R7 c, N
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ' g2 Z: s2 v' a6 t
lLngEncrypted = Crypt(lBytAscii, PublicKey)
2 ]8 H2 W  L1 t6 U  |& _Encode = Encode & NumberToHex(lLngEncrypted, 4)
% {+ @% W4 V8 i; v0 B8 |1 g4 V5 FNext 8 |3 i9 X/ ^, v" i* H3 t; i
End Function & e( i" w2 K7 s! e
Public Function Decode(ByVal pStrMessage) ! ^3 P) n# G# N, e) A0 w
Dim lBytAscii + W8 _7 n5 C' M
Dim lLngIndex ) Y+ I# \2 h3 I& @# [) @1 T7 C/ ^
Dim lLngMaxIndex
9 u6 J( w% P% A3 s- ADim lLngEncryptedData
# i$ T; `6 w8 r8 a1 v; w' w4 }Decode = "" $ i5 `* a# f" W
lLngMaxIndex = Len(pStrMessage) " s0 Q' r9 a9 l. c: n
For lLngIndex = 1 To lLngMaxIndex Step 4 2 e5 N$ x, B7 n. L4 v  V
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- p7 Z8 H) g% G* x' s7 \* l# GlBytAscii = Crypt(lLngEncryptedData, PrivateKey) , p  S+ _- U  v  u- \% t
Decode = Decode & Chr(lBytAscii)
! _- ?0 Z9 C# K9 INext
& Q1 R+ m/ K& q: U8 A8 AEnd Function * u2 Y; {! ]6 r4 K! `( \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) % c) Z: c4 d3 W9 o8 o
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   h5 {& E% q: \1 O# |7 J) R2 W
End Function
1 H. I2 M0 {) s+ h$ T" x& qPrivate Function HexToNumber(ByRef pStrHex) 8 q9 N' E, ]5 v7 ?9 x3 J
HexToNumber = CLng("&h" & pStrHex) * D+ e6 D- D8 h- n8 |
End Function : X! D4 X* W! @1 {. C: k# H
End Class 0 z. P1 ~3 |3 f* N& O9 J  Y
function Encryptstr(Message)
: m0 f! l7 J: K2 ~, Z( c* ^* i: {9 FDim LngKeyE
, l) @1 K' ~8 F+ T) WDim LngKeyD
9 X; ?, V2 q: p! jDim LngKeyN
' f$ ]6 b+ k4 D' ?" T  K' C  z' jDim StrMessage
7 I" A( d% }. Z0 f) zDim ObjRSA ( a. w. Z9 N, u6 g5 o  |) r
LngKeyE = "32823"
$ M$ h6 o/ k1 m, E& d0 X. X/ `LngKeyD = "20643"
! W. @, ]6 C7 z; U' sLngKeyN = "29893" : O( ]" a$ Z, q! N( ?1 u! a+ d6 l5 M
StrMessage = Message
3 D# m# P( }+ {& K8 q/ ?- gSet ObjRSA = New clsRSA * I% M/ I3 W. A/ ]
ObjRSA.PublicKey = LngKeyE
. j% ]# @: Y" \9 G7 V5 x  S" VObjRSA.Modulus = LngKeyN
  O& W, g; C% Z  FEncryptstr = ObjRSA.Encode(StrMessage) ; i0 x# m* l2 {( a7 H
Set ObjRSA = Nothing 4 M: r6 y' _$ ^2 q( {5 Y0 r
end function5 C% l; h+ h( R% g) ~, E) W9 H
Function Decryptstr(Message)
9 y- q" w1 H" Y* v6 m/ zDim LngKeyE , C1 P2 h: i( a- `6 I# v
Dim LngKeyD 3 G# a  d- z5 i/ ~
Dim LngKeyN
) R  i- c: H" H+ l/ n, c9 C9 rDim StrMessage
5 n1 \! t- ?% n! `% y# T! w% U  s9 \Dim ObjRSA $ k; q/ w% z2 T5 o' a7 S; l
LngKeyE = "32823" : ^; t& }  K/ W; ~. L
LngKeyD = "20643"
& I- v6 s9 C$ [0 ?: B3 A9 WLngKeyN = "29893"
' a8 |& n4 p6 z" Q6 M* dStrMessage = Message , G% S* K" Z/ K- y
Set ObjRSA = New clsRSA 8 `/ ]3 B: r% ]. k& l, C, r% N/ }; V
ObjRSA.PrivateKey =LngKeyD
' |4 ^' V: m- e+ oObjRSA.Modulus=LngKeyN
: ~5 G6 Z! X& v0 Idecryptstr=ObjRSA.Decode(StrMessage)
8 u  Q' H9 V) P8 J7 R$ `5 a- rSet ObjRSA = Nothing 7 n* W* v1 q& W
end function " V* c4 k" w# Y* l
%>
% a5 l; O  x) w% w===============================================9 s8 i: x- H. x
1 `0 u, m) i' i9 i' }
还有一个用于测试这段代码的test.asp
: F8 z, M+ j- ~; j, ~  W( a有兴趣的自己搭建个IIS测试下
5 R0 |0 Z3 Q/ b% F" m; ?<!--#INCLUDE FILE="RSA.asp"--> 4 w- A& [0 t$ R9 ~9 m7 [
<%' A/ m: R/ T  `7 r
function Encryptstr(Message)
8 K" Y  h+ S$ \; J* h0 D- NDim LngKeyE
# m$ |' ~! D8 }' G* l4 s9 o  vDim LngKeyD
. @$ V) o7 i1 e: A) }Dim LngKeyN
4 _& @6 m+ j+ b; `Dim StrMessage
# A3 z; b( ~  s8 D. BDim ObjRSA 3 k2 v  a1 v* t- x- T* _
LngKeyE = "32823"
5 w9 d  k" R) n/ o4 Q  OLngKeyD = "20643" 0 M, v" l0 }! M8 R
LngKeyN = "29893" " A8 K& \4 @* ~* Z# l
StrMessage = Message
9 H9 K: x* r- x- l- d6 iSet ObjRSA = New clsRSA 3 y- ^) U+ z7 R
ObjRSA.PublicKey = LngKeyE 8 V5 z4 M& [" s: q' S
ObjRSA.Modulus = LngKeyN & r" I- l' k  G7 Y- H
Encryptstr = ObjRSA.Encode(StrMessage) - |% z, k! N( }1 e  f* g$ V9 Z" G
Set ObjRSA = Nothing
7 p& _7 r, {$ N: |: i+ A2 p" H9 lend function
1 r1 {# E- C2 e3 ]3 f4 _0 `function decryptstr(Message) 7 \8 s* k* _2 z. U. a
Dim LngKeyE
/ R  U; _7 u, UDim LngKeyD 6 W. a2 |& W; B1 I. E+ @
Dim LngKeyN
4 w2 ?/ Z. ~% {  V# fDim StrMessage
$ k7 ?1 T& J1 j# GDim ObjRSA ( [% c$ {9 c3 i6 M( V, R8 o7 T
LngKeyE = "32823" ; R" r2 z, Y/ R2 R- E/ E0 E
LngKeyD = "20643"
% d7 y# e& D% l! D" r" ]LngKeyN = "29893"
! x" o' y* t# a" k/ B) r( xStrMessage = Message
# U: |+ ]8 e8 _Set ObjRSA = New clsRSA
) v. W: A: q5 o9 k5 b' |9 n( X" PObjRSA.PrivateKey =LngKeyD   N. ~6 j8 x0 R8 f, t
ObjRSA.Modulus=LngKeyN
' J: Y; p4 l  i) a/ z; d) L) |# gdecryptstr=ObjRSA.Decode(StrMessage) 8 t6 K2 l7 T% [8 ~
Set ObjRSA = Nothing , {/ o+ w9 a; O
end function
* B: J/ Y4 ^7 j9 c0 f( |  {dim last,first
  y( V6 ]: ]% B' S5 e$ e% wfirst="!@#$%^&*()" / y  f3 s8 l* Q3 p0 V
Response.Write "加密前为:"&first . v) d; m" \  G' X. V# q# u6 u$ n
last=Encryptstr(first) 3 G1 x1 `2 O1 E8 E
Response.Write "加密后为"&last 2 }' `  J$ N7 L7 b- T& X
Response.Write "解密后为" &decryptstr(last)
! u/ M$ h+ O9 T7 _%> ==============================================. E+ B& l8 V: s' }: v6 u
剩下的就是字符的对照表了+ T: F" @# ?. \! q* ]
===================字符集================
" @( y# B6 g" M% `1_____6EBB
( g* u$ t/ ^( u+ G2_____5C1F3 y$ Y$ x" D: y, {
3_____4D75
% z8 l; k+ _2 G) q6 [4_____26CC. B8 F6 a$ o! ]' _
5_____4F88
; V5 f& U. q) w; C6_____3F4E) y& o: w; F+ W3 I- x" D- Y. G: P7 n1 u
7_____0A9D# E6 L. G% h# D0 X3 W& V" c
8_____1A1C
, I+ X; r9 r& w  P" W- V5 w  Q5 {9_____6D20
1 C8 S) f9 n( t; G7 |: F0_____1089" G5 ]# j, X; f. \5 o
a_____0F3E7 N1 Z5 o1 T$ J- u
b_____3159
. V/ l/ x$ \  r4 Mc_____3517
9 p; n1 h5 S' l- B2 ^) d0 ed_____419C
$ \* w) T% U, |$ W/ Te_____615C$ Q' O! r4 m& k+ [
f_____556F
9 B5 f+ a0 K# @$ }6 _7 B8 Hg_____2B7F' O/ E8 o: |6 n
h_____0F9C
4 o( e* O$ C# t  u8 t3 n0 S) R' T% Ni_____00FA
) p0 |" e- t1 X- L( j9 R8 F1 N: pj_____5A505 x: `6 @9 \+ G: V' D
k_____28503 h$ ~: l( I* C% j8 U9 T- }9 Q
l_____3E7B! ^6 s& L2 B1 \# E
m_____71C5& ]0 L+ e  y1 i1 q. R
n_____1FC8) ^: j4 Y) {2 u7 n$ j9 r  M
o_____74C1
6 ]/ o! L1 A% V& Ap_____5FB85 {" c. T0 }) t8 S; x6 W
q_____6085+ S: p0 l$ P# \* i$ ~+ T
r_____3AC4
. h# Z. ~5 I7 ^+ x7 q+ i- l& G7 Xs_____2F50  Y5 A$ y. j5 d* J
t_____36F85 w& D& g" G- c0 }
u_____7010& k- V: V* ]# l, H4 P9 f3 Y4 z
v_____0B42
) [) W' h, O' t; g) W5 |) E) hw_____1C7A* L8 A$ I9 W' o$ H8 r& t6 T
x_____16F8- z& I" k0 @: N* P* S  p% X( m  r0 c
y_____2EE7+ O5 r2 Y( e& F4 Z, Y9 E5 p; ^' D
z_____5CF3  b6 d( U0 u3 I0 U$ V. v/ V: o! q
!_____62337 a: ^  [5 [0 f9 e7 y0 J* S" ]
@_____3A45
; G$ m" Y3 d8 H, q0 _#_____2291
+ s- L) n" a7 I$ s; S( ?& \$_____5D5C& N+ x/ D; Q. r& A0 ~- P
%_____09B9" H) |) [) @4 z( D' b9 q$ ~( g
^_____43EA
% {2 t  b* Q; Y5 U&_____62B9& n# z/ N( l- |8 n/ H& S
*_____63011 B8 c3 {5 V  e) f: I/ t* y
(_____4659
9 q  C8 B/ t# e! x)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表