返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
" E. w  Z6 d' x) F! x原始出处:http://www.3ast.com.cm
" Q8 X' u, T8 O2 U0 u; ]+ ^5 v7 T* w. \; V& |% U
看不懂的直接绕过1 Q$ y+ u/ W* F: q/ {* \% Z& p) O! ~$ h
加密前为:hwy123456% S- F. U' u& a9 Y8 a4 q- B
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E0 o1 K4 ?5 f( ~& E& x- B! f
' ^# @  D! a! @5 d' H, @' }
============================================5 R9 q5 m" @1 K* U0 q( |. k3 \/ c
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
' `: M) M2 y* {也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法  \, Z* o+ a6 ?' @
以下是RSA算法文件$ [+ a9 F; I6 ~, f) Z6 `
& ^+ g4 c4 H$ B9 R2 g
文件名RSA.ASP4 a4 }6 B* D4 V3 ^( H
===============================================
& W& u) S5 o9 [<% 9 j0 _/ `: D: [- K  }, A( F5 [
Class clsRSA . |$ I- F% D6 R5 w+ j
Public PrivateKey
4 T6 i: L4 z& B& I5 ]" X% nPublic PublicKey 9 H: Q' G4 ?9 c/ t& z) ?4 N4 o
Public Modulus
# b6 I4 X# o* y# bPublic Function Crypt(pLngMessage, pLngKey)
$ J2 s# G0 N  AOn Error Resume Next
: S2 x8 s4 g, i, wDim lLngMod
$ R% \+ i1 U% S/ Z- n9 hDim lLngResult
! N! n( X0 f. f, o& W9 ?; fDim lLngIndex
  J8 {+ A5 U, _0 U$ x; L6 LIf pLngKey Mod 2 = 0 Then
; Q4 z/ R* F( L0 r; IlLngResult = 1 * I( t$ ^, ^, W3 y: C) _
For lLngIndex = 1 To pLngKey / 2
, H. g. a  z$ ]7 _lLngMod = (pLngMessage ^ 2) Mod Modulus . g0 F5 @& i% M6 d9 e4 e& t  T
' Mod may error on key generation
) I$ f2 N5 d* p# Z3 YlLngResult = (lLngMod * lLngResult) Mod Modulus
5 B5 z- X( T. x7 K7 mIf Err Then Exit Function , z) o% |2 G9 z: F- u
Next
+ @$ X0 m" ~; m% DElse
6 L, ]# |# y! v5 ?9 r* ?lLngResult = pLngMessage
# M/ S/ h% I' Y, g' T! xFor lLngIndex = 1 To pLngKey / 2 % ?: @! I5 c+ m, T( E. x4 U6 |
lLngMod = (pLngMessage ^ 2) Mod Modulus - u: T" f" z+ i8 V) c4 Q
On Error Resume Next / S) X% t3 G6 n
' Mod may error on key generation 0 M& `1 C7 `2 h" I( O1 w5 n2 Q
lLngResult = (lLngMod * lLngResult) Mod Modulus
8 Y5 y  n4 u( b1 o1 m, \$ IIf Err Then Exit Function
, u1 U0 Q- f$ @Next ( E. c. I. `# q0 e
End If 6 T1 ?1 u, a! }: U* e+ u
Crypt = lLngResult 7 _$ X; s1 d" c8 Z( ^
End Function
: r, G  g! D' o+ `
  r5 H( I# W* ~+ I' v* m1 K# JPublic Function Encode(ByVal pStrMessage)
3 ?+ [! `# F# cDim lLngIndex : f- p$ h% U& R. O
Dim lLngMaxIndex 5 ?$ z1 \" ^; Y( I0 G5 @1 S
Dim lBytAscii
/ f7 d% {. L, r7 qDim lLngEncrypted
' A; `+ r! F2 X5 _2 s3 SlLngMaxIndex = Len(pStrMessage) ) G' V% Y  u0 x- {- W* v
If lLngMaxIndex = 0 Then Exit Function
. F" U5 C6 O5 GFor lLngIndex = 1 To lLngMaxIndex 5 l% H9 j- A8 A: j
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ O! F9 u+ K7 y+ ]) x1 F+ UlLngEncrypted = Crypt(lBytAscii, PublicKey) 9 `0 m! K4 X% K" P
Encode = Encode & NumberToHex(lLngEncrypted, 4) $ J7 @1 O1 o# F& Q  b6 d/ o
Next
3 A- w6 L( p7 [8 e9 mEnd Function 0 Z* t, x) [0 t, |3 r5 f0 y+ l+ m
Public Function Decode(ByVal pStrMessage) 2 \1 G- `; M6 r; C  }/ A' [) h9 T
Dim lBytAscii 7 e; r( ]4 A3 r& T% z5 X! P% \7 I
Dim lLngIndex
  y3 s& z8 @" z1 {- @( ~$ hDim lLngMaxIndex
