返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
; T+ z8 C! ~' p* n& m4 e! E/ t原始出处:http://www.3ast.com.cm
) D' F7 M7 Q+ |. m$ Z+ B  [! E4 U: I! E; _
看不懂的直接绕过
: V$ X- K, L2 n/ a2 }( b6 m加密前为:hwy123456' L* X7 \; d# H9 a! E% s9 d# d
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E! s6 A6 y. L5 ?2 w) t9 ]6 E

- n) y( ]( I! o) G4 }============================================  b6 T; Z$ u5 m, k* @
上面是当时自己校内的心情。现在已经解破出来了,分享给大家& }: d6 N8 D4 u( U) e
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
' N' Z+ J: j1 [$ m) k$ x2 R2 E以下是RSA算法文件# ?1 ]' w: X2 _% Q, l2 [# [
4 F; M) r' O& A& V" h. L$ Z9 J% F
文件名RSA.ASP7 K7 ~0 U  F$ `5 h+ z
===============================================. z3 E( |& D  H8 T1 M
<% / a' e! H9 r/ A! w
Class clsRSA & b  T9 X9 Q: I% t- W* S2 D
Public PrivateKey ( L- W% T: v4 A" ]8 ^
Public PublicKey ; a) N( Y* ]# t$ ^
Public Modulus " I( h# X8 j4 m
Public Function Crypt(pLngMessage, pLngKey) & O; P) R, [1 Z5 U
On Error Resume Next 7 D2 e0 y9 A2 n3 H
Dim lLngMod
; i, Q! Z/ ~5 i* U- ^4 C6 \Dim lLngResult ( t* i( {7 z2 ^
Dim lLngIndex
$ l( l+ j9 E: w4 fIf pLngKey Mod 2 = 0 Then
& x" }2 h( V! t" p( l% w$ M* mlLngResult = 1
; y- l' [7 g2 W( G( fFor lLngIndex = 1 To pLngKey / 2
! a; Z- A6 x* T, WlLngMod = (pLngMessage ^ 2) Mod Modulus ( v; i: O3 O, \$ A; _
' Mod may error on key generation
; _( K+ Q- B3 o, u: K8 plLngResult = (lLngMod * lLngResult) Mod Modulus
; L# v9 N1 D' j2 u/ g9 AIf Err Then Exit Function " I. S. _. }) N4 f: j7 `4 r1 V2 A
Next ) }6 v7 v. F( ^+ ~4 u, q
Else
3 s5 h3 e. S1 }lLngResult = pLngMessage / E& a, z) b7 r& }2 Y' L. a
For lLngIndex = 1 To pLngKey / 2
% ?2 J1 G5 Q0 R4 zlLngMod = (pLngMessage ^ 2) Mod Modulus
, p$ L1 V% u+ F: z! n+ @) m. cOn Error Resume Next
7 ^. \6 p2 k$ U2 w! k: t- a/ X4 @' Mod may error on key generation
0 [' ]! }7 Y# {3 t9 qlLngResult = (lLngMod * lLngResult) Mod Modulus 5 m. x& S; @8 m
If Err Then Exit Function $ n% H5 }# y5 G2 [$ a7 W! h
Next 8 L$ R4 l; C0 Q/ E5 M; E* l* D8 ?
End If
. B2 k% b+ E2 T5 Q9 t; uCrypt = lLngResult / k: i: z; j2 l. U7 e' r+ `
End Function5 _) W7 }0 f" K

