返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
  G3 @0 T( F  ~! `* Z% w原始出处:http://www.3ast.com.cm- h  Z1 e2 q- C% i" P% @

  i" z$ C- D& d- T3 m看不懂的直接绕过' q$ b, O9 x: U$ q1 O
加密前为:hwy123456
* h& W+ t# k. w3 I7 H加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
2 |% W! H/ v$ c4 N( z( @* z% A$ \7 Q. x
============================================) Y% n( ^0 R& _
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
4 q+ [1 I+ a, H也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% `$ R7 N, Y6 {% q0 k& R/ M
以下是RSA算法文件
$ r) Z* ]7 M# E; K+ ?8 ^: ^  I
+ \7 {& L. H3 v7 K; S文件名RSA.ASP8 G) I; m! ^' {7 N
===============================================1 Q. ]& Y+ k& m2 q2 Z, [  K7 W
<%
# k$ N: Q9 g5 sClass clsRSA + k2 f$ y. v7 f* _( w1 f
Public PrivateKey # S4 t1 F1 i3 h; g- K
Public PublicKey # ]# p" n- q! c  g0 D* v
Public Modulus
9 Y  a0 `% U% P6 n: dPublic Function Crypt(pLngMessage, pLngKey)
+ Y. Y8 k0 S- s5 i8 gOn Error Resume Next 2 }7 v. z3 O  T8 r  y* \
Dim lLngMod " ]- O  l& _) d7 z& X+ \9 d- r
Dim lLngResult % b7 e* f( {- g* C
Dim lLngIndex 5 S. z; R2 T' G7 b4 q3 Z
If pLngKey Mod 2 = 0 Then
3 F. I2 V) L! a  w; ?/ d8 D6 T* klLngResult = 1
' ?, J; m+ g- t1 Q' z% I' _For lLngIndex = 1 To pLngKey / 2 , S. Q/ O) s0 Q$ S  w+ G
lLngMod = (pLngMessage ^ 2) Mod Modulus , m( {7 G( _/ z0 c
' Mod may error on key generation
7 Q5 @0 o: w) w8 H* d  o7 r% ^lLngResult = (lLngMod * lLngResult) Mod Modulus
, O& a/ g1 b$ j% Y; N0 v: uIf Err Then Exit Function
" M  y& q4 [$ X4 @4 {$ {Next 7 h9 P* Y; _- g) Q3 |8 i! ~: }
Else : C! A9 F0 x$ o' p, a" f; H
lLngResult = pLngMessage 0 I" M9 r8 n8 Z
For lLngIndex = 1 To pLngKey / 2 + C; B6 L8 l, U, X* G' |
lLngMod = (pLngMessage ^ 2) Mod Modulus ! s% K8 ^/ Q9 y& ]- p2 j4 Q, p- S3 L/ W
On Error Resume Next 9 y1 `$ Y: R* c: k0 w
' Mod may error on key generation
2 E- g( d( b( elLngResult = (lLngMod * lLngResult) Mod Modulus 2 Z1 Z+ b) D; |$ s; n
If Err Then Exit Function
  w$ E3 W" @8 E) J* nNext
3 ]( Y' v& W; d' X# v& `End If 4 O* @9 d/ E: D0 Q' d7 c- I$ A
Crypt = lLngResult 5 \2 F- F4 r9 D3 C
End Function; Q$ F* B, A6 H
- y+ G% q! f# `. \
Public Function Encode(ByVal pStrMessage)
5 Y; o  U1 j# m4 ~- K7 bDim lLngIndex 7 u; r+ `; C) V! J1 n3 d9 w
Dim lLngMaxIndex - N& T( d  \4 V- ?( P
Dim lBytAscii 6 W# p2 \, o$ O2 v7 N$ ]# j9 m5 \
Dim lLngEncrypted ( A5 E1 h& L. h$ [) L4 z
lLngMaxIndex = Len(pStrMessage)
/ C' s& k, E# ]6 s" nIf lLngMaxIndex = 0 Then Exit Function * Q- D' R/ b  k0 `- \
For lLngIndex = 1 To lLngMaxIndex 3 k- i9 c0 q$ @/ A
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 8 O2 S2 E1 S0 t4 _! J9 |& D
lLngEncrypted = Crypt(lBytAscii, PublicKey) # p' M! k, C/ e8 Q
Encode = Encode & NumberToHex(lLngEncrypted, 4) ( g6 G. ?8 d7 j
Next % \3 S& b$ ^. w
End Function
/ g* J- x3 w+ \& P1 j- U; L+ gPublic Function Decode(ByVal pStrMessage)
- g# ^1 a6 Z3 ?2 ~Dim lBytAscii
* \; D; @+ q9 F7 N2 pDim lLngIndex
% o6 H: {: d4 _Dim lLngMaxIndex . ~$ ?2 l! U5 d& J! Q1 }* p% R( A3 `
Dim lLngEncryptedData
- U, h/ j6 D; \' V+ h  Y% SDecode = ""
! R9 o5 c4 u  Q0 llLngMaxIndex = Len(pStrMessage)
# Z0 s3 g( ?- {/ L6 H8 uFor lLngIndex = 1 To lLngMaxIndex Step 4 6 ]0 v5 R2 l' v- o: `+ J2 q
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
; K( A4 S+ k' F. L- v% YlBytAscii = Crypt(lLngEncryptedData, PrivateKey) , q: H$ Y. V. o+ s& w! F. Z
Decode = Decode & Chr(lBytAscii) * G8 u) k8 {! @3 W+ r
Next
# ~! t$ Z  n9 g8 Q* uEnd Function
1 }$ M- n0 y7 L; [2 zPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) . y4 v. B- _& [0 `- h. }9 a4 p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
! B- s0 X- k# B0 F+ Z' H0 n+ bEnd Function ) j( u7 l/ \. M+ h
Private Function HexToNumber(ByRef pStrHex)
8 z6 n7 p# s3 R  A% o  bHexToNumber = CLng("&h" & pStrHex) " n, M- F0 u% j  e
End Function
7 G  _& E. W4 P' |/ n/ R( ~End Class
) s- u: M9 e' L( x. C9 d- B- _1 Gfunction Encryptstr(Message)
/ ~6 M& M5 B! xDim LngKeyE
" M$ _/ M, }9 i& ?7 o4 rDim LngKeyD ; r% m. W. l. v! V4 d& q; F+ g% R
Dim LngKeyN 5 F& S9 C$ Q, }  e, }
Dim StrMessage
8 n* G- e' ~1 @/ k9 t8 bDim ObjRSA
! r; S% L5 @8 R7 I0 JLngKeyE = "32823" ' G+ ]+ _; I* ^) X  F/ H
LngKeyD = "20643"
3 s2 E- ]' N5 V4 ~/ pLngKeyN = "29893"
8 |" e+ t( M+ K, E& @) Z3 J9 i# @, vStrMessage = Message 2 f4 `( a+ X  N! \
Set ObjRSA = New clsRSA ( T2 d! h* ]' }: G' [" a& H# n  ?
ObjRSA.PublicKey = LngKeyE : Y, L3 w7 p' N9 M
ObjRSA.Modulus = LngKeyN 9 t8 E+ b  r( X3 ~/ N  Z( Y$ n
Encryptstr = ObjRSA.Encode(StrMessage)
" V, R; h% I# |. K  v% jSet ObjRSA = Nothing
& g6 C5 n0 ~8 Y! x$ d  Aend function
! ?  |  t# s1 r# {$ VFunction Decryptstr(Message)
  e$ Y" A" v/ e4 ~Dim LngKeyE
  ?. G$ F1 r. Q6 {# ?1 oDim LngKeyD
3 [& L7 @6 q; Q5 ^; p" X& J: k0 mDim LngKeyN ; e1 S3 c$ X( g0 l" S1 M, f6 A. H0 U
Dim StrMessage ) B8 S& X$ B# g1 Y) s$ `
Dim ObjRSA , x+ {, K, j  W, l  r
LngKeyE = "32823"
1 M) o% J+ U5 _LngKeyD = "20643"
( i, B. ^$ W) g+ a1 ]1 {$ F1 |LngKeyN = "29893" - i* ]) l: [  E, Z* S
StrMessage = Message
  Q* Q' P3 n7 e8 _Set ObjRSA = New clsRSA
  z2 j8 l- T. \3 ]: J) lObjRSA.PrivateKey =LngKeyD
9 f6 A6 R4 k. y$ MObjRSA.Modulus=LngKeyN
4 `& A: o$ r$ Z0 Q( ^0 X8 F2 adecryptstr=ObjRSA.Decode(StrMessage) $ i% G1 e+ c' E; ^1 P
Set ObjRSA = Nothing 9 O* X1 c. T" ?* O; U; ^
end function 1 C0 h6 i" A4 P7 E
%>
2 N) Q- ?) e& d  V===============================================) w/ t8 K" K$ t
/ q% g% V) f  k4 ?
还有一个用于测试这段代码的test.asp# d' z/ `. Z7 F' Q: T5 H$ I
有兴趣的自己搭建个IIS测试下1 Z* @; y2 G+ _1 Z# J  v
<!--#INCLUDE FILE="RSA.asp"-->
" d! i/ J3 W1 n3 U) ?5 b% M) _<%
+ w, A5 }" U* l' y' `; s1 ~% O2 Ofunction Encryptstr(Message)
7 g# a/ L9 a! W! r# QDim LngKeyE
* g8 X( X7 K$ C/ S+ oDim LngKeyD - g7 P- x% z  X1 j! j; Z9 H
Dim LngKeyN , W1 ~. _$ v) x; g! R% [2 K
Dim StrMessage
: _5 n2 R1 M7 }  B9 b9 ZDim ObjRSA 5 R4 s0 Q$ v, ^& Q6 i
LngKeyE = "32823" ! W, D% R" i' R4 Q$ m4 z+ Q
LngKeyD = "20643" 7 b6 g% m: K! B0 x7 k( u3 O
LngKeyN = "29893" 4 P3 c" ~' ^1 B3 l  |$ ], d
StrMessage = Message
3 ?7 Y+ g  e" ^6 G& W) nSet ObjRSA = New clsRSA , z; ]$ T  E4 w* |" ?, y9 X9 |) \; O( @
ObjRSA.PublicKey = LngKeyE
. b: w" J, a+ i+ |( d; q3 v! MObjRSA.Modulus = LngKeyN
0 f! g& Z, X1 f. C- vEncryptstr = ObjRSA.Encode(StrMessage)
% o; J1 {8 W$ C. _( OSet ObjRSA = Nothing + l) D) P& l' f# \! c9 U7 V( I
end function $ u6 p0 y6 {7 |
function decryptstr(Message)
9 E" T) [& H0 w3 jDim LngKeyE 7 t# A5 u- R& i! o3 a
Dim LngKeyD
6 E9 {; y- K' n# U/ C: l8 EDim LngKeyN
! Z) Z" R! R" [+ ?- e) CDim StrMessage
5 x$ s$ w3 R8 V; F& _$ eDim ObjRSA ; t5 Z2 Z5 C% A/ v5 f* p* h
LngKeyE = "32823"
# L: X; m% J# ~, MLngKeyD = "20643"
: O6 ]& d& \2 C/ aLngKeyN = "29893" ' u; b/ e" Q; @' s) H
StrMessage = Message
$ n* Q& D- [% N+ {: `Set ObjRSA = New clsRSA : |$ N$ o3 t9 _
ObjRSA.PrivateKey =LngKeyD
' e' K. l% M6 I2 K3 m4 IObjRSA.Modulus=LngKeyN ( {( O: f! d2 p: B$ K7 `
decryptstr=ObjRSA.Decode(StrMessage) : h& ^6 ~9 J2 p/ g  b% j
Set ObjRSA = Nothing
" V2 K3 S: _( z$ L4 Oend function
, ]* Y: j/ P- R" Idim last,first + b: Q- r# b  W' M# g$ k
first="!@#$%^&*()" ' I+ R9 R- u9 a( T
Response.Write "加密前为:"&first
$ X7 }, ]' u2 h, A0 Alast=Encryptstr(first) 2 @/ }  h3 X. A- j
Response.Write "加密后为"&last , i4 c! k! c) ~5 G' @
Response.Write "解密后为" &decryptstr(last) . B$ ]/ A8 C  N3 m  h: l
%> ==============================================
' E" [' h, e5 ?+ U1 i- Y剩下的就是字符的对照表了  N1 m7 {# X& u2 c; w1 l- W. T
===================字符集================
7 ?& F8 S5 W. O; z" [# r) \1_____6EBB, [. w5 d- S5 q1 z
2_____5C1F
' b6 j2 v( w( C+ I1 K' \3_____4D75
5 ^# t& u( T. q4_____26CC
( M! t1 C, C4 Z' \5_____4F88  T* r( h5 O! c$ s1 N- B
6_____3F4E. g6 z6 `( J* y: K5 z! H) G
7_____0A9D
/ V, r7 |  R% ^8_____1A1C
; w; ~3 z& {' b7 G9_____6D204 d" X8 e" j" j( z
0_____1089
! v% E# u2 u5 I  I4 e- Z0 \. va_____0F3E3 r! K7 t8 `; l' a5 G/ m" Y
b_____3159, Z9 g/ K. d: J; ~" C
c_____3517
6 {- g. d' U1 t' T$ f  Rd_____419C
# {; k) G& Y  L1 ]1 W6 E  se_____615C& e; {& J$ N  J4 B1 j8 y+ I
f_____556F
! N; t: C$ u6 [) `1 T  Xg_____2B7F& |9 a/ y  s. G) n
h_____0F9C) K* [; T  \% t' C
i_____00FA
' t! H& I' J/ w( ^j_____5A50  Z$ R1 O4 y' g& {$ _
k_____2850$ A( x! W6 J7 [/ H
l_____3E7B
, ~7 q- V" `+ |/ }m_____71C5# s* V/ L1 U! g1 r9 z, X
n_____1FC8
2 W0 T/ y0 t8 F+ g, Go_____74C1
- y+ x0 [; U- {p_____5FB82 @, M7 S8 Z+ z
q_____60853 T, F# n6 z. \
r_____3AC4$ M5 Q  q+ U; H7 e! ~2 [
s_____2F503 V& t; ]2 w1 ~/ g3 s
t_____36F8( k/ L. |. U. i
u_____7010
+ t- H, t) ~3 m* X6 T# T1 B- I8 v4 hv_____0B42
( q" f4 e  {1 }: k0 G  p# _w_____1C7A4 m! H+ v; u/ c* f
x_____16F8
6 K2 i6 o8 J/ y9 P$ Z6 P# By_____2EE7( k4 ^8 x5 [2 z: H2 W
z_____5CF3* r- Y8 h* n$ d9 F
!_____6233! n( |$ B& X. G" F
@_____3A45
9 O' |6 p4 P- I#_____2291
7 d. M: ^- b2 ?" Y3 [' O$_____5D5C/ n! J' ?* _* f* n2 |( N
%_____09B9/ A7 R) R& ]. l
^_____43EA5 j  @1 m+ _& A7 ?
&_____62B9
- q3 u8 |0 s# Q/ Y6 q/ k; k*_____63019 U5 G# p5 k, ]
(_____4659/ z/ U9 z* ~  D' }
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表