返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm% B0 d' T2 F" |5 D8 c. N# Q
原始出处:http://www.3ast.com.cm
5 b; W* Z' x. y8 \& |2 L
9 K4 m0 E' `0 e$ F2 A看不懂的直接绕过
3 X  B) Z7 q4 p/ [: G: |% y& W加密前为:hwy123456
- m3 {" L* d) u加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E: _8 u# U  o9 X4 N. I1 W% O
7 G  Q, Q, L# s: F
============================================
* @9 E  f6 J0 B; e0 x$ f上面是当时自己校内的心情。现在已经解破出来了,分享给大家6 x" n% ]4 m1 _/ X$ `& Q5 p0 ]7 E
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
% V2 r8 l  P! A以下是RSA算法文件# Q8 G- E& b9 B3 \1 U/ D& d

2 L, ]8 l* ^0 F- {9 {: c' U文件名RSA.ASP4 u) }- V# A0 q/ v
===============================================
1 [* a, Y5 S+ Z$ m<% " j* z. n5 B' |  ?
Class clsRSA ) ~0 _- f  Q/ f  v
Public PrivateKey
; \+ g5 X" i" L) W8 f5 D/ CPublic PublicKey 8 {  v5 x* x1 Z
Public Modulus , D+ G' b4 {% c  j( s0 d
Public Function Crypt(pLngMessage, pLngKey) 4 O' Q+ E& C9 I( }  u) P, o
On Error Resume Next , V3 l. e0 W, Z
Dim lLngMod $ n1 F0 @5 Q! `: f* }
Dim lLngResult 9 `3 t( @$ e& r9 t) f2 T; h% K
Dim lLngIndex   P9 y& E. w& l% O# x  b; g
If pLngKey Mod 2 = 0 Then
- I! o: y' D' i: T" q# Z# ~' {* LlLngResult = 1
: I8 {" Y0 _. P2 ?! KFor lLngIndex = 1 To pLngKey / 2 " L6 J* e6 X# U+ P" R
lLngMod = (pLngMessage ^ 2) Mod Modulus
# m) ~$ f* }- K- k' Mod may error on key generation 1 _- d+ C9 E: _/ }6 F* A
lLngResult = (lLngMod * lLngResult) Mod Modulus . n1 P3 E: a0 `& f0 r
If Err Then Exit Function
3 v" h3 l# ~% I1 @9 oNext
4 K) O8 p7 I  z+ K& n& AElse - ^. R- F7 I6 u" Z  R2 F" l
lLngResult = pLngMessage   Q7 m( G/ T& B$ S- n) u, g4 M& g- N
For lLngIndex = 1 To pLngKey / 2 1 M# w8 m, N- D* B- \8 B
lLngMod = (pLngMessage ^ 2) Mod Modulus
# U. J5 M2 _4 N3 ?' wOn Error Resume Next ; d9 q7 Q# L) K1 I* V, \
' Mod may error on key generation ! V& z& ?2 b9 b: O
lLngResult = (lLngMod * lLngResult) Mod Modulus 7 ?% i) K3 K: e6 z$ z
If Err Then Exit Function ! @2 G) D$ A' m9 L: J1 z; X) C
Next
' U7 Y! B7 i. p2 a1 LEnd If $ i+ G! \, {2 O+ l- A: V
Crypt = lLngResult
3 S: R8 l/ R/ u( _End Function  _- I9 W% i/ i
" U7 W) ?, Y4 T* \% y2 C, f! n
Public Function Encode(ByVal pStrMessage)
, q7 J2 G8 B* y+ z6 ^Dim lLngIndex ( f; T$ s, C9 o0 j
Dim lLngMaxIndex
: A- Y4 R) F, m2 CDim lBytAscii ; @/ n, w  H( F$ ?0 W- o
Dim lLngEncrypted
& R' _$ y& L+ o' a8 x6 U( jlLngMaxIndex = Len(pStrMessage) 6 W& h8 f  B( O4 ~5 X
If lLngMaxIndex = 0 Then Exit Function 8 \7 R2 {6 a3 I( q2 m; S9 u- I
For lLngIndex = 1 To lLngMaxIndex
) a6 y: L7 W$ u& N% D  N( t! DlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: L0 c% D/ o6 {, q" M1 [lLngEncrypted = Crypt(lBytAscii, PublicKey) ) Y; G8 ~. i$ E% X7 P
Encode = Encode & NumberToHex(lLngEncrypted, 4)
9 {5 u; z6 j* B5 z, V2 z: rNext / K2 D4 w5 N- T  p! v9 C! G+ a! ?3 o
End Function
1 x# t3 I, `7 ?Public Function Decode(ByVal pStrMessage) ' ~& K1 v4 x! ^+ y3 s
Dim lBytAscii
" J& D$ ~& o& c' JDim lLngIndex
/ ?; W3 j( N- }8 t0 o- a0 J- K  QDim lLngMaxIndex : N/ v' ?# \; f: P' S" K
Dim lLngEncryptedData
; ]+ l, i' V$ GDecode = "" + g7 h2 X, C% b1 _- B
lLngMaxIndex = Len(pStrMessage) 9 q& U, _8 W1 ^5 N6 ~) E" j% D
For lLngIndex = 1 To lLngMaxIndex Step 4
/ |1 \& e- P# d& K- F0 a6 WlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 k6 T% E$ E' @% F, J
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) % M3 [, H0 O1 H6 r' v% S
Decode = Decode & Chr(lBytAscii) ; S' l/ K5 ]# U) a: g/ t
Next # y# `7 ]9 ]7 K
End Function + C9 v; Z3 o6 b: X8 Z4 D  ~6 w
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
8 z2 `( `2 W9 MNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ) ~: d) }& j9 D/ i
End Function
! A- }  I/ R( n) l4 \Private Function HexToNumber(ByRef pStrHex)
% S% _7 }  ^& L" `* D% I) mHexToNumber = CLng("&h" & pStrHex)
* L% Y9 W; H+ W! [/ [4 |; c: z$ E5 MEnd Function 3 h( h1 P+ U) q4 A! Z0 {5 S
End Class & I7 r) B# \. T, M7 {
function Encryptstr(Message)
% }) @  R7 C5 K0 ?' e4 `( ?1 YDim LngKeyE 0 O1 b: m; N. j8 C- }
Dim LngKeyD 1 [+ Y" b2 }) \& }' f
Dim LngKeyN 9 C; z1 E* B# b' j' \
Dim StrMessage ; g7 i6 f) M% S4 i: n  W
Dim ObjRSA ( H5 d% g3 Q( ~9 c8 Y' C
LngKeyE = "32823" % \5 V6 B/ ^; p
LngKeyD = "20643" ; P8 E$ M5 ^9 s
LngKeyN = "29893"
' m% |6 T- F0 W6 O7 C4 \StrMessage = Message
) D' B9 C+ a, v& E8 K2 q; {Set ObjRSA = New clsRSA 2 }  T/ S0 Z. M
ObjRSA.PublicKey = LngKeyE 5 [( p  s" J% e7 e5 W
ObjRSA.Modulus = LngKeyN ; y% {$ q  Y" ^6 T) Q2 |+ R$ O
Encryptstr = ObjRSA.Encode(StrMessage) 7 G; c8 l; R3 ?& s
Set ObjRSA = Nothing
% c# M1 ?2 Y* {3 i$ C; ?& Yend function# n' a2 c, @) @% }. r7 ^( w/ |
Function Decryptstr(Message) . s  g  N3 O( z5 Y# n/ J* O/ F' l
Dim LngKeyE   G% V# b1 y( a; @4 h) k4 b
Dim LngKeyD " w/ K7 u2 q# Q. L
Dim LngKeyN
2 s' v3 E. v; f. a  m, C2 VDim StrMessage # ^6 ~& m# L& i) z" S
Dim ObjRSA
( {5 p6 [/ i" r5 x- R/ ?! G) WLngKeyE = "32823"
& g6 M; W) r5 T! S3 e2 C) [LngKeyD = "20643"
" K0 d; F# y5 r3 z& V. J0 HLngKeyN = "29893" 4 W) Y) o2 e* `0 b
StrMessage = Message . e, v) Q7 T" P* Q' r5 ^4 |3 ]
Set ObjRSA = New clsRSA
9 a+ [! b6 f3 S/ RObjRSA.PrivateKey =LngKeyD
) I7 [" o  E/ s' ~9 b/ L. N: aObjRSA.Modulus=LngKeyN . v1 n. O5 j4 I$ ~) N: G
decryptstr=ObjRSA.Decode(StrMessage) ) |. ]3 G0 O1 D/ n" L8 ]. C
Set ObjRSA = Nothing
- h, |- w/ x6 {! f. ]& uend function
0 c! P9 L7 n: h( D$ k& w% b" ^%>% O6 ?+ C+ I4 @- R& V$ m& I
===============================================
! q& ~6 ^, ~# ]5 t! \
% R7 t; C1 x, |还有一个用于测试这段代码的test.asp
9 Z2 L: |* L' A4 ?0 L8 }, }有兴趣的自己搭建个IIS测试下4 |7 \2 m7 \) J! q- r+ ^
<!--#INCLUDE FILE="RSA.asp"--> ( o/ H. Y8 [& |
<%  r/ v1 v6 s/ A7 X% x& t; ~
function Encryptstr(Message) $ a, W! }8 E; W9 h. e1 r
Dim LngKeyE   w; {' K4 m. `9 g
Dim LngKeyD 9 [. {8 ~* b- a7 t7 _' z
Dim LngKeyN / ?1 L8 g2 d! a; w
Dim StrMessage
9 y  Q2 E0 ~# ^( A5 ?Dim ObjRSA
$ _9 }& H+ Y5 GLngKeyE = "32823" * |* y/ ?) w/ ^
LngKeyD = "20643" 5 c2 S  w, v+ l
LngKeyN = "29893" . a* v9 s( A  r4 ?
StrMessage = Message % L( L' A2 L. v3 j. `
Set ObjRSA = New clsRSA
& Y/ K" ?$ ]$ `5 W# h/ RObjRSA.PublicKey = LngKeyE 2 A' I8 p6 n8 a6 z4 U% K0 A
ObjRSA.Modulus = LngKeyN
5 Q7 w2 d9 ~2 W) e: l1 u# j/ lEncryptstr = ObjRSA.Encode(StrMessage) / a4 w( C$ W6 W0 N% `0 J
Set ObjRSA = Nothing
" }2 J3 T1 K8 ~& E" kend function $ Q; b1 [# ~2 J" a
function decryptstr(Message)
! K: B2 ~% m7 i! l, c$ }1 Y+ `, FDim LngKeyE $ R9 U) W3 r: J4 t' X
Dim LngKeyD
+ G) n; f0 g4 X2 oDim LngKeyN
4 x, _/ @  T9 }" Y9 I# F- f& T( U6 XDim StrMessage ' u# O3 W2 c4 K; T
Dim ObjRSA . I0 Z( \9 `7 a1 q0 n( G
LngKeyE = "32823"
: j& K. b$ ~( KLngKeyD = "20643" " w4 s. a8 l; t" d
LngKeyN = "29893" 5 a7 E2 h0 C8 W( i2 s
StrMessage = Message
& \6 O4 J  _# G7 U8 R$ O& ?" W( dSet ObjRSA = New clsRSA
/ ?9 m) S) d+ R8 W$ K6 j6 d; F( ?* XObjRSA.PrivateKey =LngKeyD 8 H% J- N* i. ^! v: i
ObjRSA.Modulus=LngKeyN ; {4 f! F6 ]) ~
decryptstr=ObjRSA.Decode(StrMessage)
  U, ^/ Y3 T& ]- P5 \7 ISet ObjRSA = Nothing
* a. k, Q4 V! Q, k4 ]end function 8 R* w, r5 S1 o4 }# k) D
dim last,first
0 O1 C- w1 z: S3 K+ xfirst="!@#$%^&*()" 1 }0 S9 u7 w! ~3 S6 b4 V
Response.Write "加密前为:"&first
) C: Q0 o4 P( D3 \3 l" Xlast=Encryptstr(first) ; j* x9 \5 V7 i: G
Response.Write "加密后为"&last   [8 H" {( P% D5 s/ h3 s( T
Response.Write "解密后为" &decryptstr(last)
. T' q. u0 d$ ?! o4 e: q  f& v%> ==============================================: t* e0 A# y6 D
剩下的就是字符的对照表了. j  B6 \' x/ H2 W/ f  S0 Z( `
===================字符集================9 z( \& Z# I- r+ ]
1_____6EBB6 p4 s3 r3 s& k7 N1 u# c
2_____5C1F
$ _8 Q" \' c  f) a3_____4D75
" P2 x/ E8 C" H4_____26CC
* r  f* c" [# R* F+ o$ N5_____4F88
: K7 L5 t/ Y/ _1 u: n8 v5 p6_____3F4E( E* f! ?& y& q3 c: _
7_____0A9D5 ?1 y" U& A: W, N
8_____1A1C' _8 H: P1 x  R# @0 h; A
9_____6D20$ p3 p! [. u5 d
0_____1089
$ p% l, S+ e& n8 D  p" p7 Ra_____0F3E
' S/ o( o5 K. qb_____3159, v7 o  o- h  K$ `: V
c_____3517$ Z9 P% c; T! X9 i. e; X) ~
d_____419C% Z; Z6 N% @, d
e_____615C
2 B) q6 R# J9 W# Gf_____556F
+ h8 z5 D) _) h# W) a& V5 ~g_____2B7F9 p" v& ~& \$ S' m8 k
h_____0F9C' i1 i7 \+ D8 T5 B
i_____00FA( \; o$ f, x3 T: ?/ {# h
j_____5A50
+ G! s' @6 G( y. j; C/ J' U( Rk_____2850/ F9 A9 h% ]0 L- \3 m
l_____3E7B
8 g: a, i) O9 _! o2 Jm_____71C5
6 }7 v2 c5 d7 n& u: u# q# Y- L/ nn_____1FC8
" F3 k* p$ l- |" wo_____74C1
! o3 P' B1 t- ^$ X/ t7 [- ap_____5FB8
% V- P6 |1 G& `7 @' pq_____60854 s, L# p* W1 _' N
r_____3AC4
4 [$ Y9 x# h7 _8 Ks_____2F50" _1 a0 |' s7 z( D
t_____36F8- Q; i. @$ s: P4 q1 f
u_____7010
( g- u+ p' v4 T  v8 r0 lv_____0B429 V9 o) x, r! z$ L4 s2 D1 C
w_____1C7A
+ ~0 C5 A4 c6 k: ^* m; }  ^7 M( Sx_____16F8) l4 N0 ~, V" `1 @- \
y_____2EE7% K* c# ?) P, f, Q& }% k6 ]
z_____5CF3/ O! n) A9 c- N3 t
!_____62336 T' I  ~% P& [) e% r. N/ p
@_____3A452 E9 n* Q3 U% Z2 @" C
#_____2291/ B; D+ z" A1 ~  r( S4 h
$_____5D5C
. d, L. {3 L* S$ D%_____09B9: G& O, w1 y# Q7 p
^_____43EA
+ E- g# T( V9 R# W& {4 V2 h&_____62B9
2 `  u1 X, K. r6 R; q/ E, ^8 @*_____6301
& V2 N$ g1 r+ S& ]/ ^# }(_____4659
$ B; S# I4 \, })_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表