! p/ S2 |+ W, w/ _2 c0 wDim lLngEncryptedData
( Y3 ~# i3 L$ _+ b* KDecode = "" ; y7 P( J4 r; O' y0 h
lLngMaxIndex = Len(pStrMessage)
9 p0 A0 D$ X& }  ]* d; P% U# q2 XFor lLngIndex = 1 To lLngMaxIndex Step 4
- p! D$ F. U: y! G1 l4 YlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 i; g! ?- ?: E; v( `; y
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
0 g' U8 ^# @& ]- ~: K5 }6 _$ J9 {; E# [Decode = Decode & Chr(lBytAscii) 9 ~. w3 _: h0 f! M. f7 E
Next ; b4 I. d$ e3 M: S3 J  ]
End Function
! _$ }4 U# M0 e( F' U, I$ uPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
+ Z; [7 F  @, X  ^9 m! dNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& h7 j4 Z# ?! Q/ g, K& y  g7 s2 GEnd Function ' H, t# q4 k% @% j
Private Function HexToNumber(ByRef pStrHex)
" N) [) G  n$ v( U: M. V6 wHexToNumber = CLng("&h" & pStrHex) / G( H) J! k3 F! K$ p3 b
End Function
8 r5 V7 O0 k8 i6 JEnd Class
! L$ i9 ]& A6 G% g- @! y# ifunction Encryptstr(Message)   A. p1 Z* @5 E' d! B
Dim LngKeyE
4 U1 N2 ^( E8 M6 sDim LngKeyD - K0 T4 ~/ Z$ ~' q" C# N& T
Dim LngKeyN
0 Y) n- s, x/ xDim StrMessage 9 V& v7 N' p6 b
Dim ObjRSA ! S5 ?6 z7 l# Z7 @& N+ ?9 T5 a( f" f
LngKeyE = "32823" / |5 b2 a% c" t) w
LngKeyD = "20643" ; B$ i+ `2 D! g- ]0 t
LngKeyN = "29893" " i5 ^7 n9 X! i0 C$ i3 f" ?( v# r# p
StrMessage = Message 8 ?" g& X' W1 g. a2 u2 j
Set ObjRSA = New clsRSA
3 n$ N/ d, g5 I* ^# SObjRSA.PublicKey = LngKeyE
' }" u. H( Y8 }/ y% V9 VObjRSA.Modulus = LngKeyN " L% v) V5 h2 m) X
Encryptstr = ObjRSA.Encode(StrMessage)
! {, \# G/ v0 N0 J, G6 `0 OSet ObjRSA = Nothing
, v/ m- Y8 n* ]% N% h- Nend function
5 N0 D$ Q) {+ ?+ n  BFunction Decryptstr(Message)
  G& i2 w4 o0 O3 \2 O, E+ Z2 A& s& q) U& EDim LngKeyE , W1 Z7 N$ F& D  }
