返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- F0 p- a. `( K0 e
原始出处:http://www.3ast.com.cm
1 `4 M. _, q( g* s3 @  X5 S; d) h0 N
看不懂的直接绕过5 A( ^. b, s0 X7 q" H* J
加密前为:hwy123456
! W7 C2 P* J$ A( b$ v加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 @' L% L6 Z" w: p# B, t+ W) s

( _3 _) X& \  \6 t============================================3 [! P9 F" B7 }/ A" o
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
! L) v# K% }# v( V, k0 ^也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法0 t9 w8 l( [$ v* [( ?3 A% \
以下是RSA算法文件
8 m  t, u8 F/ W. G( [! T4 }
* M) R8 P) z6 X5 o( A( \( c: w文件名RSA.ASP- g) c& }' W5 }8 [
===============================================9 g) i' @5 v& j- f
<% . h( n6 L9 _1 E( K/ n
Class clsRSA
" O$ J4 ~2 Q: s2 n0 U) W7 qPublic PrivateKey % V# t, M' m: J
Public PublicKey - t. f7 Z5 D/ Q% K! R* _& i
Public Modulus
# @( l. m. I& p* `- VPublic Function Crypt(pLngMessage, pLngKey) / }$ M' M: I0 r  E6 X5 O
On Error Resume Next
3 M4 v2 A$ Q; i/ [2 f+ x) a1 RDim lLngMod
, ?% U2 J4 C" n) H* SDim lLngResult   [; D9 N3 D8 x6 O% r  i
Dim lLngIndex & H# z4 R5 U1 f# V! D
If pLngKey Mod 2 = 0 Then
! U( ?- h$ @$ |. U. r0 b3 H. T) y9 {lLngResult = 1
5 H+ R* F1 }4 x7 j! t# o1 _For lLngIndex = 1 To pLngKey / 2
1 `& Q  {2 }7 M2 G' JlLngMod = (pLngMessage ^ 2) Mod Modulus
; U& s; \" r3 [/ ?+ i' Mod may error on key generation / G$ p) I- w% U
lLngResult = (lLngMod * lLngResult) Mod Modulus   V8 [1 x7 J  X/ _; l8 w
If Err Then Exit Function
) J  I5 D2 n" C# N' ANext
5 m3 |! Y( c4 IElse ' s" D# L5 G3 p" \" ^+ Z; j
lLngResult = pLngMessage
% W+ u( k# o; v; t( B" FFor lLngIndex = 1 To pLngKey / 2 5 l! k  G, f1 b0 p4 H8 o
lLngMod = (pLngMessage ^ 2) Mod Modulus * F( L! o' m* ^- [$ `5 w$ h+ w4 t% ?
On Error Resume Next
5 m* ]  g1 p% D3 N) m% E7 G* S' Mod may error on key generation 4 L9 h  u" C' _( A9 [
lLngResult = (lLngMod * lLngResult) Mod Modulus ) d! H) R& v) g6 P9 y
If Err Then Exit Function
  Z4 u( \& c4 X4 \' JNext
  G  L" q! V  V. a$ j( K- dEnd If 4 {2 i( m2 S5 y2 D! J
Crypt = lLngResult 6 x9 p8 i- ~9 U9 a! q
End Function& q7 Q- k4 f) _1 W

