返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, h6 _# ?2 p: L. v8 L) D! [原始出处:http://www.3ast.com.cm
" w- b$ L4 Y3 Z2 `6 K1 |5 A
* O- L9 E! {. T7 u7 A! R看不懂的直接绕过, I8 X) M' S' s9 Z  Z. Y
加密前为:hwy123456
5 ?/ |3 M& ~/ I1 }7 y加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E+ t; D2 H. d0 C

, K# x  o+ b. w5 g2 P9 c; \, G============================================) L  d- \8 B8 W3 q4 s
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
5 z8 Y" S" n) a7 I  V/ R" _也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
, n8 V- o- y4 X6 l5 H6 ?( R- C: q以下是RSA算法文件
0 ~' F1 u' B+ d( ]0 l- l3 F
2 p! `  O8 B; }6 J- m+ L* j文件名RSA.ASP
- ]8 T, p+ p) ?% b2 B, {+ S===============================================0 Y, k/ r5 i1 c8 Y( H; ?3 t' ?- C
<%
/ U% \2 \3 r( w1 |0 T  ~! QClass clsRSA + O7 l; q' k+ l) b! a6 r
Public PrivateKey
$ _9 R, A+ l$ f/ ePublic PublicKey ! y- t) Z1 R( e# b1 D
Public Modulus
: W  v; {4 `7 ePublic Function Crypt(pLngMessage, pLngKey)
# ?6 W9 I' t7 _On Error Resume Next
9 u1 D& O8 J$ ]" J& O; K: V6 `Dim lLngMod . q# y  @8 l1 E/ b
Dim lLngResult
- }% W: V' {# z4 Z9 r* EDim lLngIndex * m8 v: A  F7 Y# L& F# ^8 A4 R, N
If pLngKey Mod 2 = 0 Then # l2 r) [: y8 B& D- q& a
lLngResult = 1
3 o8 a0 A: j/ |# X$ sFor lLngIndex = 1 To pLngKey / 2
9 T" R! f  \5 ]( klLngMod = (pLngMessage ^ 2) Mod Modulus
* ~. G2 g9 B+ b) j& ?5 V& k$ W+ i' Mod may error on key generation 2 \1 U# V1 N: @/ e/ A/ Y5 P
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 ?+ c4 _2 h3 Y# r. t/ `If Err Then Exit Function : _/ R# ~1 m5 `3 a! |9 t- Q* l
Next
0 {) q$ o$ r  _Else ' O/ K; m0 h' j- w. h+ L4 V. Y
lLngResult = pLngMessage , t" l  z: u6 J4 p5 P5 ]
For lLngIndex = 1 To pLngKey / 2 " [" _( K* X/ f
lLngMod = (pLngMessage ^ 2) Mod Modulus
% m2 f: Z- o0 j# z% q6 v$ ROn Error Resume Next
; j6 l$ ^: y# t0 P. }& u8 k  ^' Mod may error on key generation : A4 W+ |; |, s( E  Z
lLngResult = (lLngMod * lLngResult) Mod Modulus 8 C( o: y4 B* S; E* y3 [* y
If Err Then Exit Function # q* t( p# `+ _
Next
% W* Y- v6 p" a# v7 VEnd If % e- w9 q% u8 _) ?
Crypt = lLngResult
, t- L" \. b/ W" Y) EEnd Function% a; W# i7 y& A% }2 ?( M& W

/ x4 u' v$ q: d( s  [. A' r$ O7 PPublic Function Encode(ByVal pStrMessage)
( i) Q2 j- U3 hDim lLngIndex
" p2 P, N  w( @Dim lLngMaxIndex
9 z0 R( G. S! ]- F9 {9 L! xDim lBytAscii
" |  {+ U4 Z& R9 K4 ^# a  PDim lLngEncrypted
7 ?, _/ b% I) j. k2 ulLngMaxIndex = Len(pStrMessage) 3 \3 V" L: C7 M
If lLngMaxIndex = 0 Then Exit Function ' D& z0 I! f4 b' \3 I  @
For lLngIndex = 1 To lLngMaxIndex
, c( j  W6 r4 s, W: S0 PlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
/ m' j- y# m! nlLngEncrypted = Crypt(lBytAscii, PublicKey)
* C0 W# Y9 x- l1 G! P" eEncode = Encode & NumberToHex(lLngEncrypted, 4) ( R  T0 c* K% u2 k! |3 {- k
Next
+ E" X9 N" n* I) H3 ^End Function
% J6 q" M5 ?4 V, U0 |2 d$ zPublic Function Decode(ByVal pStrMessage) 3 H$ Y; B- @2 T9 q
Dim lBytAscii
4 g3 N$ s( z$ g  \) ?7 l( NDim lLngIndex
: h/ s; c2 d. T- P9 jDim lLngMaxIndex ) ?% S: L7 n3 S1 G! m
Dim lLngEncryptedData " ~/ L; M5 F! }$ r
Decode = "" 8 z* H" ~, u  P* I5 p* ^) B9 ~
lLngMaxIndex = Len(pStrMessage)
. t# I! N/ B9 C6 PFor lLngIndex = 1 To lLngMaxIndex Step 4 $ S7 t: X5 g. j" ?$ o
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
. |: N* j& {3 B7 {% E! zlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
" _7 y: G0 V# d7 ~+ k! R. i2 YDecode = Decode & Chr(lBytAscii) . E1 V2 C% B! }- {( D
Next 3 n7 K/ w2 s2 f4 T0 A  }
End Function
0 z% @! C) n) p5 Z, p" j2 n% m% LPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
* B! b: A1 u" Y/ Z  ]3 D! nNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
: S$ `% N$ @! ~2 @% hEnd Function ! Z: c/ G' d3 u6 c* K1 |
Private Function HexToNumber(ByRef pStrHex) ) s% Q9 b) j3 Q  ^5 Z
HexToNumber = CLng("&h" & pStrHex)
1 }2 e1 R% P6 \" X% A. dEnd Function
, d( n/ _7 n8 ~0 |% Y5 |End Class
3 k7 ?5 {# y: Z# k1 Ofunction Encryptstr(Message) - X: _, t' t: V7 h$ @0 c
Dim LngKeyE ' {( A: h) d5 g
Dim LngKeyD
; B) n7 a1 L7 Y$ j3 \* PDim LngKeyN
7 V9 `8 U+ Z# p: a6 o" ZDim StrMessage
6 \4 _2 F3 X, p7 r$ pDim ObjRSA
6 Y& C. g" C7 U  tLngKeyE = "32823"
+ T) [8 i! D  X: f( u7 H5 z1 Q% L( ]2 YLngKeyD = "20643"
( ]) J; A) W  e- l$ QLngKeyN = "29893" 3 s6 Q5 ~# R" Z( T* s* z
StrMessage = Message
0 L* N1 u% }8 L7 zSet ObjRSA = New clsRSA : C' R* d6 L$ b0 }8 P( G2 d7 C
ObjRSA.PublicKey = LngKeyE % r/ z& _) B% l% G3 T9 f+ @. _. `: S
ObjRSA.Modulus = LngKeyN ! w9 t2 L7 d- l& a9 K1 F2 u
Encryptstr = ObjRSA.Encode(StrMessage)
; Z- q) Q% c1 g( t2 WSet ObjRSA = Nothing
; q! W+ V5 R8 Z+ v' B; \end function
) [! F0 |! ^* U# M' aFunction Decryptstr(Message)
& f+ ^6 X, L6 C% L2 I# A/ FDim LngKeyE
& k5 d7 t# Z9 k) v% q& c7 eDim LngKeyD
* n  m5 ]0 \) _$ a( K8 \0 w8 b' I  \Dim LngKeyN 1 D' R) Z& k% z
Dim StrMessage
' @% g6 ]/ n& l9 A) ]Dim ObjRSA
" }$ D, P, C& H0 ZLngKeyE = "32823" $ l, Q+ ?) G5 N
LngKeyD = "20643" $ ?. X1 P& H  h& E, `
LngKeyN = "29893" % N  u" w* l( r- o7 I( e% ^+ F
StrMessage = Message
% g: [' R# T+ A" {3 iSet ObjRSA = New clsRSA 5 R/ D+ K" n- q8 E6 ]
ObjRSA.PrivateKey =LngKeyD
9 c  b" I( {' z: Z' D4 L( R2 \. fObjRSA.Modulus=LngKeyN ! n  T5 k$ f9 N- Q5 e' @6 Y
decryptstr=ObjRSA.Decode(StrMessage)
  N- K' F- J5 CSet ObjRSA = Nothing
7 r" l$ {' J7 K) l  F  \( fend function
, a$ }' E* r. W6 ~%>
- U: x- V% \8 z& }% u/ l8 v===============================================
& G5 s$ V0 R% P+ x0 b% M
% s7 ]# e: q) u) X还有一个用于测试这段代码的test.asp# c$ h  w. v! o7 _
有兴趣的自己搭建个IIS测试下
5 K, h6 w$ T3 Z<!--#INCLUDE FILE="RSA.asp"--> & \3 t) J. [! t3 @: P9 t
<%
* T, |" |8 g' R7 p& E6 hfunction Encryptstr(Message)
6 ]& ]' O8 A# f; [  e) J6 YDim LngKeyE
1 X4 w6 s! w1 U5 N2 ?$ m: g) C7 D  }Dim LngKeyD
2 b! ~6 z1 H- s( H- t! WDim LngKeyN 0 N% M6 L! H- c% k, s% G4 W
Dim StrMessage
2 u; z1 T' B. rDim ObjRSA
1 J1 g+ V) F+ `3 a3 s8 `LngKeyE = "32823" 7 r4 v- q. N. t5 ~
LngKeyD = "20643" 6 q% K2 g" j) \' s3 I- B
LngKeyN = "29893" 8 c! K; j8 b" }* G: I5 Q8 ^' d& H- q
StrMessage = Message
3 S% ^5 H$ B% M, D6 A. V- y$ u0 ~Set ObjRSA = New clsRSA & |; A) f' X" C5 `5 S6 M6 i, @! a
ObjRSA.PublicKey = LngKeyE - e/ P5 K4 g% N5 Y! y; e! T
ObjRSA.Modulus = LngKeyN , ^* w0 m  j' a, s2 d& b
Encryptstr = ObjRSA.Encode(StrMessage)
& D5 V; O" F: N) I$ N! J# ?Set ObjRSA = Nothing
; `; A" ^3 j$ F1 b% S! Q* cend function
# K" E$ J1 ]0 k# A1 w  E9 K+ z+ efunction decryptstr(Message) 4 _3 t/ O4 v; l' j' }' {
Dim LngKeyE
2 @. \8 Q9 l1 Z9 x2 oDim LngKeyD
4 V# B# b3 U5 ADim LngKeyN
# r0 E7 [, m9 e- i+ F4 l9 b+ m$ NDim StrMessage 0 ^. Q" _% Q6 c% v8 y: C, J
Dim ObjRSA   {: X6 e0 }6 O9 A# B& a( R& n
LngKeyE = "32823" + O- A, R- a* K8 p! S" L) ]0 p% _% a' V
LngKeyD = "20643"   e+ K7 @7 b: Q" b
LngKeyN = "29893" 8 s' x* Y" j! N. Y
StrMessage = Message " z- V5 e- t% V% K3 W
Set ObjRSA = New clsRSA / {- u, j: r* w( v6 F
ObjRSA.PrivateKey =LngKeyD 8 d* {0 j: D" W3 a& m2 t- G
ObjRSA.Modulus=LngKeyN
% k+ j% x  B' N" |decryptstr=ObjRSA.Decode(StrMessage)
& s2 j( w3 T6 F& m- USet ObjRSA = Nothing
2 P+ v* A# z7 Aend function
4 K5 e" C( ?2 zdim last,first
6 k" n( @7 @' `5 Y4 zfirst="!@#$%^&*()" " R, [3 j; v3 {& e8 s
Response.Write "加密前为:"&first
2 \7 R! R# O" V* t! q  Q# H. {* U0 V8 Ylast=Encryptstr(first)
( j- W5 q% o1 M3 EResponse.Write "加密后为"&last
3 e7 m# W! C2 v1 q8 h2 nResponse.Write "解密后为" &decryptstr(last) $ s5 d8 T+ U3 t. Y9 U
%> ==============================================, P$ I( M7 Y. S+ b  q9 A
剩下的就是字符的对照表了
4 {* N; W3 G2 x===================字符集================: r! s; z* n' Q" `
1_____6EBB) X% _6 q2 E% C
2_____5C1F1 X  g5 E1 j% N' c6 C9 W; @
3_____4D75
% J& e& y( c' M. n9 b# y2 l: H4_____26CC$ e8 z/ y3 x0 W
5_____4F88
! G" D* H* u' i3 o9 ~" E6_____3F4E
) n1 e  }: N/ n* T7_____0A9D
0 b# L: Z8 r. d1 s7 s# h8_____1A1C
0 y  G  g4 R/ b. {* G: p3 ^, h9_____6D20- Y3 q6 r. i7 t5 S3 r# B/ m) I
0_____1089  p: o% J1 z0 J; D6 F
a_____0F3E
+ T* R- J+ B0 ^3 b2 Vb_____31593 U& {1 X6 T! {3 e6 c1 J5 w
c_____3517
2 T: c1 d7 X6 Jd_____419C1 r* S/ z: j3 f3 @( |) w! M2 ~$ `
e_____615C
8 ~* X+ q' u  ?' I6 h5 bf_____556F
0 }, y+ i% f, ~$ R7 Ag_____2B7F5 x. c% k/ m2 Y, T
h_____0F9C
5 j5 y; Q- J$ c7 q7 J4 Z$ ?i_____00FA
  b) z! z8 C- `  p. Aj_____5A508 r) }9 v" k- M, q
k_____2850
6 M( D* }% |2 A" Il_____3E7B
6 @( l# W% \- V& \m_____71C5
  e# f& _& x; h% G; N1 Y3 en_____1FC8
8 ]3 o$ u0 J8 N; Mo_____74C1. Y* c) a/ Q: R! ^- K+ s: s7 w
p_____5FB8& [) w& p/ u! R  O; K
q_____6085
; Y: p- z- j* g8 q3 |r_____3AC4# J$ t2 q" g8 K$ h" r$ U3 Y
s_____2F50
$ z  [* H2 n1 n; T; \t_____36F8
, L  D0 i, ~- `9 W. L, o3 @5 p; ^u_____70106 _! q! o# i5 y6 D3 ]1 W( s
v_____0B42
1 ]$ A" J6 r  Y4 G6 Rw_____1C7A
" l' C0 w+ H4 V, y- w" K$ a( ux_____16F8
, l9 J* f4 n. i- l' Iy_____2EE7
1 o7 |+ K, q* j9 p7 W' c; B! Zz_____5CF3
! c4 {( C/ W5 [; g4 h!_____6233
# y' H7 O: [* p/ `1 O& t# T@_____3A45. W" a) Q: E4 s3 i- c$ B
#_____2291
  w& {0 S1 L7 o% q  o6 p5 Z- X$_____5D5C' \5 l+ |8 V2 p5 d- R5 N0 a) G" ?
%_____09B9; o# Y8 h6 h+ \8 m0 m
^_____43EA
3 d; R- L# w% e&_____62B9
: {3 A. m# F  e( m. F% G*_____63018 n# B, O* t) Y
(_____4659
* {- \0 D2 P3 [# L9 i)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表