返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
6 L" t6 n7 ^/ v, E% E2 w6 D原始出处:http://www.3ast.com.cm
8 E! i( ~8 h% t4 L  @
0 N" m- X" b" o0 d看不懂的直接绕过
3 j0 _, ?/ U. Q1 h# J加密前为:hwy123456- c& `+ o* \4 T# ?, c5 ]
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
$ ]# x  X( O9 p9 r! `1 D- |8 M' Z3 V/ N6 k" F5 U3 P: `- `
============================================
/ w( u' [: ^: \5 f2 M上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ p( R9 z3 ?: D; ]4 M也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法# n4 h3 v! F4 s5 @0 {: d$ z
以下是RSA算法文件8 R$ Z+ R" G1 J- T/ G% J
" Q2 f6 }  `# Z  t( e, F
文件名RSA.ASP
: F5 h8 d8 z9 h3 j% I# p) o  w===============================================# M7 D7 Y7 b7 T* p& L, z
<%
' R5 E$ \/ _5 K$ CClass clsRSA
. ], T3 i9 T  {; \Public PrivateKey
0 b2 k% [& h$ j3 _Public PublicKey 2 n7 ?8 Q* \) l8 k! G; L2 ^; h
Public Modulus
! e" `  E4 Y7 c! r, DPublic Function Crypt(pLngMessage, pLngKey) ! B' X8 R* M/ m2 j: I
On Error Resume Next $ d' m% h* F9 s- Q  U- ^
Dim lLngMod 1 U% ?$ x5 R' i
Dim lLngResult
6 Q% D! j4 U- X& U. K8 sDim lLngIndex
1 f. s$ C/ x; H& L3 vIf pLngKey Mod 2 = 0 Then - q0 f4 J; v  _$ m/ _4 H' T8 W
lLngResult = 1
7 A; s* ]  p' \$ @. rFor lLngIndex = 1 To pLngKey / 2 8 Z8 }* {( b' C! ?% ~; C* G4 [4 h
lLngMod = (pLngMessage ^ 2) Mod Modulus
4 H- t6 \0 T1 S" S3 c2 a' Mod may error on key generation " U0 X4 k' @9 D6 y: A) g
lLngResult = (lLngMod * lLngResult) Mod Modulus ; d  J. W4 s: {7 U% v
If Err Then Exit Function
+ |) K0 A% i, s9 f2 ^Next
6 ~/ i" c2 M) y0 l3 MElse % i# X: t9 M$ h" Q
lLngResult = pLngMessage
% d: Q7 Y& R3 SFor lLngIndex = 1 To pLngKey / 2
2 E, j' J; C' v6 [lLngMod = (pLngMessage ^ 2) Mod Modulus 9 _0 U$ }( i: B7 ]( m% G/ o% g
On Error Resume Next . W0 o  x- b" w, _% @6 |; C
' Mod may error on key generation
$ `% N9 o, I8 k# ^( P& ?0 N/ b0 AlLngResult = (lLngMod * lLngResult) Mod Modulus
4 t+ l$ d7 u2 k( eIf Err Then Exit Function
9 j0 M) t, E1 Q4 q" |; X0 ANext 6 }7 n0 ~7 k, c/ |  Q
End If
7 }( R4 {) u; |6 SCrypt = lLngResult ' v% R: N! I1 ]
End Function! M; F. s4 T& |
! `1 l! d# w6 `- P
Public Function Encode(ByVal pStrMessage) % ~4 ?' i9 I% I) x
Dim lLngIndex ; E- k* x: @* G" x; u
Dim lLngMaxIndex " m5 ?1 w; I& C
Dim lBytAscii
& c: S) C5 w* S+ p* TDim lLngEncrypted " a& u# f5 D! s
lLngMaxIndex = Len(pStrMessage)
2 T! C3 A. A4 |If lLngMaxIndex = 0 Then Exit Function . u3 x5 F( K0 b4 Z4 G
For lLngIndex = 1 To lLngMaxIndex
5 D+ e9 Z1 Z& a  l# DlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 1 T2 i2 C3 s* O
lLngEncrypted = Crypt(lBytAscii, PublicKey)
! ]. P) c9 d" n5 XEncode = Encode & NumberToHex(lLngEncrypted, 4)
6 {& F/ |  M0 M9 E- p" fNext
6 Z6 t" Q! K" zEnd Function
' E1 V7 y! k3 |9 C  c: N. }Public Function Decode(ByVal pStrMessage)
0 f: Y* D, n  {  cDim lBytAscii
  v' ?7 ]# t, ]/ wDim lLngIndex
% U8 t) S. E8 oDim lLngMaxIndex
! E5 ~( N/ G2 A3 N, {/ {Dim lLngEncryptedData 9 t& F& N& I) h
Decode = "" 0 @1 t$ O: Z  z# x; X
lLngMaxIndex = Len(pStrMessage)
: b+ S& N* U1 t3 w  v/ iFor lLngIndex = 1 To lLngMaxIndex Step 4 + ]) `( [* j" I  v0 j4 q
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ t) \6 t/ j9 @" E4 {0 g$ ClBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 [& h: v/ S  |) `, l- V' q% j
Decode = Decode & Chr(lBytAscii)
& N2 N$ `  L( B8 ^7 ~; dNext
( F3 U1 W8 o6 s. a8 e% eEnd Function ( i9 U  D- B" g- {( B
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
: M; j6 b: m9 C2 f- `) qNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
6 s3 x! k) }' @1 REnd Function
; z( z6 Y2 W- h. x; r3 |# r( U- ]Private Function HexToNumber(ByRef pStrHex) 8 X% K6 B1 ]1 f9 B
HexToNumber = CLng("&h" & pStrHex)
" t. A% d8 M2 SEnd Function 0 t  T2 E. y+ G4 u
End Class
% \2 C7 m1 W" K+ H$ s/ |function Encryptstr(Message)
! K7 f0 M# u# `- PDim LngKeyE
  K" ^, |. Y% l- M, {! X: _3 bDim LngKeyD + o4 T! C) o, D1 `1 s  N; X0 o% c
Dim LngKeyN ; x1 ]1 a  Y7 Z; k7 ]
Dim StrMessage
" v3 |8 }: O5 U' s5 S& k! V( @Dim ObjRSA . h' o3 p# O# ^: z5 l; S5 B4 a+ d. E% W
LngKeyE = "32823" 8 B$ j' i+ r% r/ Z$ i- z
LngKeyD = "20643"
) y8 n& t- f3 o; X% p6 S* mLngKeyN = "29893" 3 L  r0 T0 _* L  G' k
StrMessage = Message
# t) l. b* q& l5 S) d7 [: m" wSet ObjRSA = New clsRSA
& s; I! r! S* v7 L4 W3 a/ X% KObjRSA.PublicKey = LngKeyE 8 c8 q1 Q/ S  V  e# I
ObjRSA.Modulus = LngKeyN
, i6 q- U3 b- P# A/ c& D6 E# \Encryptstr = ObjRSA.Encode(StrMessage) $ T# f) Z8 }5 L9 g
Set ObjRSA = Nothing 8 B( X, k- |( f  r4 h( `
end function3 n: W0 E5 x+ A8 H3 s/ v
Function Decryptstr(Message) ' g, \# v+ k) p, X! y, a/ ?
Dim LngKeyE ; V" l2 W. w) O
Dim LngKeyD $ _! g* a1 }6 S% b/ n+ r; U
Dim LngKeyN
% B. P) u# l! V8 j$ s  H+ SDim StrMessage
, P6 t, v$ \! L, C7 _! W3 ]3 z3 ?Dim ObjRSA / c( L! R, w/ c" p! `0 y& F8 y2 \, v
LngKeyE = "32823" ; @# |5 N  X  ^$ t
LngKeyD = "20643" + Y& _) {7 G8 X2 P7 a) Q
LngKeyN = "29893" 6 J9 x+ ~( h1 F9 `* [; Q) R  d: {
StrMessage = Message 0 A0 X/ Q7 C0 d7 i+ k
Set ObjRSA = New clsRSA 3 ]2 E0 k5 w, p7 i; v2 s
ObjRSA.PrivateKey =LngKeyD
( n$ C, R6 l/ _. BObjRSA.Modulus=LngKeyN
6 p* U* U$ C+ `" M0 s& ddecryptstr=ObjRSA.Decode(StrMessage) 4 g: |1 r4 }! M9 `1 o6 a
Set ObjRSA = Nothing ! N/ C2 U; _; W4 a) M2 M
end function 7 n( p: \6 X: x) r$ }2 }6 N# j
%>0 [! g& Q: ?# Z! B# u
===============================================
. [. l. i/ ~/ K8 @  ~/ Q  |6 ^5 q( ]( M+ N; B$ m) t
还有一个用于测试这段代码的test.asp+ \  F; f2 A/ u2 s6 H
有兴趣的自己搭建个IIS测试下
; M; H' V0 A: ~' @! h, q<!--#INCLUDE FILE="RSA.asp"--> ! O: }! s* U6 O& [( d1 g' k
<%
9 P; K- {+ g8 Y" ^/ Gfunction Encryptstr(Message) ; @' Q# ~" K+ b9 b& ?
Dim LngKeyE
3 w+ v6 G- t7 \& IDim LngKeyD 0 P4 B+ c! R) `% O  U
Dim LngKeyN
1 a$ u! C' h& j: SDim StrMessage
, c! R) x6 w2 ~, |2 q( ZDim ObjRSA % E* ], G5 p" K( e; e+ G9 U) X
LngKeyE = "32823"
7 R; J) C; x; v8 Z: x+ A8 f0 }5 A9 xLngKeyD = "20643"
7 U, n. i+ ~0 ULngKeyN = "29893" : u3 Z) B. a4 M, U9 A
StrMessage = Message : [$ Z7 [. K$ |, d# V  a% W
Set ObjRSA = New clsRSA + X$ m$ p4 z, n8 A6 [9 W3 i) p
ObjRSA.PublicKey = LngKeyE $ f1 A7 B" I; Y8 P; H) U  u
ObjRSA.Modulus = LngKeyN
4 n1 s$ [5 g( W/ U( T: m! REncryptstr = ObjRSA.Encode(StrMessage) ' o- }0 g* q6 G6 h- {
Set ObjRSA = Nothing
7 Y: A! n. x7 @2 K8 V9 u8 hend function
! k+ G" O+ D5 K2 H+ B8 bfunction decryptstr(Message) - Q, z# B9 x; h; F; w9 S% R% t
Dim LngKeyE , N/ V! d/ L% r) w2 Z* P3 ~
Dim LngKeyD ) y/ _& M/ c! B; q) [1 r
Dim LngKeyN # m1 N* i" I/ y, D, s- i  `* R5 N
Dim StrMessage
$ a9 s4 F4 F" D8 x3 z4 p% g8 UDim ObjRSA 6 Q9 u0 C7 _! _; o3 y
LngKeyE = "32823" 3 b- l" [# Y5 R5 C% L7 d
LngKeyD = "20643"
4 r( a; ^) G# K# t1 P) i8 ALngKeyN = "29893" - E% ?4 a7 A1 Y) }0 Q( v/ C3 |6 W
StrMessage = Message
% y; x  Y7 Q9 \% eSet ObjRSA = New clsRSA 4 e# s7 U6 |0 u" ^; J
ObjRSA.PrivateKey =LngKeyD 1 \! x) ^  P$ D
ObjRSA.Modulus=LngKeyN
5 G3 K9 w7 c! g( udecryptstr=ObjRSA.Decode(StrMessage)
( l# G2 `+ \* O5 D/ j# ESet ObjRSA = Nothing 6 L' S  L, A& D$ S3 d
end function 2 i0 A& s  F( {# d' b
dim last,first
% n2 a8 X6 N: ?! ^: o! `first="!@#$%^&*()" ; v7 p! m! E: g5 T& I+ S
Response.Write "加密前为:"&first
* j4 q1 Q) [- \3 d( nlast=Encryptstr(first)
3 r+ W1 K' U/ }) ^: ?" V7 wResponse.Write "加密后为"&last : J; {' U4 M; H, A
Response.Write "解密后为" &decryptstr(last) 8 H- b* z% ?" `4 }
%> ==============================================+ [9 O, l, ~9 E! \; l2 L3 @
剩下的就是字符的对照表了
+ S9 D" O8 ]  e% y: h* ~( r: u- S===================字符集================
; z5 ^) I2 s- o1 \1_____6EBB& _: g4 P3 a9 D
2_____5C1F
) V9 a+ O! D8 v. F; K3_____4D75
* i( _/ _  ?8 n) Z4_____26CC
/ e- L* j* M' Q$ D& K& r5_____4F88
/ H9 Q- m! K4 y* l" `! d. |6_____3F4E
6 b; h+ l2 \/ ?5 G8 G: x( V7_____0A9D
1 A  `# I* ^/ ~' Q7 j9 ?, }7 l8 ], U$ f8_____1A1C! X* h* O. l9 s- g' n
9_____6D20
. K4 e  D8 Z1 o% @' X0_____1089
7 I+ M" a$ b' M2 [. Da_____0F3E; v% }$ I3 ^9 L5 o3 l; H" a
b_____3159
6 D- Q5 I& x7 D  mc_____3517
4 l( x5 R- Y! X; e+ M9 @, E: X1 k$ jd_____419C
" G8 w5 f! z9 J8 x- X" D4 f8 se_____615C$ Z/ q& g0 B3 C, _) ?' ?
f_____556F; Y7 o& E; K) Z' j, k  h
g_____2B7F, `& ~# `( _0 h0 ]
h_____0F9C8 k4 l& @5 u9 h
i_____00FA( C. `' Q0 F! V. O4 Y- ?. Q9 a
j_____5A50
5 g% j, k1 |5 O& H/ _) Dk_____2850( D  P6 G& P* j. q
l_____3E7B% J8 m3 F) d5 B! j& o  z6 Z
m_____71C5
& ~" W4 U6 {: n4 R. x: Jn_____1FC8
# Q6 H% [# r9 L3 V) io_____74C14 D( W0 L8 Y5 w
p_____5FB8" m3 d0 K2 D7 f$ w9 c; z$ L( @3 }
q_____6085
" T" _7 V0 I8 X% R1 W  b' H7 v3 j4 Rr_____3AC4
2 T5 n5 i, g! w( m' W' Os_____2F50
6 U$ K3 n3 R7 I9 V/ O. b$ B/ ]t_____36F8
+ ~1 v0 }6 `& I6 a# Y, c$ ku_____7010
6 L7 j* p2 E+ z) l; w/ U5 Cv_____0B42
2 V" W( h$ ^5 _w_____1C7A
( w& x$ E$ B% Q9 H4 y4 lx_____16F8* I0 y3 f$ ^& B6 d. u
y_____2EE79 J4 t0 Y. i4 ?' f" }" e
z_____5CF3
/ s* x" k8 n2 L) m0 h- ^!_____62333 c" w" j4 \" H5 v4 d- R
@_____3A45& b# o9 R( g+ r5 K* q
#_____2291) L5 i2 k/ b1 p" @8 `$ I/ {$ V
$_____5D5C
( h$ L4 N! f# Q7 d/ x  ^' J: ^! g%_____09B9: c( N  B/ k) L4 S2 Y; a
^_____43EA
" @$ @% M. C$ a3 h&_____62B9
$ C6 v8 P" G4 L% K8 B*_____63019 u$ Q! {2 J( K# J+ r& h9 U  [' q
(_____46597 ?- b2 D  W, ]9 T; d+ }
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表