返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm% @$ q: \5 X0 n
原始出处:http://www.3ast.com.cm
. V8 A7 r4 X, m% k3 l) O* z, u/ b% b+ O! N6 Q$ W" H) z
看不懂的直接绕过
2 B1 z5 X( C+ H5 t3 Y- f- Q7 ~加密前为:hwy123456
' [. k. n# d! c! f+ K& x3 D加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
7 v$ d5 @) K6 ?/ Z  X" d: O: h4 f
============================================! x2 b( R3 e# \+ T! e3 I
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
( T* s$ S, A" u# g3 F; p也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法/ [+ Y0 R7 X8 J. h" ?
以下是RSA算法文件' k' {1 p0 Z0 ~- Z$ Z: J

- H+ s  F" L6 Y* C$ d. L/ `3 ]# A# f文件名RSA.ASP
" G6 Z3 A' H" W* k===============================================
. Y2 w* H0 N' Q9 K<%
. R6 T. V! Q% K4 c6 B2 SClass clsRSA ' R: _% ~% e0 H  H
Public PrivateKey 6 K( h+ ^6 c: r6 [! X& m& U
Public PublicKey
4 v: G) y; o: OPublic Modulus 0 M* H6 B3 u- Q( q1 }
Public Function Crypt(pLngMessage, pLngKey) 7 ]: ~. ~/ O9 {
On Error Resume Next
8 p9 F# y, P3 t- T4 CDim lLngMod ) v: U8 O% L' W' P5 y) T
Dim lLngResult % ~; M% q' C! @" {
Dim lLngIndex ' L' |% c, g0 g% j8 h
If pLngKey Mod 2 = 0 Then ; f/ a! r* u8 N! P
lLngResult = 1
& O1 o5 X! W/ B7 Z5 @$ E# r9 xFor lLngIndex = 1 To pLngKey / 2 , u/ N$ e5 ~9 h4 D3 U
lLngMod = (pLngMessage ^ 2) Mod Modulus / z* X; K8 p- Y: @
' Mod may error on key generation
6 l5 r2 p; G  SlLngResult = (lLngMod * lLngResult) Mod Modulus
$ f, S9 x" B2 ]; W1 DIf Err Then Exit Function , C6 e+ ~8 z/ b/ u8 Y
Next
+ B8 D  j8 W! Q# J& q) {% ?Else * j& ^! ~( s5 ?$ [7 z2 r
lLngResult = pLngMessage
( `2 `/ V# f6 P* K6 mFor lLngIndex = 1 To pLngKey / 2
' o# Z% [6 l/ P6 C  f$ ulLngMod = (pLngMessage ^ 2) Mod Modulus
, _+ M; p$ A/ }! D( iOn Error Resume Next
5 T1 z" x. G9 X( Q' Mod may error on key generation 3 K7 f3 T. G$ e4 X4 b( b+ N' A
lLngResult = (lLngMod * lLngResult) Mod Modulus % Z% i& a7 d. i; K, S1 Y% ?. [* ~
If Err Then Exit Function 8 E$ M7 c- Q5 m6 |7 Z9 y* [
Next 6 p' o7 h+ X3 s& d
End If
! c. D1 Q5 w; S+ I/ _% P- {( s! ^5 WCrypt = lLngResult ! g& c+ U/ _) M* F
End Function
7 d& N; ?$ d$ u* D3 C) H& I: J& O: c/ P
Public Function Encode(ByVal pStrMessage) 3 R0 R$ i# {$ K' P  _
Dim lLngIndex ; B+ i- `) j/ k- F/ Q: u
Dim lLngMaxIndex 5 A" K/ m2 W/ q
Dim lBytAscii
* y' G' x" T8 g5 g2 V& o5 zDim lLngEncrypted : `* U* `. W$ P, U. k
lLngMaxIndex = Len(pStrMessage)
7 g9 l( q+ i7 A2 o6 @If lLngMaxIndex = 0 Then Exit Function - u) \3 E( r5 {7 U
For lLngIndex = 1 To lLngMaxIndex 0 F8 z' l: d2 O
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) k' C1 G; w4 q5 Y2 y! M% h( o9 elLngEncrypted = Crypt(lBytAscii, PublicKey) $ b+ C; I3 a: z0 b
Encode = Encode & NumberToHex(lLngEncrypted, 4)
1 g4 P0 G' Q) ^Next * E$ c& ?& T, Q4 m( F/ \$ ]
End Function
, K  x( C/ R( n% B" L: f9 n1 XPublic Function Decode(ByVal pStrMessage)
2 b( F8 N: c' o1 q- A' TDim lBytAscii - Z6 W" Y" |+ z! r* \+ o
Dim lLngIndex
9 G! _, {) Z; B: J2 U! RDim lLngMaxIndex / h) Y* D! A( L+ t
Dim lLngEncryptedData % T+ x% c8 y4 D
Decode = ""
) l: O% F3 f- P+ U. ilLngMaxIndex = Len(pStrMessage)
' E& c+ J* |0 J' r0 PFor lLngIndex = 1 To lLngMaxIndex Step 4 + d3 f9 d; R% ]
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
( l3 B/ c0 I- T/ y8 \3 ^lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! ~* O7 o: a% [  ^: ?' SDecode = Decode & Chr(lBytAscii) 0 \& f$ _/ _( g+ x, z
Next
/ `; l. c1 Z2 ?* v% o/ ]9 tEnd Function
1 ]5 O% Q* P1 v" sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
1 y" p% j7 q. U! p0 v- S/ v7 l' A' P0 `NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) + n) ^  J" w% r' A* F6 ^
End Function 9 P2 J1 M* T2 A
Private Function HexToNumber(ByRef pStrHex) / h8 o$ ]+ m, ^
HexToNumber = CLng("&h" & pStrHex)
" ]* ?9 D" H8 A$ bEnd Function
" }0 _$ d! V9 {/ ?End Class
  v+ L% [# n" [* ^. tfunction Encryptstr(Message)
' X$ S+ O/ l5 C# w! `* MDim LngKeyE 5 H! m% D8 w( Y% O/ w+ p9 m
Dim LngKeyD 2 k5 l, V4 k/ K8 W2 |" |
Dim LngKeyN 8 c' Q4 e# k  W) N. T- F
Dim StrMessage
# h9 f: x/ J1 V) IDim ObjRSA
8 m! G1 Q' s: ~( T6 oLngKeyE = "32823" 9 U) g7 P: x3 n, E: F- N
LngKeyD = "20643"
, Z) b( `* u% Y* F1 Q5 `* V" k+ ALngKeyN = "29893"
. o; Q8 |, v& n; K" c, W" uStrMessage = Message
2 s8 O1 r" Y6 V% n* L4 vSet ObjRSA = New clsRSA
, c9 ^1 N) a- ?' {$ }( {& UObjRSA.PublicKey = LngKeyE
2 z, ]( o; ]) t, g: EObjRSA.Modulus = LngKeyN 7 W2 Q7 V+ i5 h: P6 z( Y
Encryptstr = ObjRSA.Encode(StrMessage) - _) C9 F! m3 n( g3 N) q" z
Set ObjRSA = Nothing % U7 h4 r" k2 N7 @. G' j: m
end function
* E7 @/ {3 I! ~: }Function Decryptstr(Message)
. q; O/ J2 g' p+ X3 K' |Dim LngKeyE 0 L. @4 L+ R$ a/ _
Dim LngKeyD ( y. c$ Y! H9 y- p8 t
Dim LngKeyN 6 i/ [( G1 N6 F, z7 Z9 B
Dim StrMessage - n* v: A! ]. g& {
Dim ObjRSA , h" l9 L7 [- u; ?+ ^
LngKeyE = "32823"
/ e% i+ \1 x  r- K; mLngKeyD = "20643"
2 |2 {  ?& f: L2 m. G$ _, P, J/ ZLngKeyN = "29893"
, b  y* _3 }* z8 X4 G, x4 |: W  IStrMessage = Message 7 C2 d6 r4 R9 [! U9 k  I
Set ObjRSA = New clsRSA
7 T3 G) y0 I" |6 b" ]9 }1 m: N; }ObjRSA.PrivateKey =LngKeyD
/ l* O& @( f5 y6 L1 Y* u" C* NObjRSA.Modulus=LngKeyN
; o( c) z/ |; K  u8 f1 F6 h- kdecryptstr=ObjRSA.Decode(StrMessage)
# ^( O2 O7 u4 _7 \% F0 LSet ObjRSA = Nothing
( b- I4 I$ a/ z: ?& L' lend function
0 g: e( `0 P9 v) u%>
' |8 V/ z. ?; j  q) V5 E: K===============================================( J1 Z2 C/ }$ a% J* z+ q
) f- w$ ]7 X# O+ F) _0 k& F
还有一个用于测试这段代码的test.asp% d1 D/ m$ {: ^. G7 s
有兴趣的自己搭建个IIS测试下
6 h# P' n1 D' q& d3 k2 R4 n<!--#INCLUDE FILE="RSA.asp"-->
+ R; J2 c! _! i8 P5 F% {% M<%
6 W/ D+ t) Q6 }* Kfunction Encryptstr(Message) ; a+ o' |/ C, i* c& t" K. z) V
Dim LngKeyE
6 C# w: Y! h6 c4 K, i- I6 d5 q: ^  N/ TDim LngKeyD - @% \# a! g8 V# t* X/ |4 m
Dim LngKeyN
, M% y& J# W3 ]7 T0 ]Dim StrMessage % ]) m+ K6 `, T: w6 H. T" b4 u1 ]
Dim ObjRSA $ u0 D- N. o; u. ]& z' u
LngKeyE = "32823"
& s4 S6 |; p5 p" [8 ULngKeyD = "20643"
7 o3 a  w7 J" q4 ILngKeyN = "29893" ; h0 V; a0 K: A5 P
StrMessage = Message
( f4 X0 X' I0 d3 y8 i3 d* m: USet ObjRSA = New clsRSA , O' T% [/ p4 y( e0 J, L8 G
ObjRSA.PublicKey = LngKeyE 7 u! ^. _0 ]1 ]4 ^0 F% K
ObjRSA.Modulus = LngKeyN 1 o4 \4 w! a4 Z) ?
Encryptstr = ObjRSA.Encode(StrMessage) 5 K2 C' u, D% Y8 \0 T
Set ObjRSA = Nothing
" N6 I) j4 }, t8 ^; E& z$ b  Send function
) q+ W, o2 f( a! afunction decryptstr(Message)
, P: {3 X) a- U6 h4 m9 zDim LngKeyE
5 `4 Z- @$ ^( T# tDim LngKeyD
$ t+ \- o1 q. Y( T; G0 SDim LngKeyN 0 j* ~9 @5 c4 u, B
Dim StrMessage % G& F: L/ V3 ~1 _* b- |+ [
Dim ObjRSA
2 w! }, B& \# y# ]5 _LngKeyE = "32823" % G, a! w% \( |' D: L9 _
LngKeyD = "20643"
- c8 P6 Y" g) W/ j* }+ l5 T! z: }3 yLngKeyN = "29893"
4 P4 [! E) B* p; D* f: X) _# z9 }StrMessage = Message $ c  I3 O2 G4 d8 {8 ]; }
Set ObjRSA = New clsRSA 0 L0 z1 u, k2 Z: Y& }2 Q0 }3 y  L
ObjRSA.PrivateKey =LngKeyD
+ w' c! B5 ^) X! {ObjRSA.Modulus=LngKeyN
3 ]# z  K* E+ W: E' V7 o- Pdecryptstr=ObjRSA.Decode(StrMessage)
1 @1 U7 K5 k+ j4 M$ V. T  jSet ObjRSA = Nothing ) e% B9 O/ [6 V! |4 f: h3 a- i% X
end function 2 Y3 j" p0 W4 l6 C! m
dim last,first % \1 ?7 ?. E" `5 ]- L$ A
first="!@#$%^&*()" & l  \9 a% A2 s: t: v( K  _
Response.Write "加密前为:"&first - g& u$ P! s4 H" d# U1 ]
last=Encryptstr(first)
% f$ \4 l: M- |7 p- hResponse.Write "加密后为"&last
, e9 |8 N0 y3 u4 I  UResponse.Write "解密后为" &decryptstr(last) 0 ?8 Y9 }3 S% |; F! G$ o" o
%> ==============================================3 D# P- ?3 n. u& F3 X& T4 O+ z% y1 j7 D
剩下的就是字符的对照表了' \' `: E/ j; \7 E* n  r
===================字符集================
: s  G+ ~' e4 ^8 q: t! L7 A1_____6EBB% f( ]6 @9 J3 o7 k0 j
2_____5C1F8 w0 |: U+ [5 N" ?
3_____4D757 V4 X2 v# g/ J  t4 H" l
4_____26CC
+ Z. R5 |6 N$ v9 ^5_____4F88
) I5 a/ X/ d9 Z, p+ ~- x" x6_____3F4E: H. @5 t- e' e' a/ Q9 c* v
7_____0A9D
/ G; I# g: C% r! L! U6 i6 C8_____1A1C
1 N7 f0 T0 m, q9_____6D20, x2 b' N& q, u% z. _$ Q) D6 V
0_____1089
- C1 i5 I, U! s; {7 a* ~5 M( Ra_____0F3E; G4 K& n- V8 f$ D. d! R/ Z; w
b_____3159' D3 |2 b/ p0 x  n  ^0 {- v
c_____35177 C2 S$ H4 a8 d# C( p
d_____419C: p7 `; V# t( `. h
e_____615C8 ?' H) t: c0 p
f_____556F
* d0 n: @' f$ H- M; C% s) m& Z# d* ?g_____2B7F
1 ?8 `: P. e! ]& Q* _/ Gh_____0F9C
7 b6 R, b' F2 ?4 T" G0 d, wi_____00FA
7 v; }$ L8 c. w' \j_____5A508 {" E9 \' t" x% Q$ j4 y" E
k_____2850( @6 K6 Q# u% o- \7 }
l_____3E7B3 ^  q8 i" n8 X7 n) m
m_____71C5, V' t6 r% I. b6 i7 X$ l! P7 e
n_____1FC82 i' \+ C+ E  L& J
o_____74C1
; j1 z4 A' [9 hp_____5FB8
" O7 R5 @. d. a2 C6 Qq_____6085
( p: i( R. x5 z5 ^/ x5 ir_____3AC4
3 c9 t2 |+ i) D1 c, N, W9 K5 Ps_____2F50
% n3 j% T5 ^& N% H: Y- a# At_____36F8
" ^9 O5 t/ G- Au_____7010
3 ^# P9 ?! k- P5 rv_____0B42- J% h) t. L1 F% J
w_____1C7A
0 c2 l1 p3 |" m' A- X8 yx_____16F8
3 A& G! }: u6 S8 v' Z0 Ay_____2EE7
- }- A( U( ]/ Bz_____5CF3
( O! C: y$ M$ z" ~. W/ |. W: @!_____6233; W+ l, x% [6 ]0 W# O6 H
@_____3A454 ^- q) l8 a8 D2 l( Z
#_____2291- |2 {! @# V% O: ?+ U0 T/ {) e  p  G
$_____5D5C
2 R7 D. a0 Q. c) X3 H%_____09B9
& p  L' a5 _7 n^_____43EA
' ~; c3 E( h: y) H) u- P&_____62B9
& {( ~( d, i: c$ A2 X*_____6301# i! j; _3 Y  C2 j; r/ r) y
(_____4659. r- V# s7 e  B& v, m
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表