返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm+ h* s; s; @! i( K0 T" h- n
原始出处:http://www.3ast.com.cm
: _. j! D9 m, a4 G5 j& B* C4 ]
( J! S# j# r4 f/ X9 q& N+ z8 M看不懂的直接绕过
& M6 ^1 D! ^, l  G) \加密前为:hwy123456$ e0 ~( `" z3 X  D
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E2 w* i8 T( o. U7 c4 z, @$ I
5 y4 s- E: @, m' M1 p
============================================
& M/ E0 W$ c4 ]$ ^3 b. G. Y上面是当时自己校内的心情。现在已经解破出来了,分享给大家+ H* p4 ]# _" z+ b, {5 f, J
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
- F' w# c# M1 J2 h* V0 j以下是RSA算法文件: ?8 s/ q' H0 _+ E
, ~6 O/ p+ G' m- s8 O4 {% z8 ]
文件名RSA.ASP
) k  ~! R7 f' M% j( h===============================================1 l: q0 l) _: ~6 |; r% J$ t* \# ]
<% * v/ l! P( C3 \
Class clsRSA ( J1 u4 l' v9 V8 x* N
Public PrivateKey ! ]' j4 w, k! x9 F+ B, V
Public PublicKey # P3 s! K# I& k+ c, h1 G3 ^
Public Modulus
1 v4 s& ?% l6 j. x$ H4 m: D3 QPublic Function Crypt(pLngMessage, pLngKey) 1 ?8 w3 q( V& r& Q
On Error Resume Next 2 u6 K+ @% O/ a6 h9 ^
Dim lLngMod & u: _' u, _5 a9 d
Dim lLngResult # `- _" _" Y; [1 Y3 ]# ^/ q2 T
Dim lLngIndex
: d7 M3 m" Q8 y" R; v. SIf pLngKey Mod 2 = 0 Then + B; z' ]( S4 z6 m/ O2 g# e+ ?+ P
lLngResult = 1
& c% U0 r* K- i- x" E3 M$ Z7 `For lLngIndex = 1 To pLngKey / 2
8 i% {- @. {( M- D/ H+ z. ClLngMod = (pLngMessage ^ 2) Mod Modulus ! _3 m! R- a4 c8 K7 {+ d" x
' Mod may error on key generation " {- r1 i$ @4 T- L
lLngResult = (lLngMod * lLngResult) Mod Modulus
6 A' a7 B$ A; U! z  T# V. vIf Err Then Exit Function
# ]; {' k: J5 r( mNext 9 q' n" r# c7 |! |3 W  M
Else ' f7 x8 F8 c# l7 z2 o5 }
lLngResult = pLngMessage # L' \$ a. x3 Z9 W
For lLngIndex = 1 To pLngKey / 2
+ N; ?5 o1 s/ ]4 l6 xlLngMod = (pLngMessage ^ 2) Mod Modulus 1 L, p. S1 Q9 X6 [
On Error Resume Next
1 F- f& a: K: E5 g' Mod may error on key generation + [7 }% n; c6 o9 x
lLngResult = (lLngMod * lLngResult) Mod Modulus / D+ T: T' I& D% h! Z
If Err Then Exit Function , r" j! ^: U& y& w9 _. ^1 [6 V4 T
Next ( |  Q3 O% C1 P& M3 D6 G/ d
End If 4 \4 R0 _) j/ W9 E6 ^) s; O$ z; N
Crypt = lLngResult
2 F* @3 w0 e- e5 X# bEnd Function
- T* ~7 R' {$ e' t, `( O
4 l8 u3 i/ `5 ~) gPublic Function Encode(ByVal pStrMessage)
0 P7 k5 I, W; o, [' C4 h( WDim lLngIndex
; q* }) R( g7 A) qDim lLngMaxIndex
1 T, |" ?* G2 g6 n7 ~6 G4 h# R( ^$ wDim lBytAscii 2 r" H3 n. d" x9 J
Dim lLngEncrypted ' o- R  t+ H& K' o1 |
lLngMaxIndex = Len(pStrMessage)
2 Q; J) T$ ]+ [/ U& {* tIf lLngMaxIndex = 0 Then Exit Function . E+ M1 f, ^* m3 W# W2 s6 ~$ p
For lLngIndex = 1 To lLngMaxIndex
3 M% f( E, U" l0 glBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
# q" l( I; F8 \, H$ H0 d6 F1 rlLngEncrypted = Crypt(lBytAscii, PublicKey)
3 `* _0 I8 j3 K! F* bEncode = Encode & NumberToHex(lLngEncrypted, 4)
6 N) J6 L0 B. ]. {Next / ^6 n) x8 p; I! ^  x& L! J" _
End Function 2 J# N! `) c9 l- k  L
Public Function Decode(ByVal pStrMessage)
9 Q8 P  }. s/ ~5 T. b, n4 t1 UDim lBytAscii
: Y3 x! x" s$ r9 tDim lLngIndex 7 |. y  V8 V( z) K1 q
Dim lLngMaxIndex , h+ C/ w7 Z$ _0 {. L
Dim lLngEncryptedData
4 S% c6 v2 J$ @" ]( g9 pDecode = ""
  o$ `& r6 \9 @( c' [1 f- _) {2 blLngMaxIndex = Len(pStrMessage)
! o% z, e9 O4 m# e( Q8 y9 n' r" ^For lLngIndex = 1 To lLngMaxIndex Step 4 & b* @- T# {* x  x% S6 I' q" L
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
2 K3 D" d% K9 P% |1 Z# o: AlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ! k( }# {4 b  G$ o6 l  A3 n
Decode = Decode & Chr(lBytAscii) ; j, H. |! \& X" A& q% Z( j
Next
! D1 ]+ P  [1 l2 ~) v; AEnd Function
, \! C3 t4 A. sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 2 N- }5 K1 G7 N3 T+ V* e
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 c6 N8 o5 b) T8 x' W
End Function
1 i" D9 i3 E* {7 CPrivate Function HexToNumber(ByRef pStrHex) # b2 J5 z& c; x: S
HexToNumber = CLng("&h" & pStrHex) 4 h- h: ~/ c1 b6 y+ N, M
End Function & D" t+ [9 H) `8 K4 E8 n# i
End Class
$ _3 F' u4 `' W8 Z) Q! W1 @: kfunction Encryptstr(Message) 2 ?/ p' K0 ?# A+ ?3 Z
Dim LngKeyE 8 |+ X$ m2 Y1 f2 t+ S1 V
Dim LngKeyD ) Q' q5 V! U! I$ |1 h/ l: l3 S' f$ a
Dim LngKeyN
: o6 ^' g& v1 u2 `/ q2 dDim StrMessage & k2 k. r0 O/ N4 Q( U' G6 ?7 R
Dim ObjRSA
: A1 I; s, G3 b) A7 r! d8 _LngKeyE = "32823" " o' l" C" E6 V% a7 E2 \
LngKeyD = "20643" . {, o4 c8 `; y- O& @2 J7 t
LngKeyN = "29893" - G5 n7 E; [1 Q" u8 E# v6 _) r
StrMessage = Message
, B. j8 [# Z; A. T4 n' D2 x$ S, s  YSet ObjRSA = New clsRSA
+ [) M& k3 h% P- X; dObjRSA.PublicKey = LngKeyE 4 z' B8 c5 g2 C: o
ObjRSA.Modulus = LngKeyN
2 z8 Z  L4 g5 ~3 Q0 @+ n- AEncryptstr = ObjRSA.Encode(StrMessage) 9 m# H! T; y9 f
Set ObjRSA = Nothing - ^5 Z2 x+ Z/ V6 Y' s8 ?( o
end function
6 E2 [: F9 {/ IFunction Decryptstr(Message) 0 J0 @7 T+ p  u  o* E8 ?
Dim LngKeyE ! H5 f! b  U) X+ a5 K$ I
Dim LngKeyD ( P) z9 R, {0 n! z% l, _
Dim LngKeyN 9 Z2 Q* ?1 U3 ]+ ?2 a; w
Dim StrMessage ; o$ ^% z! C" f9 m3 V, T, s; k
Dim ObjRSA 8 _5 A( z6 b& ?7 H
LngKeyE = "32823" 0 ~3 I6 A; J, i: H- p
LngKeyD = "20643" # a7 f, g% }5 n0 O( ~4 T" V; @( n
LngKeyN = "29893"
5 O3 ^4 n; w: k1 e% J2 `* t$ {- DStrMessage = Message 3 W, j& h5 z# P
Set ObjRSA = New clsRSA
# U0 u2 O1 I! f  z8 NObjRSA.PrivateKey =LngKeyD
$ N  ~5 E9 D9 f" EObjRSA.Modulus=LngKeyN
, _/ x0 e4 x' B6 s: Edecryptstr=ObjRSA.Decode(StrMessage)
- n5 C# j& }8 N( y& v7 i  ISet ObjRSA = Nothing ! R# B( f, T9 Q7 x/ h4 n
end function   ^' A" E0 K+ P4 @& Z) C9 u8 p
%>
3 R. B9 x$ J! r0 n+ I5 p  }===============================================/ T* o; _8 o6 Q6 a

2 M" R7 ]: W$ d" |还有一个用于测试这段代码的test.asp; n, G5 @8 |6 ?* {6 A
有兴趣的自己搭建个IIS测试下8 n1 W5 c: x/ `6 C  b. }) T0 ]
<!--#INCLUDE FILE="RSA.asp"-->
, m3 m% N; B+ a- n8 U/ P0 s<%: y# L4 T4 e$ A9 Y
function Encryptstr(Message)
" m9 K5 p+ `! o" Q1 ]Dim LngKeyE
- \* l7 e; N6 M+ A* lDim LngKeyD
) I5 f+ b; E0 c6 _Dim LngKeyN
# @' p, P8 o$ O' l9 aDim StrMessage
4 j+ Z* \; m+ q: ?" g( u/ wDim ObjRSA 4 g$ t' h5 b# g7 u6 C( z
LngKeyE = "32823"   f8 F" i( z7 y$ [
LngKeyD = "20643"
1 Q" Z7 l1 J  `/ k: MLngKeyN = "29893" 3 f, r1 C/ U  m- W" X
StrMessage = Message
2 e: l% [/ r1 o) HSet ObjRSA = New clsRSA 2 b0 W( J3 o% s' P) p) x; [, F" {( I
ObjRSA.PublicKey = LngKeyE
( I" A9 I) p# ^0 S9 |ObjRSA.Modulus = LngKeyN
: v% ?! m4 J( S5 @, Z! hEncryptstr = ObjRSA.Encode(StrMessage) + {8 W+ s% k! G# k6 F9 |
Set ObjRSA = Nothing
) C, p: i' |( |$ h- Bend function
5 \* H5 ?0 j0 y# J* G) ~function decryptstr(Message) + [6 G" k, K- m9 \* `
Dim LngKeyE " c! U2 u+ b! r4 W8 Y
Dim LngKeyD
- [- P9 e$ B4 q% a" g1 nDim LngKeyN
7 B9 X- F, i! g: q/ IDim StrMessage
0 g8 P: Q( ~* A3 k$ Q5 u/ r8 dDim ObjRSA
6 x( h# J/ B. z" `3 aLngKeyE = "32823"
& G: M3 F( B0 X& t% HLngKeyD = "20643"
  M- g9 v; B4 E. n2 ULngKeyN = "29893"
8 _6 o* j: B5 F3 nStrMessage = Message ! n  \, d0 ^. R
Set ObjRSA = New clsRSA
. y9 p  M( s, P2 `) `9 h. B  IObjRSA.PrivateKey =LngKeyD 4 _* e9 i  f% i5 d
ObjRSA.Modulus=LngKeyN
; @/ m! ~8 r1 J' Gdecryptstr=ObjRSA.Decode(StrMessage)
6 Q4 k5 t% ?/ d! g: a9 YSet ObjRSA = Nothing % o1 o) {5 N8 ^( ]
end function 3 o: p5 x( `& i
dim last,first
$ q' _5 }6 t8 j9 K; ifirst="!@#$%^&*()"
7 K3 a! N% i1 x# yResponse.Write "加密前为:"&first
3 [5 N( j% v( Llast=Encryptstr(first)
9 B' ?9 O! P: B6 wResponse.Write "加密后为"&last
9 y& ^6 {2 h6 e) w% LResponse.Write "解密后为" &decryptstr(last)
0 B6 E: }* b' [% U9 E6 F%> ==============================================
: h/ ], u* I/ J3 X剩下的就是字符的对照表了, [# x/ [/ d* s0 y5 h3 n0 V: u3 T
===================字符集================
7 H" o+ n" ?/ L% s9 ?1_____6EBB
8 q) o2 y+ U4 e2 F6 e' o1 h, ?2_____5C1F
, Y# G% G5 E9 A: G5 X: O3_____4D75
; q4 D) ?( r" o# h4_____26CC% H+ ~: \0 p( c
5_____4F886 G! h2 m: y2 O2 J
6_____3F4E, m# J  j# J0 @' u/ X
7_____0A9D
& o- F8 B0 H1 h& E* @' d" ]) A8_____1A1C$ z/ J& |% J( S, k7 T  x% l
9_____6D20
& M* L! g8 Q! I$ q0 q0 f: y0_____1089
! G: m* g: s, h$ la_____0F3E) y: n  y6 l$ C
b_____3159
+ l5 m# ?) T5 t" J7 S" lc_____3517
+ C# z+ U6 e/ H% J# X+ Jd_____419C
" }2 f7 R' U: M# q( j6 H6 Xe_____615C. k! O  ?2 v8 p! t! _$ K
f_____556F3 i' L8 X& x8 c' H% }/ |
g_____2B7F' B8 W9 ?2 V# l( b' u, q- e! F
h_____0F9C
) T) q0 u+ `( j! c$ `' Yi_____00FA
% i, i+ O) a3 ?4 k4 `( ~  v  R3 Lj_____5A50# `: j' U; K% K! f& r+ z
k_____2850$ E$ C/ ], a0 W" C; f/ U$ V4 K9 J) `
l_____3E7B# w+ |1 C0 b& u0 g
m_____71C57 S( @* h$ u! ?1 A, a
n_____1FC8) Q5 n0 o; r6 S* p% [; r
o_____74C13 G9 }: T, b' {" }  n' d* n
p_____5FB8; s9 J" D' [" I" i" T
q_____6085
5 w# d, ?  g$ V$ tr_____3AC4( ~- C/ c$ V9 U- x0 V: F
s_____2F50# O/ g( o7 v. L' `# P1 o
t_____36F8+ d/ W1 b2 y8 u/ z2 r# V
u_____7010% W$ `  W! F- q% k. l, g" m0 X
v_____0B42
: N) b: k  q1 L, qw_____1C7A# E$ }9 O  X( A2 s& D: Z. C5 v( n. q
x_____16F8! L, C1 Q/ w: ^9 z
y_____2EE75 `5 |$ H# E9 K) k5 ]% M
z_____5CF3
$ J/ @) w" A7 u/ B& w! E; ]!_____6233
* V) Y" a; w7 V% _- H& T@_____3A45
- I5 U. e5 `, y. w6 p3 H/ k! Y#_____2291
2 E! N$ w# _, P( o/ N" i, I$_____5D5C
0 n( j, ?! Z( [3 j  y%_____09B98 S0 K& J' c; y2 _% e5 ?7 f
^_____43EA$ ]3 S2 S  r: b+ ?8 k, Q2 W8 G
&_____62B9
( [8 w: K7 D# x" w1 X( [" B( W+ c  \*_____6301
  s, J- \/ H! U! h  ^(_____4659* a7 n: J4 k; J# @1 O8 ^, m2 S
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表