返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
2 t! \* I' u0 h3 o' [3 U8 h. u原始出处:http://www.3ast.com.cm
( B- s7 u# v8 r3 N6 A
& e- O" T0 ^$ e2 @0 i5 }, k  G看不懂的直接绕过; Z& u, H8 W* g' R6 e3 m9 r
加密前为:hwy123456: ]7 r4 R$ T% i4 \
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 x( J/ a7 B& O+ X5 Y. C
- u4 c3 p9 e( N, \============================================
2 u4 O& [& T# A  |; ]4 Z上面是当时自己校内的心情。现在已经解破出来了,分享给大家8 I3 D5 V0 z+ {3 y, N' A- {
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法. x$ e& D' X9 ^& m2 y
以下是RSA算法文件
: Z. h% X4 f1 O
$ E2 x* o7 Z" D% g( G- N文件名RSA.ASP- Q6 C# ?8 i( P: m+ |! A
===============================================1 s6 \0 a  E+ ]+ E
<%
; t$ @; d) v$ X$ h- O- [* IClass clsRSA . X0 F; p9 M, |7 u# F
Public PrivateKey 8 F9 D# }! d2 C1 N" q# e$ w
Public PublicKey 0 w4 J; l6 D& w4 J
Public Modulus - ]" L7 \, z2 W1 ?2 _1 N! ?
Public Function Crypt(pLngMessage, pLngKey)
: p7 N. t, S9 r; y  t' wOn Error Resume Next
- s6 H4 J& I5 F; K2 cDim lLngMod # q3 k: l4 ]3 i( N% P9 j, Q
Dim lLngResult
8 z( @- o2 m1 }; qDim lLngIndex 4 h. w, U: S+ u( l
If pLngKey Mod 2 = 0 Then
- J7 F1 z6 C  |' [lLngResult = 1 $ K3 L3 X  F+ x. e% R) W" r
For lLngIndex = 1 To pLngKey / 2
- e! `- S# n% l% mlLngMod = (pLngMessage ^ 2) Mod Modulus
' B# R4 b, R/ n' Mod may error on key generation ( K) y) i) e9 @4 K/ C
lLngResult = (lLngMod * lLngResult) Mod Modulus 9 R# W5 N! Y/ l, N: t5 u
If Err Then Exit Function
+ k* a! I1 g' h# j8 @Next
6 {- M0 @7 j  OElse
  w' T8 N. n6 LlLngResult = pLngMessage * o8 ]/ @& Y, D  ]& o7 ]
For lLngIndex = 1 To pLngKey / 2 : y1 ]% C" w: w& y, b
lLngMod = (pLngMessage ^ 2) Mod Modulus * G5 b7 X4 b5 z8 n6 X
On Error Resume Next ' R  o) t: U+ ^8 U; [/ h/ Z, T( A5 L
' Mod may error on key generation
+ o: ]* J. z, n3 a3 QlLngResult = (lLngMod * lLngResult) Mod Modulus $ u5 r1 D1 a0 o- M, \
If Err Then Exit Function : H% g4 T' r& I! A5 @# R
Next
) }  Y! w3 p$ zEnd If
! ]" i0 P7 z, \) P; i: Y6 ACrypt = lLngResult
! D& Z+ _1 x* Q2 p! M  H! o. n0 DEnd Function
0 Q- y* f& U2 k2 e2 v  v7 P3 P7 A
Public Function Encode(ByVal pStrMessage)
2 I) x- c2 ^8 G6 @Dim lLngIndex ; Y+ W9 ^" E# i9 o- [- m
Dim lLngMaxIndex
6 O& R+ ]4 Q+ HDim lBytAscii
# g/ Z2 \7 w8 M% g" |! d* uDim lLngEncrypted
3 G6 y1 i5 W5 d3 \: }( m( p5 e2 VlLngMaxIndex = Len(pStrMessage) 0 z7 v6 r' H/ }8 `9 G* J, P1 n
If lLngMaxIndex = 0 Then Exit Function
# e/ q$ W) B: F; GFor lLngIndex = 1 To lLngMaxIndex " n3 Q+ w$ x, \9 n' b4 p
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
* \; _% T3 X* ^" G8 ZlLngEncrypted = Crypt(lBytAscii, PublicKey) & v$ H$ N# Z. ~# I/ n( \
Encode = Encode & NumberToHex(lLngEncrypted, 4)
3 y  c9 I. m( u, N, a% VNext
. W5 a* G# k% t/ H0 N! IEnd Function
9 ?/ _* `6 f- ]) G* y) U# ZPublic Function Decode(ByVal pStrMessage)
9 n' j# d; j* I# |: [- tDim lBytAscii
& c' l* h* Y* HDim lLngIndex
  t/ \  ?& Z0 Q4 j. ?) ^6 WDim lLngMaxIndex 8 ~( P* m; F9 F5 h7 y( w, q7 y
Dim lLngEncryptedData
+ @: x  k  y; K5 x- ]5 N; \1 eDecode = ""
) h+ g9 m4 ]7 e/ ?lLngMaxIndex = Len(pStrMessage) . t- ^& X2 i; j7 S8 d* g  {
For lLngIndex = 1 To lLngMaxIndex Step 4
! d4 v+ C0 Y& T$ IlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
0 ^* H, u3 w5 U& @lBytAscii = Crypt(lLngEncryptedData, PrivateKey) " \! Q# p- P7 E2 W; ~3 f, Y
Decode = Decode & Chr(lBytAscii)
2 ]0 L3 B5 n; p, I: H$ wNext
# j/ s# I2 |9 c) R) d( v9 |End Function
& i9 p0 S* X2 h, e. x4 wPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 g7 Q: K  Y0 X) n* ]NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
! B. D. n. l  w  u. n+ ?* VEnd Function ( ]& u2 g0 J3 B) j4 O; V
Private Function HexToNumber(ByRef pStrHex)   V1 r  }$ g, |/ ]
HexToNumber = CLng("&h" & pStrHex)
: F: o& m7 d- ~$ \End Function . `4 }; [/ w& Z; s( M
End Class
6 t/ \; d4 d2 u) F0 r5 V6 J+ Ofunction Encryptstr(Message) ) q' q7 k3 t3 z9 S
Dim LngKeyE
# F# |2 ^! M* L' z. d' G# M9 sDim LngKeyD
. h; v' u( e/ X. |9 M4 {Dim LngKeyN
3 z- j/ I; p3 N1 I5 w) oDim StrMessage
9 k/ z7 Q9 f& wDim ObjRSA : A) x- i2 Z. Y1 a! o
LngKeyE = "32823" ; [2 q# L1 ?& k
LngKeyD = "20643" 1 p# e9 G' x; X: \2 _5 E$ q: y
LngKeyN = "29893" 5 v6 E, d8 J+ l9 A) T/ h
StrMessage = Message ! X) ?0 U' |5 r2 F, f
Set ObjRSA = New clsRSA
) f4 S4 `" o9 F/ }3 qObjRSA.PublicKey = LngKeyE . \) C% \' K( I
ObjRSA.Modulus = LngKeyN
4 z# e" b$ C) C4 F) UEncryptstr = ObjRSA.Encode(StrMessage) * c6 _# Y9 d% H, t# ]* ]
Set ObjRSA = Nothing
0 g# l, t  f$ F( @5 o" n, qend function- \1 Y: b1 B. f- k: M+ D  p3 E
Function Decryptstr(Message)
! \4 D8 W+ k4 D& N6 ?Dim LngKeyE ) ]' }4 G3 c' ~5 |$ A
Dim LngKeyD   T/ Y; m* G1 w0 v; x
Dim LngKeyN / g6 d9 Q$ \4 T) Z
Dim StrMessage
5 _  J  p" C& b" wDim ObjRSA ' D; \, f. t  g2 B$ Z
LngKeyE = "32823"
6 F7 d/ h) {. \( j) sLngKeyD = "20643" & v- W" L4 g9 \( \; J: j
LngKeyN = "29893" - [# ?" i. [% ^5 ^3 n
StrMessage = Message 6 K8 t% R: v0 y0 r0 |8 N
Set ObjRSA = New clsRSA ( B8 |. K- }$ n6 E. P# ^
ObjRSA.PrivateKey =LngKeyD
; @6 d8 w- I/ E3 r  B* SObjRSA.Modulus=LngKeyN ! B1 F! \' @. n8 J
decryptstr=ObjRSA.Decode(StrMessage)
4 j+ ^) v  h1 y, M0 bSet ObjRSA = Nothing
9 K2 s- \  m! k% {7 b9 Y) dend function
( I* m5 B$ k$ x8 }! F%>
; l% w9 |  D& P! {5 H% t===============================================
- @/ A7 O7 c6 O, E- T( x9 R7 W' k0 T8 _5 Z. T
还有一个用于测试这段代码的test.asp1 V2 D8 u* {. M  j5 u& N8 p- |
有兴趣的自己搭建个IIS测试下
; B3 @/ [$ r% j; @<!--#INCLUDE FILE="RSA.asp"--> . l: N7 n7 z, g' t& x6 I
<%- b2 {8 ^! C' X6 |$ h+ Y9 N1 P
function Encryptstr(Message)
- b" h: a. {! s# ?Dim LngKeyE
8 ~. H- z& s3 L( W& EDim LngKeyD : y+ Y+ G2 Y0 o- L
Dim LngKeyN , G! ], U5 S( P9 _! @
Dim StrMessage
- z+ P, T& Q# ~8 j9 kDim ObjRSA
* g( S0 Y- I- k! cLngKeyE = "32823"
! {) e5 J6 I4 S0 t5 n# S, sLngKeyD = "20643"
& k( I% C* [! W% L- FLngKeyN = "29893" 7 f# U: a, D' P5 ]% Z6 ]! L  t. v, o
StrMessage = Message
0 i$ D/ V1 s% o. i+ h1 ESet ObjRSA = New clsRSA
; N* W& r! P# M! v$ N5 e% wObjRSA.PublicKey = LngKeyE + L# ^' Z6 {! r( g0 L/ ]$ M4 ^2 ^
ObjRSA.Modulus = LngKeyN
+ i" y9 D3 m  K0 R* o! x1 M  s# c+ vEncryptstr = ObjRSA.Encode(StrMessage)
) J8 ?5 y0 k9 M, g9 m7 m% v/ lSet ObjRSA = Nothing - j0 w) C- ~/ v; G
end function
' v6 W: N. g9 P$ D: lfunction decryptstr(Message) ; R- V7 w/ J; }- u7 |3 y
Dim LngKeyE   I6 n5 L- a' l  V, }, M5 [2 U
Dim LngKeyD ! {2 |( W/ B- P1 `9 f9 c
Dim LngKeyN 5 j9 ^: ^2 o( {
Dim StrMessage
( |) s; O1 G) t1 [Dim ObjRSA ' j+ P& p6 B0 {2 Q4 x
LngKeyE = "32823" - l  U3 ]3 T& l
LngKeyD = "20643" 1 v9 [! L" ?4 Z
LngKeyN = "29893"
1 P) g4 n' R5 l, X+ R/ oStrMessage = Message
; \# c  r9 p2 ~8 A/ P+ xSet ObjRSA = New clsRSA 0 a: j  B; ^6 ?3 n" A
ObjRSA.PrivateKey =LngKeyD
& s2 a! b* g9 [6 B2 PObjRSA.Modulus=LngKeyN ) E# i0 G5 P* z# H: B
decryptstr=ObjRSA.Decode(StrMessage)
$ Q  V9 }4 d6 E+ b1 u; A7 QSet ObjRSA = Nothing ) W5 V# Q! B9 w( |
end function / |4 f2 n0 o4 l) Q+ R& Q
dim last,first 9 n0 f  Q0 J& Q' x1 j
first="!@#$%^&*()" + ^, m( q3 b4 X! P
Response.Write "加密前为:"&first
4 u$ b+ R# M  b1 k( ?last=Encryptstr(first) 1 Y* S) n! M5 j8 O
Response.Write "加密后为"&last
% P! k5 _. J  s& W, {: C  v3 p5 M9 f) N0 HResponse.Write "解密后为" &decryptstr(last) , H- O& s; v5 F/ U- r0 I
%> ==============================================7 b, r, w; U6 R; z3 s# l3 T% ^
剩下的就是字符的对照表了
8 b- u  ]- R( L) H5 a# w===================字符集================
$ _! j! Z! G! v0 I0 v# O9 [1_____6EBB
1 I5 |/ T$ _  w2_____5C1F: r: @  g# k+ n. @* x9 c4 M
3_____4D75# J: m. k/ ~9 h1 R) J7 X
4_____26CC6 y) `$ t$ e" O
5_____4F88
) ~; {) S7 D& }, \! M$ f5 @6_____3F4E( e" P& Z9 X2 B$ g0 S% i* Y
7_____0A9D  R: o3 ?. P9 b' @' n2 m+ I0 B% e
8_____1A1C
/ A+ w1 N  J6 e0 T4 m& {% P7 @3 V9_____6D20
2 T' q6 W) A2 q0_____10892 U2 Y* q0 m- ]- }$ x# U* p2 ?% F
a_____0F3E
  a7 K, v8 v1 D" p  B% l7 wb_____3159
" U" h3 C* \( X6 V/ d0 l7 ic_____3517
& M. m  c+ U, `* I' L3 id_____419C; A5 G$ Z: }/ m
e_____615C/ V- ^! u" ]7 {6 B
f_____556F6 O" X) E/ `; R2 f
g_____2B7F5 k) Z) A  w2 f& d, |
h_____0F9C
9 [) g  }) ~& r: ^# ^i_____00FA
0 f; z1 X" R% {0 M$ Y$ e/ i7 O; Yj_____5A50+ y+ ]6 F6 F: g4 e
k_____2850
; k7 E* c6 N# `' N! C' {2 S& _9 E: cl_____3E7B
& j. }: j; ^" E1 B9 g! ~: ^m_____71C5/ k  W8 n5 u* G8 o& n% x8 M5 B* {* q
n_____1FC8& S! j5 C+ t: g' n
o_____74C18 J3 r; T& M& y1 W( \( Q' u
p_____5FB8- b  v( i. e% [- M; n6 T
q_____6085
9 w+ G; M5 i2 B7 B& m- kr_____3AC4, [) d$ K& ]( D$ j0 `  [
s_____2F50
: q& [; n1 I" D9 S& m! Dt_____36F8
6 T3 P  R5 ]# Q# Y. nu_____7010
& K8 C/ P3 ]) k3 Hv_____0B42
# H& J7 ~9 ]0 }5 m' n$ [" Zw_____1C7A* s) D3 ^1 x. R1 W- \; Q8 i+ m0 G' m# X
x_____16F85 n# _, Q# {4 \. Q
y_____2EE7
; I# K) V3 Q$ D/ E- Jz_____5CF3, T4 z: G0 n& r# \' M& z
!_____6233
& Q3 H+ j; P1 T; y@_____3A45, m+ e0 f& v6 L+ B
#_____2291! r$ o* q0 h. O7 J6 G6 P' f- p
$_____5D5C; ]# a( n& n* P. F( N" F
%_____09B97 y7 q5 n3 C* q/ c$ H& N& J
^_____43EA$ _5 z& b" X7 i. V' c6 H0 h, b
&_____62B9
% O, B5 k  V6 n5 X. c* s: i) s*_____6301
3 A2 b: T& F) m(_____4659. ~4 j5 Y, ^* e: \7 |) m
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表