: J5 ~  h6 \' V+ E9 s, i2 r. bPublic Function Encode(ByVal pStrMessage) ' _1 }' y' H5 u# o# F' @4 t
Dim lLngIndex . l- M* O- m4 V/ }* Y' d
Dim lLngMaxIndex $ G! U" o" `! G' g6 A  O0 Q
Dim lBytAscii 8 h1 T+ N) ?! f# ]) W+ {7 C- ?
Dim lLngEncrypted
% n3 h' L: S, K. _lLngMaxIndex = Len(pStrMessage)
0 w/ K+ r. b4 A" D* F4 Y* N& C7 fIf lLngMaxIndex = 0 Then Exit Function & q! p. O) I% X) U
For lLngIndex = 1 To lLngMaxIndex 0 H- K( o2 N1 r/ z: o# t
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ( c4 e1 Q1 A7 g
lLngEncrypted = Crypt(lBytAscii, PublicKey)   [9 |- A) E$ }5 ^
Encode = Encode & NumberToHex(lLngEncrypted, 4) 2 T# v0 M1 u( K' Y1 ?
Next 5 K; R& @: W& u# v4 k
End Function 7 i7 F$ z) G2 k9 t$ S
Public Function Decode(ByVal pStrMessage)
- g0 k; |; ?' o& uDim lBytAscii & P; Q! |% R8 U9 G+ m2 A( D
Dim lLngIndex
, ?, j5 \5 B$ G4 i! YDim lLngMaxIndex
6 R( M, }+ F( Z! ?: w& Y( sDim lLngEncryptedData
4 J" ]; I- w# X( K5 G% B4 d" vDecode = ""
5 L( Z% [+ z! B7 X3 k8 }lLngMaxIndex = Len(pStrMessage) 0 ~$ V% U9 M  d' D' r8 [; e5 x& u
For lLngIndex = 1 To lLngMaxIndex Step 4 8 {6 u6 f  M9 U- p0 @4 x
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 9 j/ C& }% D' V+ x
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- v, l! S* E% Y4 C% e6 |( HDecode = Decode & Chr(lBytAscii) 5 v+ ~- ~6 M. o
Next
7 A3 }) J* x# q' _, hEnd Function 8 L1 P. f" S* S) p3 \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
1 d  \# E4 @4 p/ dNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) * {# w: V" ^$ h1 w8 a
End Function ; `6 c) `7 l" S# Y
Private Function HexToNumber(ByRef pStrHex) ; Y" o% \* l4 n; w6 D
HexToNumber = CLng("&h" & pStrHex)
% U  J! P5 G6 m2 E0 sEnd Function
+ F- W/ }! J1 Y1 B8 E0 PEnd Class
+ J* F' N9 A) g. D5 Jfunction Encryptstr(Message)
3 A# Z$ `* J2 n5 RDim LngKeyE   ~7 R% S6 U/ X
Dim LngKeyD 2 x5 \2 s5 X: g6 R( n* z) _" ]6 ~
Dim LngKeyN
9 Z% S( B  v! |Dim StrMessage ; v& r5 h2 g% g# x: M
Dim ObjRSA
( ?# V, H4 [, Z7 Y0 R. _$ @LngKeyE = "32823" 6 e/ T, j$ f! U7 i3 g
LngKeyD = "20643"
' Z- d) L- s! V2 aLngKeyN = "29893"
4 D0 o2 H' Q2 g, a5 ]StrMessage = Message
1 l. @- Y4 y! Y* Y) N! h: ZSet ObjRSA = New clsRSA
! T* H3 v2 Q. V3 P+ Z( K; x" yObjRSA.PublicKey = LngKeyE
2 N* _) W0 Y/ N2 G( ^7 c, L0 _# TObjRSA.Modulus = LngKeyN ) A( g& T! B% d, N" O) w$ g6 \
Encryptstr = ObjRSA.Encode(StrMessage) 3 O+ m* a& h7 {. [' R# k
Set ObjRSA = Nothing : }1 `& r% ^* Y+ k4 z
end function4 k$ m' Q% C  a9 e7 s& a
Function Decryptstr(Message) . v; Q6 t: Z  X- u6 ^- T
Dim LngKeyE
: y8 Y7 j1 r4 E4 PDim LngKeyD , ^- t8 Q8 h# \/ F4 s# y( Y
Dim LngKeyN
5 A; r* i3 G$ x! O6 E* ?* {3 g$ RDim StrMessage
& [" \. Z, G) f, h: ~& A0 a6 QDim ObjRSA 7 B, ?5 ]: {8 c2 g9 ]  ~% U
LngKeyE = "32823"
: ^  h% z! ]) u4 cLngKeyD = "20643" 5 T; w# W1 Z( I/ \$ [
LngKeyN = "29893"
5 E* R( i6 \8 n8 |0 _* dStrMessage = Message
6 t( X" o2 |  ]* K  t- A+ J0 |( ?' OSet ObjRSA = New clsRSA ( U! I$ q- N1 f
ObjRSA.PrivateKey =LngKeyD + k' F+ j. y( K& @2 ?' A: L
ObjRSA.Modulus=LngKeyN + _! T) ?2 Z% b  C) t9 W
decryptstr=ObjRSA.Decode(StrMessage)
# z: s* y9 x3 L0 Z1 [# ~8 H; O2 kSet ObjRSA = Nothing
& h6 c" [8 Q0 ~' `: U# tend function 5 d; j# ]  f- {7 G/ A% k1 s4 U5 D* q
%>
4 z  s# r, ]' y+ D/ ~+ }7 A! i===============================================
2 o% I- l) b) i5 T* `' M+ x8 {4 i3 |' x
还有一个用于测试这段代码的test.asp
: V! d/ n3 S" o3 [) q. ?  Q& Y* v有兴趣的自己搭建个IIS测试下
, A7 k) f8 B0 O* N6 z4 u<!--#INCLUDE FILE="RSA.asp"--> / a3 m) ?+ F8 z5 @
<%" l3 }- a: [+ N3 D
function Encryptstr(Message) ! e. l/ B0 O( e$ _( i, I
Dim LngKeyE 7 v9 V1 P/ B2 l
Dim LngKeyD
( T( t; n4 F+ I+ N1 k$ ?4 Y% PDim LngKeyN ) @0 [! F  z1 [
Dim StrMessage   A6 k6 `' n* K: _+ t, Y( ~
Dim ObjRSA
8 E( `& b0 v' u+ B4 ~LngKeyE = "32823"
( U; W7 m: d- e: y- X# zLngKeyD = "20643"
! Y5 p; S5 m" I/ o% MLngKeyN = "29893" 9 b2 p0 X1 j8 _7 Q4 [/ _/ \
StrMessage = Message 3 i- n8 {% `. F+ ^
Set ObjRSA = New clsRSA
! E9 {: E7 ?" T/ qObjRSA.PublicKey = LngKeyE / z2 L! }! ~0 C$ ]0 x/ N
ObjRSA.Modulus = LngKeyN
* c- h3 d& O* {Encryptstr = ObjRSA.Encode(StrMessage) 2 _! \3 J8 P3 T  c0 Q% q
Set ObjRSA = Nothing
5 C" D" E" M* v  fend function , k4 E, M8 L0 T$ y
function decryptstr(Message) & B0 V" q5 a1 k$ a! f
Dim LngKeyE
9 g  X1 s1 U( `' ?* mDim LngKeyD 5 d" T; s- I0 X. Y* s
Dim LngKeyN 0 p$ ^7 F9 H: f! g. E# V. r4 V
Dim StrMessage   J5 ^$ B; n* L$ ]* Y5 b3 a
Dim ObjRSA
9 w7 _) l9 v. S3 ^" m" FLngKeyE = "32823"
5 o! o* r7 C" l3 e! r- }LngKeyD = "20643"
1 r$ v6 |; r' `1 A% h. |2 XLngKeyN = "29893" + D" g$ h4 e, K. D9 S) I
StrMessage = Message + a+ b! ]4 i" E& X* e' o
Set ObjRSA = New clsRSA
* Z. v" e0 s* oObjRSA.PrivateKey =LngKeyD
( o) ?* C/ J( ?* Q, wObjRSA.Modulus=LngKeyN
! Q9 D/ C. K6 r" Cdecryptstr=ObjRSA.Decode(StrMessage)
' G$ C$ r8 Y2 ~1 vSet ObjRSA = Nothing
. l- ?, V1 m5 e; @8 x4 B- ^5 ^end function
  `/ v5 q; f# r, I( Cdim last,first
' V, B9 u; P0 _; yfirst="!@#$%^&*()" # T, Q8 C- J) R: j) E; b' i1 H
Response.Write "加密前为:"&first & m$ O$ Z7 ]# |6 ^7 t! A
last=Encryptstr(first)
7 r* n% n: x# f" X- dResponse.Write "加密后为"&last
7 K/ T* g2 _3 E' l6 S" S9 lResponse.Write "解密后为" &decryptstr(last) 0 t! @. ^5 N+ Q6 A
%> ==============================================
  K, o! D( L: w8 B$ B剩下的就是字符的对照表了
: }2 Y9 t) i6 I& R* V===================字符集================& Q9 J- A/ I. I3 V! f1 G
1_____6EBB
. B' M8 u8 Z+ B4 R! u( T1 @2_____5C1F
) J/ y5 D: R* Q+ v) |3_____4D752 {* z4 q# |# E' P* m6 _( F
4_____26CC
  c# Z2 e3 V. w7 H5_____4F883 m1 L8 g; Q: ]8 o1 h' k
6_____3F4E3 B$ f  y" W0 {0 @1 H/ ]0 y& }4 S
7_____0A9D" i! e3 Y4 x* K/ u: h! w1 ?
8_____1A1C; P5 N& w4 m  }4 u  z% p
9_____6D209 L* K  Q( v1 n5 _& i
0_____10898 J, |! B) V4 |3 K/ n( ]
a_____0F3E
+ Y3 u; Y( C- H- wb_____31596 u$ t; K. V! }' m. `
c_____3517
) U4 h6 P0 I7 F, \+ M( Fd_____419C9 ^+ U. s, I0 S- A' n, |+ ?
e_____615C1 w( z: ~1 K, h- t& [5 L7 L6 k
f_____556F
% V. B  f& {/ q; M, z  Fg_____2B7F
" F4 `2 d( i; j5 X1 kh_____0F9C# j" V  x( m8 q, f( f1 l+ x5 ^9 C
i_____00FA5 K0 k1 Y) R/ e3 t
j_____5A50- o# l) c: H8 ~
k_____28508 m3 T! X. L+ ~" Q$ Q6 R; h6 A
l_____3E7B9 O+ R* D) E7 C' q: e$ Z
m_____71C5- E9 y" E+ n2 m: Z& {9 h
n_____1FC8' c8 G/ Z  e/ a2 k" X
o_____74C17 m4 y  y2 ?4 T. |8 u' c6 Z3 ?
p_____5FB8
6 o/ \4 v% n% @: |) ?! Qq_____6085
! W- v6 H! s0 w9 l! _# Cr_____3AC4
5 Q+ F3 c) L: ls_____2F50
0 M  `1 Z" T+ _/ n8 m. ?* m! ^t_____36F8
: K5 E% G2 P, P( Y; d! Ju_____7010, |; W1 p7 Y/ z/ w6 J
v_____0B42% w( y" R  P! ^1 h% f" x- i
w_____1C7A
4 q/ ^  W& e7 L+ px_____16F82 G" j6 m6 J+ I9 \, \  W  B
y_____2EE7, G8 o" c9 q* I' c
z_____5CF3' L6 F- w& O; L$ k6 y" y+ n
!_____6233; e( [6 ]7 h! d6 s2 l
@_____3A45
3 V) j$ X; j, u) o#_____2291  {! _( |9 T# t
$_____5D5C4 _9 }2 C+ D7 ^- Y' I6 z
%_____09B9
5 c/ `  Q( l7 i1 b2 k^_____43EA: {2 s* j  [1 F$ X
&_____62B9
+ f& i5 k  k, s6 T0 T9 ^7 D*_____6301
0 g' M8 w# b' j( [8 X(_____46592 T- U* i, a7 Z. r8 D- \8 h6 s
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表