Dim LngKeyD
0 V4 X3 C/ @6 gDim LngKeyN ! i4 S; o0 U' t" ]6 e3 Y% h+ F# A* S
Dim StrMessage
& C! S, o/ X4 ?Dim ObjRSA
9 |! L6 x9 B* l1 i6 E3 LLngKeyE = "32823"
9 L. ~% Q' m/ Q3 x9 yLngKeyD = "20643" , A8 D4 ~+ @* `2 O4 B
LngKeyN = "29893"
2 H: q& m9 S$ I5 j5 f' z' cStrMessage = Message
2 }. b8 q+ w& L1 V; H! FSet ObjRSA = New clsRSA
+ a) Q9 i: w1 JObjRSA.PrivateKey =LngKeyD
. s6 V1 {, g2 m; j! I7 SObjRSA.Modulus=LngKeyN
( H. e0 o" A/ a6 f0 Xdecryptstr=ObjRSA.Decode(StrMessage)
, t; R  U9 C0 v! VSet ObjRSA = Nothing / ?9 j0 h3 e6 O/ \# U
end function 4 w9 Y3 j5 \4 k5 U8 B# P9 Y; \' k/ c
%>1 f+ \8 Q# j, F$ A1 I% [; t! S' ^* I9 z
===============================================) W6 f) w7 F/ t3 {; J( c: _

7 A( s5 I, H$ E  F还有一个用于测试这段代码的test.asp
: P" L+ s$ B( O" s4 r2 g; U有兴趣的自己搭建个IIS测试下( P8 a  X! @& t
<!--#INCLUDE FILE="RSA.asp"-->
2 E' O6 x# Z% i9 ~<%
0 p+ _0 z, u8 `4 Wfunction Encryptstr(Message)
6 _7 X! i3 U% d! t% K6 uDim LngKeyE
5 j8 h" ^' a% a+ a# kDim LngKeyD
1 T; ~$ j* o8 U1 wDim LngKeyN
0 c3 ]% x! {: T/ f  F5 WDim StrMessage ) b, \& @  f& I4 F0 \
Dim ObjRSA $ r, L: b( O9 ?9 w! B; _
LngKeyE = "32823"
7 m5 \4 U7 Z# d' x4 O. \# l+ BLngKeyD = "20643" * f, J; b3 O% ^# T" k
LngKeyN = "29893" " i/ D. i* V" ?: I3 G  c* S
StrMessage = Message 6 @. x4 z/ C/ ~& X. j) D& E; ^
Set ObjRSA = New clsRSA
# ?! v" S) ]& h8 V4 L! _ObjRSA.PublicKey = LngKeyE
3 Q0 N- W2 I" ^0 Y9 G, G& IObjRSA.Modulus = LngKeyN 1 c2 e3 ^% V9 O. [0 u7 z/ B
Encryptstr = ObjRSA.Encode(StrMessage) ) S1 l& Z8 ~' ^! m9 P/ i
Set ObjRSA = Nothing ! H1 D* {+ }. r& j/ V
end function / o- M, |! d& k4 l) j& Y8 |/ `6 Y
function decryptstr(Message) , a9 O) \8 o7 t% l; o- ^
Dim LngKeyE : Z8 A/ U! Q! o. H$ ]4 e# d" W
Dim LngKeyD & s0 l2 t5 @: y, J  c$ i
Dim LngKeyN
. R0 p5 K: f) }, g5 NDim StrMessage % I9 r& t* W0 |: ~$ R
Dim ObjRSA
8 p& I3 W4 v5 d1 K3 U) o; H4 S" Q% jLngKeyE = "32823" ( u. u8 ~2 Q6 s9 r8 n0 Q# ^) N
LngKeyD = "20643"
9 T! Y6 r* g" U' A. q1 BLngKeyN = "29893"
  F( A( A! P% I" }; OStrMessage = Message 1 p' w$ `0 A* k. a: Z/ k/ ^+ k
Set ObjRSA = New clsRSA 5 u5 E1 B5 \+ P- @
ObjRSA.PrivateKey =LngKeyD * }& M2 Q3 r6 c% \4 }8 [
ObjRSA.Modulus=LngKeyN
/ Q* s/ L  p: Fdecryptstr=ObjRSA.Decode(StrMessage)
$ b9 f. F& l3 u7 M4 k# lSet ObjRSA = Nothing & W& w* s( s- m& O
end function
+ N4 Q# M( b, q1 M6 o8 Wdim last,first
0 H5 U: M: l7 `first="!@#$%^&*()" 9 @3 T9 E1 x. r
Response.Write "加密前为:"&first
" X% P7 S: J8 B- c. C6 g: qlast=Encryptstr(first)
: Q6 O& R* G: E3 W# N; c0 IResponse.Write "加密后为"&last
& ?: w: g1 u  E0 b9 a( b7 LResponse.Write "解密后为" &decryptstr(last) % J5 P  ?3 x& h) b4 P0 m/ `' I0 M
%> ==============================================
! s4 |5 n9 m/ \& I1 x5 K剩下的就是字符的对照表了
- E5 {0 p$ Y" C* P2 W9 w. y===================字符集================
, P" R$ T6 Y6 \/ ?) `1_____6EBB
- Z, D4 Q' |$ ^( u9 q1 O2_____5C1F, D7 m1 I* H! N) f  \9 T
3_____4D75
. X5 Q* |) g; K# N( P: ?4_____26CC6 S# V$ P  B8 P  B* J, @/ [
5_____4F88
: y% l/ z1 B8 S4 i1 G1 O3 o. O$ @6_____3F4E; ^0 \$ l& B$ P* Z  m
7_____0A9D
) d) g9 Q( i. Z2 g- Z* J8_____1A1C
; c5 H& _, P/ |; A' Z' y9_____6D20& t; \8 f$ K. H
0_____1089
" d5 Z* E* t0 `- T1 K3 B# va_____0F3E+ \$ U0 }. N3 \$ q1 l
b_____3159
- O) J9 ]1 m% Q& c! E/ Fc_____3517) w8 g+ H! q1 u% y
d_____419C
5 z, M  ~, L4 B4 Ue_____615C7 {/ {" v5 U0 T) z
f_____556F
3 W- d& G, ^8 _# D4 @4 c! s2 Ig_____2B7F& M/ ]" W8 [* U; y/ r
h_____0F9C9 i& p* ?0 x. J
i_____00FA, u/ Y0 o' I# F9 \. t5 W3 ?
j_____5A50
+ i1 }5 Y  v+ Kk_____2850
2 A, z7 g5 @5 G; ]l_____3E7B
/ |+ s& i; Z* L2 ~# H6 [m_____71C52 a& _+ E% I3 g- \* w6 q9 D4 w/ N
n_____1FC8
5 ?  Y4 Z1 c( Y' M  @$ Zo_____74C1
. }0 a  V1 H9 }3 U  B, l, Hp_____5FB8
3 l5 q( r# [4 Mq_____6085
) v; a  h2 `$ k, x9 Y7 jr_____3AC4
( K8 z* m" U/ w, ns_____2F50' l2 L! E3 l  n) R) Y) R% g
t_____36F8* P* c7 |* m6 M$ Y' c) n. X2 }! v; E
u_____7010( w+ b1 E; N  S9 Q
v_____0B42, I+ F7 d) f- ?$ P( p6 o& _* G3 `
w_____1C7A7 V$ M6 n8 M: S
x_____16F8" s( G, E# S1 [
y_____2EE70 @# Y  I( a2 q4 S
z_____5CF3
0 O% N# d5 b, i. J/ ~! l!_____6233. h7 p6 V$ z# L9 W* h+ H
@_____3A45( Y/ ?: L) C# `5 ?/ t+ O
#_____2291# }- O7 ^6 k% X8 E  B
$_____5D5C, P/ Q" q, f% I9 i$ z
%_____09B99 o' a: e" x1 r6 n9 ]4 p
^_____43EA& K% ~6 U; y/ B% {1 m* x
&_____62B9% g3 |: E+ C( J. z* A
*_____6301! G& E, [3 D9 v& n) l$ c
(_____4659; u4 H: k0 u" P7 F2 N
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表