返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
0 f" w* ?: y* D/ _" U$ m. C8 R8 ]原始出处:http://www.3ast.com.cm2 V* r2 K8 H* ~( H
  G5 A# a2 l/ W
看不懂的直接绕过' S' u- D( O0 K: B2 b5 O2 K
加密前为:hwy123456' \6 `7 Y* S& F+ p
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E# D! p5 w9 n  a, B: g6 E6 n7 L
1 Y& t9 |4 F' J) T4 o% W
============================================
1 S7 l& ~* D- X# h上面是当时自己校内的心情。现在已经解破出来了,分享给大家
' h! e8 K$ _7 n也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法" R, x. N/ E9 M/ \; H
以下是RSA算法文件9 Z/ O* f8 P3 g7 t
" j, @& s3 h1 x' |
文件名RSA.ASP
7 o3 f- ^3 `' Q) Y4 l  y! M* v===============================================. b) ?% \& Z' e
<%
/ h6 J/ J/ A  E" z  U  `. Q3 LClass clsRSA
9 P; Q' K/ \" Q6 @. SPublic PrivateKey 2 b( n9 C& ^( N) t( S, x3 U# k
Public PublicKey $ d+ S  ?* |7 h+ W
Public Modulus
% W6 `- I- [0 h2 c* }* wPublic Function Crypt(pLngMessage, pLngKey)
1 q( x9 [8 R% ?6 v! E* N7 dOn Error Resume Next 3 T7 {( Y0 M0 b3 z, b' q, r
Dim lLngMod
( A7 D$ ?. k9 u) K2 sDim lLngResult . c* r; m( S+ C' E$ A: ]/ \# q
Dim lLngIndex
# ?# f) y/ I, i; ], A: NIf pLngKey Mod 2 = 0 Then ; W% }) W+ t6 m& |  e
lLngResult = 1
5 A8 H% p. \# _( R5 w5 rFor lLngIndex = 1 To pLngKey / 2 , ~8 @, g; x! V- W) {" e* M
lLngMod = (pLngMessage ^ 2) Mod Modulus
6 R6 `# }5 Q& D1 h' v- _' Mod may error on key generation
. V. H, R! J$ i: s7 glLngResult = (lLngMod * lLngResult) Mod Modulus 8 N8 b' }5 f* l. g: `
If Err Then Exit Function 5 m+ ^! m) `3 \& `* ^# w+ A
Next ( J1 G! q( R* ~- K6 E7 |
Else " ]& N* o# A3 D/ n$ H8 T9 ^: H4 g* E
lLngResult = pLngMessage
+ a5 }" z1 @' w% X/ {- I% vFor lLngIndex = 1 To pLngKey / 2 # D) c- X' o" C0 \7 }* z  N' A0 l" |
lLngMod = (pLngMessage ^ 2) Mod Modulus
& V, b, Y2 X7 l+ T0 |8 f( e+ @  zOn Error Resume Next
9 |# @7 r- e' T1 J' Mod may error on key generation
: T3 O# ?1 t: b- v$ [$ t% ClLngResult = (lLngMod * lLngResult) Mod Modulus ' @5 C& u  S. Q0 ^2 h/ Y9 j% c
If Err Then Exit Function # p, L  l8 t! A) X( l0 v* u; |* T
Next
. u* J3 n7 q$ |End If ( f, P  W) V' A9 y9 G9 F
Crypt = lLngResult , p/ n+ s9 e* @5 e5 d" ?1 \* a
End Function5 W/ n2 _$ v( @
6 V; H2 Q4 `4 c2 D% \% t+ \  x( v
Public Function Encode(ByVal pStrMessage) 4 u; ^8 P0 k3 @8 ~3 Y. X
Dim lLngIndex
3 u: S$ n" N( r: ^1 fDim lLngMaxIndex ' P* [9 K+ ^' Q
Dim lBytAscii
) f& S7 P7 E$ Q  o' W7 {/ ODim lLngEncrypted
) D, v$ n" l5 b4 N4 o- w5 ylLngMaxIndex = Len(pStrMessage) ! Z7 M4 d+ n' [) p, A, V0 ]9 s
If lLngMaxIndex = 0 Then Exit Function
# D6 Z9 I1 g; IFor lLngIndex = 1 To lLngMaxIndex " \& v5 s% a: o" q# T) O
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) : p* t$ k8 e% l! I# \
lLngEncrypted = Crypt(lBytAscii, PublicKey) $ V9 ?9 J3 z8 S4 k: h
Encode = Encode & NumberToHex(lLngEncrypted, 4) 1 s4 s6 Q2 u4 g
Next * D6 T7 R  }1 D0 F
End Function - Z( y- y* O+ N5 }' |" S2 W
Public Function Decode(ByVal pStrMessage) ; v# i- B' S( o: n' a
Dim lBytAscii
/ ~/ u! n8 X: v3 W$ VDim lLngIndex
$ e* N2 [/ B: q( Y" \Dim lLngMaxIndex
9 w5 Q" M" [* CDim lLngEncryptedData
: q- u9 Z/ B) @6 G, dDecode = ""
9 T8 J: R9 x; E, SlLngMaxIndex = Len(pStrMessage)
8 P1 l2 o- B# v7 ?" x+ b1 eFor lLngIndex = 1 To lLngMaxIndex Step 4
6 |# _* |9 Q% C% D5 t1 [: h. A  U. NlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) * X9 n9 F. m8 l  Y0 F% m
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! x7 }0 N' d* ~6 M5 }! d6 D1 z: i8 Y2 JDecode = Decode & Chr(lBytAscii) 6 I; d: W4 f4 X) m4 A- _
Next ( Q% m9 G$ v" x1 s2 D9 E8 V
End Function
) [- x$ n1 f- R& RPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) . z) }1 B* J( h' w
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
5 U' S  S9 |$ S  oEnd Function : I0 @2 F9 f6 U- ?& [" P
Private Function HexToNumber(ByRef pStrHex) 2 ?/ Y$ P8 T2 P$ q$ H
HexToNumber = CLng("&h" & pStrHex)
- B- J6 g. p( }! `& u/ a! Z, j! }End Function
( s" d/ Q! C+ N- r$ q, ?) w9 m' GEnd Class : j: A# a8 Y8 \" [. d% K0 X* J9 m. G# ^
function Encryptstr(Message) 5 q5 K5 P( [5 e2 p
Dim LngKeyE ! |$ M1 B/ q' ?# N) K
Dim LngKeyD
  t3 R- W8 ~) y$ ODim LngKeyN
) Z4 W! ~3 s1 F" i- [1 FDim StrMessage 7 Q$ K  T& h0 o7 }  O. M
Dim ObjRSA
5 {4 ]% q% q$ R+ a  Y2 j( t% yLngKeyE = "32823" ' [1 O" K& r$ ~! X" y3 u& |' g
LngKeyD = "20643" ! B; F; D( [0 O& o
LngKeyN = "29893"
8 O8 V9 r% Q4 ~4 V# t% \& V( |StrMessage = Message + H- ^1 D/ b! _4 m
Set ObjRSA = New clsRSA + q/ m3 h2 X: S% [" B
ObjRSA.PublicKey = LngKeyE 6 j4 Y3 f2 l( `; k' W/ l0 s
ObjRSA.Modulus = LngKeyN
0 \( @" I8 i; K6 ~Encryptstr = ObjRSA.Encode(StrMessage) 0 q9 g) m8 Y3 f
Set ObjRSA = Nothing
- `/ Y& j8 E% _, R2 Dend function9 x  a# I7 \4 q2 s6 e7 @: {
Function Decryptstr(Message)
8 Y( Y% s' a- R/ `( bDim LngKeyE
( I0 o9 s$ q0 [8 \) j# z4 fDim LngKeyD
. u2 m! W" c$ G& A# D5 GDim LngKeyN / X: Z# ^3 K1 `+ W
Dim StrMessage 8 s# @# q' W+ F; S3 H# ~& H) r# j
Dim ObjRSA   O# |8 k. t4 p2 ?+ o- B
LngKeyE = "32823" 6 E6 U1 d3 I1 q
LngKeyD = "20643" : ?; A) r* u' c: z$ z
LngKeyN = "29893" 9 |( a) |  V+ T% o+ I
StrMessage = Message
! J8 U' E! Q- m& p7 _7 |Set ObjRSA = New clsRSA   j( p5 _6 g9 Q* k% p/ z
ObjRSA.PrivateKey =LngKeyD
* r# T+ z. q2 `( B* R# @" |+ U6 I# j; F$ ZObjRSA.Modulus=LngKeyN ! y& w7 w8 |: u' ?
decryptstr=ObjRSA.Decode(StrMessage)
4 o+ X: V9 S- {; n  ^' }  {Set ObjRSA = Nothing " |4 j5 f6 G& y  p
end function
8 e' X& b- l* r/ {0 n%>
' s0 S, {4 D' N4 {& E===============================================
( p$ B8 b4 b6 [8 H3 b$ c
* ~2 O5 ^( n1 Z. k还有一个用于测试这段代码的test.asp
$ U! I0 x# d, h* i$ t5 ?有兴趣的自己搭建个IIS测试下
; Y8 A# _* X0 v1 X7 D! e<!--#INCLUDE FILE="RSA.asp"--> * [5 w/ T+ l' b" [5 k9 ^
<%
. V. W( ]; ~) U6 Z: a" v: Pfunction Encryptstr(Message)
; o5 E; e' x* A2 `/ W1 x: H- PDim LngKeyE ( b0 f9 V2 `" b7 A+ x
Dim LngKeyD 2 G3 T3 c* N7 p: _7 |$ e! n
Dim LngKeyN : I4 h" c% @( z: f7 T8 `" x& E
Dim StrMessage
1 s* R0 D1 {# N: KDim ObjRSA
- ?  I3 \1 j3 x0 V* i0 [LngKeyE = "32823"
' z1 P6 d8 V$ cLngKeyD = "20643"
8 n' Q; E$ B+ r0 f' xLngKeyN = "29893" 4 }6 y( v- j1 q! v5 F2 {
StrMessage = Message 2 R  a% m( P+ R  Q' `2 I! d
Set ObjRSA = New clsRSA
: K  M5 Y1 C; G- W. ^3 EObjRSA.PublicKey = LngKeyE $ D5 R0 d; m% C. h+ K
ObjRSA.Modulus = LngKeyN
. S  q4 E2 L0 A5 TEncryptstr = ObjRSA.Encode(StrMessage)
' b- {- M( [  ^% g& h# Y( L3 nSet ObjRSA = Nothing ) R4 U' P7 W4 f8 {' `: N
end function
+ k3 F6 h1 d9 U! s+ D# ffunction decryptstr(Message) % R4 S3 O+ Z, F4 w1 r1 e# n! Y- R
Dim LngKeyE
. R$ k$ ~/ c: e( S* O+ IDim LngKeyD ; O! M5 Q  Y, [$ T$ S0 p5 e
Dim LngKeyN
6 @3 F. S3 E* h' E+ lDim StrMessage . y+ b; ]: c5 ~
Dim ObjRSA 6 p/ T- e1 P& F/ s
LngKeyE = "32823"
4 i$ Z& ]# r* M9 x. cLngKeyD = "20643" ; X2 K  C1 {: h7 l
LngKeyN = "29893"
& y( r+ n# S2 vStrMessage = Message
% ]* {" i% T2 l* E; GSet ObjRSA = New clsRSA % v& S" F+ Q, H9 L5 m9 r
ObjRSA.PrivateKey =LngKeyD * x" f6 E4 o2 N* k7 L7 f* ]
ObjRSA.Modulus=LngKeyN ) p1 r, _; C% ^* ^$ n
decryptstr=ObjRSA.Decode(StrMessage) 7 T' m; H5 d5 a
Set ObjRSA = Nothing
- M5 N- G, \$ ^* Q6 v, x& P# R2 @end function " I- r& L) k; H9 x8 c: B! j
dim last,first
2 D2 X8 j- e, ?3 E" ~- Z: z( Qfirst="!@#$%^&*()"
8 K% f9 a5 Q/ F7 E1 T& `Response.Write "加密前为:"&first . T3 }/ m6 p- Q
last=Encryptstr(first)
$ K6 I$ v  {: P1 kResponse.Write "加密后为"&last
# l5 \: C1 r3 }9 [) X  d2 v* U: XResponse.Write "解密后为" &decryptstr(last) 3 H: n2 [4 x% w# W! N0 }: B! H
%> ==============================================& W6 Q4 p* ~8 Z+ Y' w" d9 d
剩下的就是字符的对照表了& m. K0 Z% T( M+ K- P1 V; F- d' s
===================字符集================
' D6 H7 R9 V9 \5 f1_____6EBB( {, s0 X1 b; d3 Q. l- ~$ G" k
2_____5C1F
7 ]7 [8 x: z  I3 ]8 c" L. d3_____4D75
# L. T! {- d, d! s4_____26CC) |" {3 `0 ?( f% |1 B
5_____4F88" ^5 R+ `  h# E# `( Y
6_____3F4E
; `: r+ C. \7 s- b; d; U8 N- |7_____0A9D
4 i' h* S' R: c* b0 k5 B6 N; v8_____1A1C9 d/ c1 R  t% t7 l/ s
9_____6D20
" r, q5 g) I3 _2 W: e2 _( d0_____1089" n& Z8 E; M) K; H5 K
a_____0F3E
1 K) c! H! |3 h2 l% o: W* Ib_____3159
+ ]( ~) Q% F/ S% X3 i  Mc_____35174 P& M; ~& r) Z
d_____419C
6 E' n5 t) R2 k, N1 Se_____615C
) T& c6 w7 u1 Y- J  Q) @f_____556F
9 l! `+ F# f5 b+ i5 vg_____2B7F
$ a- @: U: \* P; L: I+ J% vh_____0F9C6 ?9 T" m3 i$ E- j2 I) L% p6 T
i_____00FA
  _6 N& V, A  v: b9 J3 p* Z; Fj_____5A50. o' ?( ^4 M/ g' S. K3 v: b, u# N
k_____2850
$ ]! o/ H/ |/ t! T1 u& Vl_____3E7B# C  a, P5 ]& l# S/ q  X& x5 {
m_____71C5
: q6 M+ i0 V  f2 K$ in_____1FC8
; {3 `2 S9 }; C% zo_____74C1+ Z0 B, ^: C( K, T. v
p_____5FB89 D, ^: r; [7 j% E0 f
q_____6085- q7 Z* {0 z, }3 @7 _7 V3 w
r_____3AC4
( d6 D* F: Z" v! m8 ls_____2F50
, C/ f  y/ u2 y  rt_____36F85 X% e% j9 c/ R" Z; V2 a
u_____7010
8 n+ [5 |+ p; V- f7 _0 g3 C1 [v_____0B42; W# ]4 U; l  f& k
w_____1C7A% R, @9 G1 L0 l) P* ~7 j+ K
x_____16F86 {' w; s/ P2 L
y_____2EE70 ^( ?! }7 }) z" ^9 V6 ^1 X% S
z_____5CF3  l5 Y; M! m* H8 W7 B3 d$ |* i: Y
!_____6233
7 t3 h& {, \0 J* J, Y' U@_____3A45
# q1 \+ X# F" q( u2 _#_____2291
9 q* E/ l8 m6 P$_____5D5C
4 q1 |% z6 U7 F7 M%_____09B9$ r* h5 [! R" x
^_____43EA
' }4 E; E6 ]( B" o&_____62B9
3 a% d! G) [+ @( @) h*_____63013 b7 S3 m, K3 r
(_____4659
% E4 @. i5 a" S; g# B" j)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表