! T) d) V- v/ `( R( X8 Y+ x8 P' hPublic Function Encode(ByVal pStrMessage)
% {% N9 G5 x6 m, m  p. Y9 x2 y2 ?Dim lLngIndex 1 E4 b2 s' j7 h0 f/ X; u: M; W5 r
Dim lLngMaxIndex . t2 L; `! s' r( A
Dim lBytAscii % @5 k! ~6 L, ]% [# ^
Dim lLngEncrypted
/ `7 y5 J! y5 ^* G8 M4 _$ }' GlLngMaxIndex = Len(pStrMessage) ' U  }  @5 \, L' x" ]: h& n  w
If lLngMaxIndex = 0 Then Exit Function
' k2 d1 G6 u% X' ]For lLngIndex = 1 To lLngMaxIndex
" R. B, Y/ H4 zlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
! C" x+ _3 v3 o  \* ~lLngEncrypted = Crypt(lBytAscii, PublicKey)
- k3 H5 C6 \! |Encode = Encode & NumberToHex(lLngEncrypted, 4)
& h! d9 S$ d0 F& {Next
: u+ D! N" d! h; a5 N0 W* mEnd Function
3 t' Y+ @: L3 [* l5 uPublic Function Decode(ByVal pStrMessage) , X. |3 J" n* g# Q; \# v6 K/ x+ P
Dim lBytAscii
  u0 Z% y. _* f" C. P: `Dim lLngIndex
, `8 C  T& E! \( I, _- u. o, NDim lLngMaxIndex
. _) d$ I- k/ V, R* F6 dDim lLngEncryptedData
; \% S1 I& C) J" ^) aDecode = ""
' X' d7 R6 r6 z4 k' F+ \3 `/ C& AlLngMaxIndex = Len(pStrMessage) , R7 l8 @, J9 I- O
For lLngIndex = 1 To lLngMaxIndex Step 4 # a2 i+ I3 I; q/ H' ]/ u3 _
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
8 _+ H9 Y1 _8 DlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- ?2 G$ A" ]3 m& v& uDecode = Decode & Chr(lBytAscii)
' Q8 s/ q* u( ?: ]" d8 i4 B, E7 aNext
# N* M: {! J) `! LEnd Function , _/ `' F' k. R7 d2 l
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 h4 C* B+ e. p( ?2 UNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
9 t8 n+ s2 i7 z! IEnd Function
/ M) D; ?$ t3 `Private Function HexToNumber(ByRef pStrHex)
9 H4 B, `$ h: r9 BHexToNumber = CLng("&h" & pStrHex) 5 F/ f' h9 R* L
End Function - |" U; {+ o: z
End Class 0 h' x; f% A4 }6 e+ u! i
function Encryptstr(Message) 1 T# n' j) s7 @7 y+ X3 w, Y
Dim LngKeyE
' |! H3 N" i6 EDim LngKeyD * N+ Q6 P0 @# E9 O
Dim LngKeyN   @4 ^% _  t: I/ Q: P
Dim StrMessage
/ k" I! ?! z" n/ L( H6 T8 g2 rDim ObjRSA
8 `. x7 ~9 w9 E$ p; P4 ]5 dLngKeyE = "32823"
4 V7 g( F: w/ w& n# @LngKeyD = "20643" . b% I/ G9 h& E  ^+ Y9 n3 _
LngKeyN = "29893"
1 ]1 M- D4 P* H( }; q4 W8 i; ]1 [StrMessage = Message
* L' f3 u/ v! q( ?$ r) \9 `% LSet ObjRSA = New clsRSA
+ O* D- ?' z7 z3 g3 Y/ ]$ S3 bObjRSA.PublicKey = LngKeyE * p' ]3 y7 y+ m$ \/ m7 I
ObjRSA.Modulus = LngKeyN : v, a6 \: P, H) U- w# T
Encryptstr = ObjRSA.Encode(StrMessage)
( X$ W% ]: V5 u( E0 `Set ObjRSA = Nothing
3 r, |6 ^& ~; l1 U7 P* ^end function% {3 g9 _8 M* I" ~9 g
Function Decryptstr(Message) , b/ A' Q5 n& @# L
Dim LngKeyE - ?5 a. |1 p/ [3 j4 J
Dim LngKeyD
1 X+ E6 H* M1 F' q0 ]! `Dim LngKeyN
/ o0 X8 |* f+ Y( J" o3 u' a9 oDim StrMessage
, V( I8 X1 t$ y! U  W3 uDim ObjRSA
) v, g% ?) E# w1 \) ILngKeyE = "32823"
0 C! n; c4 j% k: u  rLngKeyD = "20643" ; h! Q! o  {8 U
LngKeyN = "29893"
* U6 T6 q, U! r  PStrMessage = Message , M% n% W( k) h/ E- C8 Q/ A+ Z; C* t
Set ObjRSA = New clsRSA 2 j) M6 |5 J: l% p6 r
ObjRSA.PrivateKey =LngKeyD 7 \, X3 @6 p9 S( t- m, l( q8 j) ?! V
ObjRSA.Modulus=LngKeyN
. S3 w3 P  _. Q5 j% N. Tdecryptstr=ObjRSA.Decode(StrMessage) ' N; K: B" T" ]/ |' f, E
Set ObjRSA = Nothing
* n0 X* c! ^& k/ H( F, Pend function
# s/ D  v* {- I; q; r4 _! q%>
2 A5 x: v# w1 @- ]+ e# w4 \6 C===============================================
: A  k1 L' C  J( I1 k6 ~- ~5 z; b7 \4 g! H
还有一个用于测试这段代码的test.asp
. r. z1 L: m- T. W% q9 _有兴趣的自己搭建个IIS测试下
8 @* J8 D1 c. f' C<!--#INCLUDE FILE="RSA.asp"-->
  ]  c+ e7 I3 h- a  g<%" }; W" k  S& l$ P
function Encryptstr(Message) ! k: i5 Q7 w5 m4 @. D' x8 `5 R/ \
Dim LngKeyE
0 _2 U& K. D0 vDim LngKeyD
4 _- J' X/ G" n* N7 u) w( ZDim LngKeyN . A# a6 `9 f/ ?$ P- ?
Dim StrMessage   l- e( _, b* X: y6 i3 y  i, N
Dim ObjRSA
: @; F+ V: `- ?9 j6 X! V' @LngKeyE = "32823" 8 g8 m, r  c% [  m# h7 }+ I
LngKeyD = "20643" ' j' |, o. ~: f: ]9 P  R& c( m
LngKeyN = "29893"
7 I- i" K" O( y2 ^& S1 n; ?StrMessage = Message
/ W8 a3 i8 P! kSet ObjRSA = New clsRSA
7 H9 w" I8 h  L* ~5 s3 x$ \) o- [ObjRSA.PublicKey = LngKeyE
1 x( }# Y( e- _/ aObjRSA.Modulus = LngKeyN
+ u( Q/ i# r/ A& X1 uEncryptstr = ObjRSA.Encode(StrMessage) $ }. o3 t) H. ^/ V
Set ObjRSA = Nothing + [3 c! O1 B. ~9 v1 _1 L+ A( u) v
end function 5 B2 v8 y# g, ^2 L
function decryptstr(Message)
; @7 M5 p+ G# z' CDim LngKeyE 8 H, [# T' k2 H  g" m# p
Dim LngKeyD
' C/ K- ~2 Y/ _" Q8 qDim LngKeyN
  C: o6 Z; D5 b! Z7 ]Dim StrMessage
: {/ x! Q4 k0 b. J( _* gDim ObjRSA
# _5 m0 G, `6 o2 n+ y) ELngKeyE = "32823" % P# [: Q% a9 O# j) z9 a: e
LngKeyD = "20643" 6 u. Q& X* m" y1 ]9 R
LngKeyN = "29893" ) c; H2 m6 A, m' L/ Y! j
StrMessage = Message 4 q4 {+ R% K4 n  S
Set ObjRSA = New clsRSA
) h, d9 f' V" TObjRSA.PrivateKey =LngKeyD
4 k' I/ _" t. x0 D. p2 k7 }) H" `- wObjRSA.Modulus=LngKeyN
* ^  [) s' X; T% _& T( J2 {; Jdecryptstr=ObjRSA.Decode(StrMessage)
3 B7 h1 g0 z8 U. d/ E/ lSet ObjRSA = Nothing
% \$ ^; b. `6 `9 z4 A- r/ [+ j  eend function 8 Y+ i% F+ `# t3 y' R
dim last,first   g9 ~$ |2 X9 S  H
first="!@#$%^&*()" % L: @8 G+ \& g4 i
Response.Write "加密前为:"&first
6 h( s7 M; S' klast=Encryptstr(first) 3 {4 \8 |$ [- \2 V& `+ x
Response.Write "加密后为"&last 7 c2 i& T6 C6 `; A: i$ J! P3 ~5 I1 Q
Response.Write "解密后为" &decryptstr(last) . c" f/ Q) K4 S
%> ==============================================( j% Y4 B* C8 ^1 Y: M
剩下的就是字符的对照表了3 p. m* W3 y- q6 B/ l. y
===================字符集================0 A( A1 B+ c5 a2 \% ]
1_____6EBB4 [9 B5 o7 Y) N' [0 p
2_____5C1F; l' c# Y* S: p; D
3_____4D75
/ W0 k* u0 h, f( b. B4_____26CC
  L7 A2 c- b8 i  s( U9 ^# k5_____4F88
  O. O8 h! k0 u3 [% O6_____3F4E
8 m. y- W3 @, y7 E2 z. F% t7_____0A9D4 p7 e7 G# f* y
8_____1A1C
: f6 w2 Z* c6 h9_____6D20
$ C' U# F6 @1 ^" `+ L0_____1089! B1 i. L( W2 Z' M$ }; R
a_____0F3E
& V+ @9 B% w* L, P" n( cb_____3159
) J: m: `0 ?1 [7 @/ P9 tc_____3517
2 A3 x. g& |7 Bd_____419C% ]+ |: }" @9 n& \$ l4 e- `
e_____615C0 Q6 }* J! a, [
f_____556F
# Z+ |8 f  v! ^4 X* sg_____2B7F
7 M* f# v* n3 e% p! Q" qh_____0F9C
& s7 N' K! r1 xi_____00FA
5 P5 E. g/ i2 b' j6 Dj_____5A50- I( n6 g  c& T% U! x
k_____28508 w! l4 A! L0 e- }
l_____3E7B* H9 A: W/ ?4 |( C
m_____71C52 \# ^4 ^$ m1 B
n_____1FC80 e4 F% W5 |* Q4 }
o_____74C1
3 L5 N, e; y1 ^" O6 T; O2 Y+ Zp_____5FB85 ?: [9 F) [' ~
q_____6085
" n" B2 _7 z% Er_____3AC45 {1 t# V: U* A5 R# |5 s
s_____2F506 P$ t2 r  y) B* _* Z% ^" E
t_____36F8
7 h' T4 W1 ?$ W, Q, ru_____7010
  G" |: t; {8 ^: c7 iv_____0B422 O3 p- H7 t3 [2 w8 v7 U% y* p9 y
w_____1C7A
* K5 k) I6 g7 k& J0 Z% `x_____16F8
; t2 m5 ~# J; E2 ^& L8 w0 Y/ p9 ey_____2EE7
& E/ c1 ]" _' Az_____5CF3
/ A9 I; y9 ^, f$ `!_____6233) c4 O1 T" f$ A
@_____3A45
$ Z; q% z8 R. O. X" m, X#_____2291( D. Z8 B' V- }: i
$_____5D5C
9 X/ ], W) [4 M" g1 H0 g%_____09B9
; g/ z% y  ^, J; H3 f1 d: {1 C^_____43EA
; r# R  X* \3 \4 [&_____62B91 g7 D3 [) ~+ c
*_____6301
- c- {3 P; J# Q$ h(_____46590 E  ~) x/ e1 q
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表