返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
' X3 h5 q) A1 k& v原始出处:http://www.3ast.com.cm
0 K; u4 }- _. ?9 l7 e% z; c3 {. ]6 j
看不懂的直接绕过
* I* c7 [" A- |% e+ E0 z- d加密前为:hwy123456" l9 L2 {5 ?9 e5 Q& ~7 O
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E: s; e; e3 @# a( x5 A
. L3 P2 F# o5 w
============================================
8 T* f% L6 |+ {2 Y7 Y上面是当时自己校内的心情。现在已经解破出来了,分享给大家
" S+ X- F) ?% Z' Z7 @也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法+ c( m3 p9 J+ e8 N" t3 f
以下是RSA算法文件: @9 t0 H0 P% M" q( N1 n; o

2 J' O" h' e3 S+ A4 x+ Q文件名RSA.ASP
2 ]) c. J' G& \  e===============================================( j3 J8 h6 M; o; |0 N3 J& M
<% ' u0 W3 g/ t$ P1 G/ o
Class clsRSA
) i1 L& N9 u0 u& U5 h, WPublic PrivateKey
/ i* F9 P& C# L6 M8 lPublic PublicKey 6 a& R+ B5 ^) j+ \4 K
Public Modulus 6 t  T7 R0 v4 Q- c
Public Function Crypt(pLngMessage, pLngKey) : L; k; }( D0 `
On Error Resume Next
/ x: c7 e- j1 b# c3 R* P) GDim lLngMod ; L: Z0 T. \+ N8 ~7 f
Dim lLngResult 0 B7 j9 `% E- F& B! g
Dim lLngIndex
  }' ]! N9 x' V( c& {% lIf pLngKey Mod 2 = 0 Then & D  L+ _/ d1 Q  B: X' f" C: _# ~
lLngResult = 1
! ]  [9 a  i7 ]7 \For lLngIndex = 1 To pLngKey / 2 3 p3 k5 r" W5 H
lLngMod = (pLngMessage ^ 2) Mod Modulus 2 F1 U7 t$ J# w) n- v
' Mod may error on key generation
* W; R0 `( p" E8 S5 C9 N) V; X! UlLngResult = (lLngMod * lLngResult) Mod Modulus 2 x+ Z2 }& d: p/ C, F
If Err Then Exit Function 5 @- U+ H7 |7 ?" B
Next * L1 X& x0 {- A  @0 i/ v* W
Else
  m0 P1 y5 ^' {# ~/ k. G! ?; rlLngResult = pLngMessage
+ j2 c" g) `# R2 ~% N! ~- S3 _For lLngIndex = 1 To pLngKey / 2
% x3 @6 x/ [% h7 Z3 {lLngMod = (pLngMessage ^ 2) Mod Modulus 1 \1 B9 h4 ]6 y7 \$ L) r
On Error Resume Next 6 Z! ?, Y8 \2 J, O
' Mod may error on key generation 7 f7 v; E. L: F+ D) n. w7 Y% f
lLngResult = (lLngMod * lLngResult) Mod Modulus
) N! K1 O& L/ H' r+ xIf Err Then Exit Function
" d9 i  b: @! _$ }: ?+ ]Next
' y: a( \! Z8 J" @* o4 gEnd If
' J' ^' b) r7 B. J$ c5 ~1 LCrypt = lLngResult
% F: G0 F6 z( ?7 F. ~  wEnd Function
2 f* @# O" _* a0 j2 N' o
' X$ }6 h% H! U0 y: B/ }9 WPublic Function Encode(ByVal pStrMessage) ) J5 x4 u" [/ S* }: z
Dim lLngIndex % N0 V' H, T  @7 w
Dim lLngMaxIndex 0 }8 U4 F3 f0 v! L
Dim lBytAscii 1 ]* \( {" p% K5 C! a7 |4 P
Dim lLngEncrypted
. D$ C9 i2 x* W: @0 \4 slLngMaxIndex = Len(pStrMessage)
8 D2 ]! I/ F2 @1 w9 P, HIf lLngMaxIndex = 0 Then Exit Function   S; s: n" J# e/ F8 z; X
For lLngIndex = 1 To lLngMaxIndex
- c4 x% J$ [7 ?  klBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) . @' ?( h: n1 A
lLngEncrypted = Crypt(lBytAscii, PublicKey) 2 ~, S5 N- n  _& a
Encode = Encode & NumberToHex(lLngEncrypted, 4) , M# e: N' u! K; l' e" G. ?
Next & R; O9 Q5 J4 j
End Function
2 d; ~1 p; p( v, G0 G; z- y" xPublic Function Decode(ByVal pStrMessage)
. H5 h# d4 s3 \! g! A/ vDim lBytAscii 2 Q1 y' R3 G  f7 G- i8 a
Dim lLngIndex
( D. C+ e, N7 g3 R' z8 A5 |! RDim lLngMaxIndex
" e2 K3 t6 B6 d& D7 E; s! o* PDim lLngEncryptedData + ]5 ?  S% f/ Z2 C- L5 @) Z
Decode = "" 2 W' b; r/ q9 o( ~
lLngMaxIndex = Len(pStrMessage)
/ U) i! T( I1 l. M- nFor lLngIndex = 1 To lLngMaxIndex Step 4
; K) ~" \( b9 \# d1 h4 r4 @0 @lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ) G8 f, R+ i9 f4 s2 m
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
3 J. L; A- [5 L0 n+ _5 ZDecode = Decode & Chr(lBytAscii) # f! F! m8 [' `7 b4 {1 T8 m
Next
  s0 g+ ^( u6 g/ \% e; s, q# Q9 tEnd Function
3 a) U* \2 F. [, u) q/ `Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
# o7 e4 v7 {$ L$ aNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) . q1 F# n# Y2 U' Z# ?. y0 u" l
End Function
8 e! g& |( q2 P, X' o6 w( NPrivate Function HexToNumber(ByRef pStrHex) + J- ?  |$ j% d9 `$ @' F9 Q& J
HexToNumber = CLng("&h" & pStrHex)
3 u; H9 ]8 B) N& F7 j# H+ rEnd Function
5 z9 k, i9 C5 w8 x# ]6 n2 CEnd Class
6 v' d: Y9 h, ^2 ~$ l$ xfunction Encryptstr(Message)
6 g) i5 f9 N7 z; I. [* x' NDim LngKeyE
0 N9 ^% {! x$ D& s0 k$ [Dim LngKeyD ) C2 r* N$ `+ v& @! q' Y* Z! a' ~
Dim LngKeyN
; E2 |) S1 u8 \4 pDim StrMessage : D5 S& k- z, I
Dim ObjRSA ( i2 i# i2 {' }+ J, h! ?( z; U3 R
LngKeyE = "32823"
' }% ?1 V$ ~0 X0 u! |3 w' vLngKeyD = "20643" : P( j5 Q' ?) @8 z" W
LngKeyN = "29893"
& {8 r- V2 ^) b9 L) v& T" E3 I* ~StrMessage = Message
8 D" o9 E! e1 J2 w, e8 |( H  GSet ObjRSA = New clsRSA # [6 ~( a* j+ \- F/ |% u0 B1 n1 [2 K
ObjRSA.PublicKey = LngKeyE 3 k8 n. D3 g# L, T+ |( {; R
ObjRSA.Modulus = LngKeyN
) k$ F9 d2 |; \* Q& TEncryptstr = ObjRSA.Encode(StrMessage) " c: D6 z* P- \# E/ S2 L# B
Set ObjRSA = Nothing
' A5 Z+ o+ Z& P" j  h' i! Iend function& ?5 i0 ]; d  r, P0 I9 M
Function Decryptstr(Message) 7 |3 G6 ^1 M5 O  u6 o
Dim LngKeyE
8 t6 n2 p8 r/ V! u! gDim LngKeyD , h: l9 ]. Z, G) M1 C/ O" j0 [3 r
Dim LngKeyN 7 T, {9 \- s0 O+ v( x
Dim StrMessage
+ ?4 N0 P, e' n2 gDim ObjRSA - u+ Q" ?6 U" r# l) g* a  u
LngKeyE = "32823" 7 z+ U& J" x3 E
LngKeyD = "20643"
# u) l) _/ B3 [4 E% k7 d: ALngKeyN = "29893"
2 M- n* t5 ]% G& C8 r- r' i, ]- s' _StrMessage = Message
2 g: W+ ?9 m: ~) i& c. u8 b. Y5 iSet ObjRSA = New clsRSA
# Y* o' b- Z$ J- O# A% nObjRSA.PrivateKey =LngKeyD ) E0 V( z- \5 O# N; H; _% K# w
ObjRSA.Modulus=LngKeyN
' P! h& Q$ l, qdecryptstr=ObjRSA.Decode(StrMessage)
, F0 @: `3 A0 e8 ^- pSet ObjRSA = Nothing
- ~* h, N: d8 {& i2 O# Tend function 0 H) Z, g" o* A: y: r7 g0 R
%>
5 V9 t8 {8 I. x( N3 v) @# o. E===============================================
6 H9 ^8 f6 L. H3 s
, w. e( Z0 W: D; f' j5 [还有一个用于测试这段代码的test.asp
* v0 v1 E/ k0 J+ e$ d有兴趣的自己搭建个IIS测试下
  p  ^5 B8 ^1 E( H<!--#INCLUDE FILE="RSA.asp"-->
0 J) m- ]# _& Z- i4 Q- L9 P6 u<%
, i4 O7 u+ o8 s  t, {function Encryptstr(Message) $ q2 ?- W/ i3 Q8 D! \
Dim LngKeyE ( {9 T( y9 J2 u( P% t$ g
Dim LngKeyD 0 ~2 ]: P8 q# |& z& s8 Y
Dim LngKeyN
9 M# v  Q. s, }6 ?' QDim StrMessage
2 k2 L' {' d* m# g  I. L& hDim ObjRSA
' q* C# g- K  S: Z/ iLngKeyE = "32823" 6 y1 v, w; {/ ^. `
LngKeyD = "20643"
2 `% `/ |: }# I) R3 N/ [LngKeyN = "29893"
0 \6 k. Z. j  \+ qStrMessage = Message $ d  F$ W' u. g$ @; q7 `  B0 B2 V
Set ObjRSA = New clsRSA ! j2 [, X, S. B5 k. P
ObjRSA.PublicKey = LngKeyE
4 U; o  t# {* HObjRSA.Modulus = LngKeyN
8 L2 i' s( d2 l, S+ ~3 _Encryptstr = ObjRSA.Encode(StrMessage) + z; A# |+ V' W3 l9 l+ T& O
Set ObjRSA = Nothing + l: [6 m7 w& I1 `7 i: Y
end function
+ k8 w8 K; }- y* U* l6 |function decryptstr(Message)
  j9 z0 O& P4 {& `Dim LngKeyE . a( x' s$ Z0 N0 B: R. b& h
Dim LngKeyD + w, f$ X1 |$ ~
Dim LngKeyN 3 k, L( s  ^0 e
Dim StrMessage . X7 J; s" ]" o9 `8 J$ X
Dim ObjRSA * L7 R  }) C9 s$ r- l8 s
LngKeyE = "32823" 0 F6 B, r8 ?  b
LngKeyD = "20643"
/ g4 y% m# F; C, s4 E- ?& lLngKeyN = "29893" . O: L& Q: K% D9 {% n
StrMessage = Message
" r' C% [9 ~; v: ySet ObjRSA = New clsRSA
3 o6 L) ^$ x; s6 BObjRSA.PrivateKey =LngKeyD
; a' q% b6 G0 MObjRSA.Modulus=LngKeyN
* V4 K+ S: a$ W8 L; e% ddecryptstr=ObjRSA.Decode(StrMessage) 7 a, A$ i7 S2 `' n  J
Set ObjRSA = Nothing
( v1 N2 B% K" v4 z: Tend function " m" V8 m0 o# F9 A
dim last,first ! y8 y: s. D; L' t6 Z
first="!@#$%^&*()" , F$ o! @4 w- e5 X- `
Response.Write "加密前为:"&first , C! c; i  `# V; D+ A) ?
last=Encryptstr(first)
! p5 K  x' }4 I3 E4 p  ZResponse.Write "加密后为"&last
# w% L& M& V( FResponse.Write "解密后为" &decryptstr(last)
- H. ?6 n5 Z0 _  j( }% d%> ==============================================
( x4 F5 P, X- r& z( d( q2 s+ x$ h剩下的就是字符的对照表了+ Z1 W" P! v5 @+ [+ f6 E9 r0 t. {
===================字符集================. i9 i( X2 q6 K
1_____6EBB! w6 n5 X8 l' `) y- G
2_____5C1F
8 {: g6 @7 k! [, O; a3_____4D75& _; S$ U  k* l: x) ~7 X" W
4_____26CC
6 p1 Z! |" }+ P3 [7 x) x5_____4F88  T' ?' N( @4 K5 `/ X" {  z. m
6_____3F4E
. }! c4 a' A# D' u6 t7_____0A9D
7 D( ~" o; j. L3 Z! b) h. s8_____1A1C
9 g8 R& Y3 ]- C% u& s0 p. |% L0 h% e9_____6D20& F( `1 _  I; M6 ?' v
0_____1089
' v6 f3 j" P1 f* L. P, z( m/ L( O7 da_____0F3E
1 t8 p/ O. }( w8 f& r& v( e- pb_____3159; S0 t, }/ I; X. O
c_____3517
+ C, h4 @; }* H% \+ w) id_____419C
6 C6 A. f8 _7 ye_____615C* N# w5 R$ t* Q% P3 ?
f_____556F
1 W7 f# T: b2 h" s' x+ og_____2B7F+ j! r7 O( @: [2 Y& ?1 S
h_____0F9C
0 k5 Z( E% I8 M; |! xi_____00FA
0 X! W3 Y( ]; j. A" v- U' Hj_____5A50
' w' X$ ]- h* c3 Lk_____2850* F* s! ]5 e/ O, M, V. A
l_____3E7B( n" z7 r0 T7 O$ _! n
m_____71C5
0 H% u* a7 n3 V, B- F7 Dn_____1FC8: f( \! }3 L! {# k: S) m& I1 U
o_____74C1
7 S2 O" J. u% y8 A6 I  o( Gp_____5FB8: F* c, u' [! y2 l
q_____6085
6 z! Z% u+ V2 G; |& d# l% \- xr_____3AC4
# h" b9 Q) d" D: E; A' ts_____2F50$ O7 m/ T/ ]: W: ~" e: |" V2 o
t_____36F8
( b4 e/ W/ p! {& }" Ku_____7010
4 m; N( D8 [) H5 sv_____0B42- \. }5 r9 B7 r( C, Z
w_____1C7A+ U4 n, c" ?2 k  l% A4 [
x_____16F80 \' s  K% A5 m8 \% H  K% N
y_____2EE7
3 m1 W. J0 {4 vz_____5CF3
  h5 H* E% k& _, m4 k!_____6233
  g4 Q, ]0 g2 K. O& y/ y@_____3A455 K# K+ q' j: \! }: q
#_____2291, K1 O5 _+ k7 u* U; `1 G( w, l
$_____5D5C* O8 c. I& H% ~
%_____09B90 k0 r- X# ~0 t! l' ?' |, |# @
^_____43EA! K. V9 W' [& x5 M! g
&_____62B9( R4 Y0 l* Y$ H5 j9 k0 ~, N0 L! U
*_____6301
& y% C* C/ |1 L0 m# {(_____4659  a! x- k+ [) g& m* N- r2 j
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表