返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
- ?5 [0 k& S  W$ g% y原始出处:http://www.3ast.com.cm
' L0 L! p% P# m0 K+ P6 _6 X) U2 m8 _' K. D% h8 i$ M
看不懂的直接绕过
" o, p! x' R# H+ ^4 r9 W加密前为:hwy123456; g0 G, _; J) Y2 a
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
" _% r9 t; a% Z: _' k0 b# U' r# o5 n
  H# v- U& T8 C============================================; N# H- V) Q2 a, V
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
: W- |* U, V! i0 n% u也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法7 I: T& Z) g5 t/ N) K) P- q+ Q! O
以下是RSA算法文件
0 t2 U) v# d3 i# A) E  L! X  e  D5 s0 ^5 y+ c3 R5 k
文件名RSA.ASP
  B' G7 a; H5 ]5 a" F===============================================% T: d/ C& r5 w5 z# v+ G
<%
8 o8 O! f9 P: d& v" g6 aClass clsRSA
8 V0 B+ K6 z# o/ X: y7 j! ]  Z6 cPublic PrivateKey
* h: Y+ w% i9 a: YPublic PublicKey 4 d4 k5 c1 W: _# I, f9 W
Public Modulus
7 f5 }) `" W3 g, K" I3 B# N3 w8 [Public Function Crypt(pLngMessage, pLngKey)
' a2 e" l5 c' X5 F# W! s0 e" h$ g6 W1 kOn Error Resume Next
  @9 o- e" N5 L& \- u: UDim lLngMod
' ~  [8 q) c2 r2 M5 q& cDim lLngResult
: k7 e' `* N- Q' {- W) ^) WDim lLngIndex
# ]# F7 }+ }/ [6 H5 R4 F9 eIf pLngKey Mod 2 = 0 Then
) o/ t, Q" p3 XlLngResult = 1
4 P6 W' a) X& K- S6 x$ t: s9 C# S: eFor lLngIndex = 1 To pLngKey / 2
, Z6 \$ B7 K6 N3 ]7 s3 PlLngMod = (pLngMessage ^ 2) Mod Modulus
! [9 l9 m9 p& P% `% D' Mod may error on key generation
, Y0 J4 L2 {6 o- l1 JlLngResult = (lLngMod * lLngResult) Mod Modulus # |- c/ u4 K, b: O4 X
If Err Then Exit Function
& S7 Q0 s- A) L8 i) i& @; {' f- J% PNext
! k/ a6 Q! X. MElse
7 f* K% b" l- ?- H# tlLngResult = pLngMessage
0 s$ P7 ~% z& O4 Z+ I2 v! gFor lLngIndex = 1 To pLngKey / 2
" f* Q2 p+ \: t7 s6 t2 V& DlLngMod = (pLngMessage ^ 2) Mod Modulus
6 c+ ?7 f' Q2 y3 a/ ]5 f0 U, qOn Error Resume Next
3 K* f, C$ L5 E0 k! p7 k' Mod may error on key generation ) Z, m: ~3 L  R* L2 W- h
lLngResult = (lLngMod * lLngResult) Mod Modulus ( m2 z$ v) d+ a$ Q; P! F9 I; v
If Err Then Exit Function
/ M4 F; I: ~8 K8 u" l: z! [) WNext % T; i- f; T$ y: M" g
End If
9 k, V5 v1 Q  @: b) aCrypt = lLngResult
6 O" j" p, V3 ~7 o. fEnd Function8 Z" U9 x, V$ m! m2 ?
$ ^* J$ C! q% W4 n( Y* V+ W3 v
Public Function Encode(ByVal pStrMessage) ; r4 X- m6 X9 d! M# T
Dim lLngIndex 0 V) U/ O) ~! O& T9 @
Dim lLngMaxIndex
; H* o8 c9 @2 UDim lBytAscii
5 e$ \, \+ R8 ]! c; x4 nDim lLngEncrypted
. p$ ^5 k( I) v3 r1 Y' MlLngMaxIndex = Len(pStrMessage)
# B: b( @$ J+ H" _/ |9 xIf lLngMaxIndex = 0 Then Exit Function 8 y( F6 i  `2 Z$ w8 M8 _
For lLngIndex = 1 To lLngMaxIndex 8 M$ l0 A! E- W, u$ A
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: l0 Y3 t% ?$ Q# d8 W+ S% a' E2 KlLngEncrypted = Crypt(lBytAscii, PublicKey) / y' `$ Y( @, `  w2 \( m- D
Encode = Encode & NumberToHex(lLngEncrypted, 4)
$ S2 r$ b/ C' W5 m2 TNext ' }0 Y: A( P( e3 j* F! L
End Function
  ~2 a0 t/ y3 m4 b4 ~Public Function Decode(ByVal pStrMessage)
" v2 e, ^) N7 G2 a2 L* GDim lBytAscii 2 g6 H" q8 E0 |" Q+ e# d3 B
Dim lLngIndex : X' O; W2 v# `8 C
Dim lLngMaxIndex 4 J& f7 [: n5 Z7 f5 [3 ?
Dim lLngEncryptedData
! _7 `4 F5 {& c6 X8 O# ]Decode = ""
1 N3 v# ]! V( g& ilLngMaxIndex = Len(pStrMessage)
1 R, P  z+ g3 d3 G4 J9 l  {  mFor lLngIndex = 1 To lLngMaxIndex Step 4 % b: P( n7 F0 [6 H; ?+ d
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ X! m" p+ d& Q/ }, p1 I  BlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ F5 x* w7 A5 u7 r4 {, CDecode = Decode & Chr(lBytAscii) 9 |2 D) K6 D* r4 I$ M
Next
8 w0 u1 ~- y7 L7 D% h& tEnd Function
/ g1 @3 v$ L& _9 L3 d9 h+ OPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)   |- Y  O  J( `9 k2 x) @$ z. w
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 9 W9 M& H9 r& [, O9 O; U. O
End Function + M0 z" Q+ G: f4 g0 Q2 r
Private Function HexToNumber(ByRef pStrHex)
8 n; H4 g3 k4 X, x( SHexToNumber = CLng("&h" & pStrHex)
% |: Y! |: F6 n. f% Y3 y8 w* aEnd Function ; ?5 \" n: a# T( v1 T3 c8 W4 ?
End Class ! Y% \" |& ]( i0 G, \+ y
function Encryptstr(Message)
/ |1 r7 R" H+ m4 b$ H; N& i) `0 pDim LngKeyE 4 B2 D& C# a8 e- ?, z( W
Dim LngKeyD
" `9 q8 z' A; J1 n5 ]Dim LngKeyN " a/ T$ h* Q; ~- F0 n' _
Dim StrMessage , v( D2 `' D) U
Dim ObjRSA
3 h3 y; o- L, yLngKeyE = "32823" 7 R' x' t) }" D5 c( w
LngKeyD = "20643" % b" u) D' |  h! S, Q
LngKeyN = "29893"
8 Y$ r/ J  n; C. j* @StrMessage = Message 8 w: b) Z* o8 ^" x; V) b5 z
Set ObjRSA = New clsRSA 7 J* v9 ]. b- j
ObjRSA.PublicKey = LngKeyE * @  E- i' B7 e
ObjRSA.Modulus = LngKeyN $ M( V( h: e  E$ |* p# a( u& r. G
Encryptstr = ObjRSA.Encode(StrMessage)
% W3 B. \0 E9 g) o; c' zSet ObjRSA = Nothing 1 B- I' ]- ]  ^6 F- n; p( ]$ g
end function
+ ]( }) B; b$ zFunction Decryptstr(Message) 6 x- c' V8 A9 o0 {! u
Dim LngKeyE
! f1 e0 z# [1 l0 A4 o" ADim LngKeyD
6 ?5 F! M( |: yDim LngKeyN
3 E+ i% K( q/ }; X9 U) j, x$ [Dim StrMessage ! S9 y* w) N  m8 M6 V) L
Dim ObjRSA
; n0 g% j- u/ u: e8 o( c# pLngKeyE = "32823" ; C. M5 }3 I9 }: @/ T$ k
LngKeyD = "20643"
8 X  V- {$ h: O; R4 H! xLngKeyN = "29893"
' s  M: u5 B, c" g4 L4 W1 vStrMessage = Message 2 j' l+ E' s" v% D, D3 m8 A! ?$ a
Set ObjRSA = New clsRSA
2 w5 C* s/ U+ |2 l# Y2 @# L  K; x2 GObjRSA.PrivateKey =LngKeyD 8 i% c) K! G, O" B; g/ Z2 l7 m
ObjRSA.Modulus=LngKeyN 1 l9 W5 @/ }! \  O6 c* D9 X4 g
decryptstr=ObjRSA.Decode(StrMessage)
* X2 W2 Y8 V2 W' Z2 h+ eSet ObjRSA = Nothing
; e6 t0 t8 ?; U5 K3 eend function
7 {! o0 L1 g+ Y%>& Q2 |( F! R' b2 I5 ~; H8 M3 I
===============================================
% l' ?: X: A2 B* c: D# I9 G. {+ N" i/ C3 m$ H& Q$ q
还有一个用于测试这段代码的test.asp4 G9 _* X+ J% E
有兴趣的自己搭建个IIS测试下7 L* |3 Y8 ?+ E; H" Z* m1 b
<!--#INCLUDE FILE="RSA.asp"--> 4 q9 u1 s* o( F
<%
- {9 @% `, `2 U4 j. Y" {function Encryptstr(Message) ! _* k2 O- |: Q; X" R, h6 Y9 s* x
Dim LngKeyE
* ]% ^* p( X; L/ R4 q# W6 w) ?, r8 qDim LngKeyD
+ a6 N4 ]0 S! kDim LngKeyN + t) g) K8 `- N) a
Dim StrMessage
3 I- Q; J- }9 u4 {7 k* rDim ObjRSA , P8 M* ]; W: i" x
LngKeyE = "32823" 0 Z# ^+ [* K+ r
LngKeyD = "20643"
; @0 o) p3 |  @  ELngKeyN = "29893"
* E# ^9 h6 b9 w8 ?. H# h2 wStrMessage = Message & a! X# @, E, c% x, p5 Q
Set ObjRSA = New clsRSA
% r' ?. N' q, J2 |6 o3 V0 I0 E4 BObjRSA.PublicKey = LngKeyE   z# H1 b8 l" X0 y
ObjRSA.Modulus = LngKeyN # e) T7 r4 T+ X
Encryptstr = ObjRSA.Encode(StrMessage) 3 V/ w; g8 \& F7 H
Set ObjRSA = Nothing
: h! S' }' t% [" d7 N& A" Qend function
3 ^% \. Q1 {& N1 J# N) Dfunction decryptstr(Message)
) J+ C' G' _, r: ]  P& C" fDim LngKeyE ( ^5 h9 d  `# M% i4 i5 k' |
Dim LngKeyD
9 k! v3 x! a3 sDim LngKeyN
# U5 Z1 C+ x+ b; ?+ Q" w. v7 z0 a0 WDim StrMessage $ ~* P5 w: V" L) |
Dim ObjRSA
" `. Q7 Y( a6 J0 s7 ?5 k* NLngKeyE = "32823" 3 k( }* M/ X1 y7 t  p# @
LngKeyD = "20643"
7 ^4 R0 l0 N9 t( fLngKeyN = "29893"
" P5 Z, A( a% @1 P+ y, I7 t) mStrMessage = Message
" g7 y# K6 F" d: \: }* ySet ObjRSA = New clsRSA 7 g% \( U3 W6 v( E8 t
ObjRSA.PrivateKey =LngKeyD
0 b. O8 S: e7 w+ B' EObjRSA.Modulus=LngKeyN 8 S6 w3 r7 x% ]
decryptstr=ObjRSA.Decode(StrMessage) / a/ n9 b- D5 N4 a* @. ?: Y* B
Set ObjRSA = Nothing   E5 Q: i# V  P& e) z; b7 R
end function
) q, Y" D3 r  sdim last,first
/ C; |5 i4 e0 y& U8 }first="!@#$%^&*()"
" A* m0 u8 P, f3 V3 }Response.Write "加密前为:"&first " U- T. c3 w& b6 A( `* c& d) Y
last=Encryptstr(first)
& ^- Q; L0 T9 {5 _Response.Write "加密后为"&last 6 J% v: q2 f! ]9 F
Response.Write "解密后为" &decryptstr(last) . h% p% g+ x. Y* N9 X6 K# y
%> ==============================================
( c1 m( m' U/ W# V* \& ^3 k剩下的就是字符的对照表了
0 o" c! o+ \. I4 T% @" e5 f===================字符集================! q7 p! R( o! p7 i' }
1_____6EBB
0 t) ^1 @$ h+ ]: h' n. i! _2_____5C1F, g+ E/ K7 G: P
3_____4D758 z1 k3 I# u4 r! a7 h; C* Y* w3 Y, m4 c
4_____26CC( I0 a3 F6 e4 V, ?2 H7 S
5_____4F881 ]% h' P: K* l/ Y, Z
6_____3F4E
: A7 K- }8 {1 C) d7_____0A9D% v, b- T# X0 |) {0 \. T6 |; T6 D
8_____1A1C! h7 U6 Y; _/ p! K8 l( p
9_____6D20
! J) I  {" y9 q6 L# A0_____1089
' G1 O" \9 M& i* ^9 p# H; }a_____0F3E
2 |& M8 H/ j' sb_____3159
% _0 ], h0 c: v0 `. T  }c_____3517
: e3 x) f$ w9 b/ {1 id_____419C; [* Y7 d- Q9 `& ^0 {1 j' y- A; i% ~
e_____615C
& f' j5 a# R5 P6 Yf_____556F
- ?6 a: |' b6 O* k& V7 [. o9 y4 eg_____2B7F
2 V4 U: U) _- o+ L, `h_____0F9C
+ D/ B1 Z9 S! e6 ^i_____00FA7 @# c% `5 \; p0 g' }0 U5 N
j_____5A50
; E/ G* j: c! _1 rk_____2850
1 m- Q! V: N% Y& Q6 Bl_____3E7B
& E( U3 k: D" hm_____71C5
1 }& B7 V  b0 @; V; |n_____1FC8
9 |3 T2 ]/ O% f; W5 ~o_____74C1
2 z; O3 e% A4 Rp_____5FB8* D& r; u" H( M  k! |
q_____60852 J" c# n1 z. M% q7 {& }# V. Z
r_____3AC4" S- V, t  D; p
s_____2F50, ~2 S; s5 a# D4 I% P
t_____36F8
, s/ `; V  v* A; y& ~: V2 eu_____70108 u' X3 `, q' C6 f
v_____0B42
7 _; K' X' Q# i% G; Mw_____1C7A: W, o5 {$ C4 ?. L
x_____16F8* v% o0 F+ Y; N+ B
y_____2EE7
4 W/ L5 c/ p4 r- m# G) Qz_____5CF3% }$ R+ m8 u: b& n
!_____6233
2 [: D% i% y, T. ~% T@_____3A45; i( c" o6 O$ T7 |9 D$ H# [7 ~' O
#_____2291& u: h. T3 B5 S- T
$_____5D5C
$ }9 ^  y: I1 G+ f( m%_____09B95 ^4 Z7 j- ^5 F6 D: p
^_____43EA
0 X- G8 K% ]( ^3 H/ u* s& q+ W&_____62B9! C# c- ~2 k) }3 ]& e! Y4 L6 P
*_____6301
4 {- f/ P0 y; T+ Z- R' L, J$ M1 x, x(_____4659
% C" M2 X! [& n( {)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表