返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* T! d2 X5 Y+ m3 T0 l5 s: S; d: S原始出处:http://www.3ast.com.cm
* M; k# [: n! d5 y' f1 y! Q, b
9 K: ?0 ^# u' I看不懂的直接绕过8 q8 G4 b, C' L
加密前为:hwy123456/ N' v" W/ m8 P! M1 B& a
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 L  L1 o5 P7 L& m+ e' d
1 G% V5 I4 [% D4 z% V( S; e============================================3 l- D' Z! H. P; s' M' n
上面是当时自己校内的心情。现在已经解破出来了,分享给大家' R6 y4 U4 D! d+ e; B: k& m7 ^
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法6 Y+ R- B- v  F0 n8 t& b5 Z
以下是RSA算法文件* p: s0 f& c$ r

  l, Z7 {5 e9 |! ]( Q+ E- Y1 u文件名RSA.ASP6 h( Q) d, n0 a0 K5 ^' d
===============================================& h3 M/ p  R% ^$ s' L- Q/ C; u
<%
5 {( s$ E9 r% @. S( R5 e# a7 LClass clsRSA $ A! ^+ R, h4 j2 ^. b' h6 `
Public PrivateKey 9 _6 q) N0 G0 {( h( g) z
Public PublicKey
6 b  v- g% C1 O6 X6 C1 YPublic Modulus
. Z2 B3 U+ U6 K. [2 P3 GPublic Function Crypt(pLngMessage, pLngKey) + R1 a1 K) I3 u3 R5 E
On Error Resume Next $ z. M4 V4 H; P6 Z6 D7 |
Dim lLngMod " p0 D2 `( S4 g) V: Y. g$ E7 w
Dim lLngResult
* X$ Y4 u; O# Z" J7 C6 P1 fDim lLngIndex 0 r) p+ J1 ~- T$ T! C/ I6 ?$ e
If pLngKey Mod 2 = 0 Then
  U2 ~/ x# q3 _9 T- l7 @8 M+ ~' w4 |lLngResult = 1 6 \7 g$ z. r, [. ?3 P
For lLngIndex = 1 To pLngKey / 2 * w' d6 p; X' w
lLngMod = (pLngMessage ^ 2) Mod Modulus
, [( o/ s' k/ o2 Q* f: Q6 ?) V' Mod may error on key generation
$ I+ |0 h$ s# K5 blLngResult = (lLngMod * lLngResult) Mod Modulus 3 E  h, ~3 S# U$ W
If Err Then Exit Function
5 ~8 O4 s6 G: b/ N' l- O$ XNext
3 `- c' ?! }/ G2 }$ kElse ( y* m! w1 G4 J; V) p2 }5 a
lLngResult = pLngMessage
  Y0 p& p: t/ y: P, eFor lLngIndex = 1 To pLngKey / 2 5 Q9 ^. ?5 v! I' _$ H
lLngMod = (pLngMessage ^ 2) Mod Modulus ) O5 B2 K8 l% L( t6 Y( W
On Error Resume Next 6 _8 R7 U. F2 a9 }
' Mod may error on key generation
9 p( x+ v, w" KlLngResult = (lLngMod * lLngResult) Mod Modulus
5 l' k- ~' P/ v5 Q! r# v9 AIf Err Then Exit Function
& L2 P- Y; {- i* F! g, t7 CNext 2 o& K$ i9 p0 ~8 @
End If
5 Y& w/ K9 o  q" ACrypt = lLngResult
( E; H/ ~! _% f- y0 V0 v" _  S, B$ ~End Function
4 I1 W! F5 X0 \4 B' ?& _, g6 }4 ?8 |( K$ Z6 m
Public Function Encode(ByVal pStrMessage) " D9 _. \( V2 ^) n; x3 E. T
Dim lLngIndex ; b9 G) m, d3 n: X$ b
Dim lLngMaxIndex
9 T0 e6 O1 w. d3 yDim lBytAscii
3 d0 H: @6 S: r; a8 QDim lLngEncrypted 0 z7 n4 q$ u" h# e# ?* v/ I
lLngMaxIndex = Len(pStrMessage)   @  F1 {' C/ ~- T4 J
If lLngMaxIndex = 0 Then Exit Function
2 p" i4 N' ~3 }. J5 G) MFor lLngIndex = 1 To lLngMaxIndex % ^1 }1 Z1 |' m$ W
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) : q- m$ W9 @6 P+ s% E0 V
lLngEncrypted = Crypt(lBytAscii, PublicKey)
6 Z! z- U. F' N& I: l& t7 KEncode = Encode & NumberToHex(lLngEncrypted, 4) 3 }- g' o! m! V$ w4 c( ?1 p' E
Next
1 U1 \  V9 M/ L% ^4 R, r$ BEnd Function
' }) W2 J' U5 n3 u1 m6 XPublic Function Decode(ByVal pStrMessage) + @, L. z) w2 G$ Z. [# {0 v+ m
Dim lBytAscii 7 m/ W) }" }0 ?; N
Dim lLngIndex
: o( O3 F6 U) a, i" O4 ]Dim lLngMaxIndex 0 z* \0 w% Q) x8 S# m
Dim lLngEncryptedData
3 D% U0 J* y0 T- `( S" R& }5 L6 ~Decode = ""
4 k8 b0 a; k4 o0 u- u3 T% k5 i1 Z6 llLngMaxIndex = Len(pStrMessage) $ {$ P: q9 }$ D6 |
For lLngIndex = 1 To lLngMaxIndex Step 4   w( m+ d- |. H: p
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
9 d8 F5 \+ E, x  plBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- Y% x/ t4 _5 GDecode = Decode & Chr(lBytAscii) $ ~* o0 J) C9 ~# b- P
Next : w2 l$ @6 L4 q2 W, p( d- o) v
End Function 2 o: b5 Z- i, K$ a% L4 H: ]- E
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
9 y/ e# }3 ~6 B" m9 X3 ^* G& y5 zNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
2 l* u& I* Y) Z) GEnd Function + \+ d, @4 O# j' d  E8 I( [
Private Function HexToNumber(ByRef pStrHex)
3 L. H4 G5 H* ]. Q, g/ n9 I" u- MHexToNumber = CLng("&h" & pStrHex)
3 q) Y* o6 c7 W1 S+ Q' N$ a* G1 q! mEnd Function ( U# ^0 q+ `7 K9 C( w0 ~
End Class ; W( `( N* r$ g  x& d6 z  z! j
function Encryptstr(Message) : A  S/ ~6 J% X$ K4 e
Dim LngKeyE - V# h6 D4 ^; `; i) s0 H7 G
Dim LngKeyD $ e  E" {* B% @8 b
Dim LngKeyN ) s; [5 k5 M7 u& \3 q  ?" e
Dim StrMessage . Q# U" ]% N6 O  d/ n7 m$ U! a$ ?" _
Dim ObjRSA
' u/ J2 c+ D0 n' iLngKeyE = "32823" % X# o, Q. d1 g2 w; r. R: M
LngKeyD = "20643"
6 d  E4 |3 B+ f# K: h9 XLngKeyN = "29893"
. @) f( t6 W1 P% r, A$ eStrMessage = Message
( O0 ~. g4 T' r6 ^Set ObjRSA = New clsRSA
, e7 y/ C) f4 v( q' oObjRSA.PublicKey = LngKeyE
" s/ q, r* u. Z1 a' R1 LObjRSA.Modulus = LngKeyN
* y: p; @6 W9 B3 m" a' ZEncryptstr = ObjRSA.Encode(StrMessage) # ~. t+ Y$ |6 `1 N* K
Set ObjRSA = Nothing
; r$ [. P& M9 [/ I" cend function
$ G1 N; b$ ~/ I# d7 GFunction Decryptstr(Message) $ D( W; i. w6 v
Dim LngKeyE
7 s! p' E# W9 T( xDim LngKeyD " a" S. Z- ~3 F" O$ T/ L% }
Dim LngKeyN
* T5 ^; q2 z# U2 ~6 X! N4 tDim StrMessage
  }4 ]# T. m4 b  GDim ObjRSA
) q2 b! K2 O; OLngKeyE = "32823" % i; ?: d$ k* P" H
LngKeyD = "20643" 7 N: F" R7 n; T/ G, ]- p/ h. _
LngKeyN = "29893" " p/ k; z1 q: N7 ~8 r3 B: \
StrMessage = Message . M  {/ |8 Z- V
Set ObjRSA = New clsRSA
) z* O5 B7 [" pObjRSA.PrivateKey =LngKeyD
- U% _8 K' }8 ~' k' Q1 {ObjRSA.Modulus=LngKeyN
6 T% ^+ N4 u: k7 L3 T; @decryptstr=ObjRSA.Decode(StrMessage) 6 e% |9 ?4 h# ?9 x# K; T( n; F
Set ObjRSA = Nothing 5 {, X+ a  g) m' T  r
end function / Z* c: q) ^' L' a
%>
3 f8 z' t9 M9 _  y$ Q- O===============================================$ W% E+ O3 n( Q7 `2 l  |
( ?) R( ]1 p) F& N% ^8 @1 e; n4 A) S
还有一个用于测试这段代码的test.asp# R+ K+ {) x2 H, ~+ C
有兴趣的自己搭建个IIS测试下
4 q; S& q+ u' R: D+ ^<!--#INCLUDE FILE="RSA.asp"-->
0 r; s8 J. q2 K# y9 K<%( z: `% Q0 R4 H' J2 v. E
function Encryptstr(Message)
* K0 i$ b) d" H9 F! fDim LngKeyE . M* ~5 L  ?. o- q+ M* W; W/ W
Dim LngKeyD
% H7 g; H4 y5 A# nDim LngKeyN 7 S+ h* V  h! Q; ?
Dim StrMessage
% @) Q& {' Y4 o1 m% p0 u7 DDim ObjRSA
9 k7 M7 Y/ m0 _5 I: MLngKeyE = "32823" ; [1 W& _& w& ^9 L$ i3 ~% S- {3 M
LngKeyD = "20643"
/ p: S- u2 b3 A4 Y" @: yLngKeyN = "29893"
  f8 i" A; v2 @6 S; J- F2 gStrMessage = Message $ F  T# I+ T  i+ M: ], i
Set ObjRSA = New clsRSA # O8 d$ A$ [: u* Q; W
ObjRSA.PublicKey = LngKeyE
7 v+ G# u8 k4 C0 i3 ]( a( C/ CObjRSA.Modulus = LngKeyN 4 j; {$ S" i4 ~. [/ F9 q
Encryptstr = ObjRSA.Encode(StrMessage)
7 V/ ?: T, G8 s9 n, sSet ObjRSA = Nothing
9 M& }/ \1 F+ j' o. _; Fend function 0 E0 g& D0 W  ]7 r0 F9 K, X7 |
function decryptstr(Message) % \( W$ I  ^0 W) ?( g$ m: D/ h9 ?0 Z4 N& _
Dim LngKeyE " U- A2 c) `" X
Dim LngKeyD
& k+ s+ E3 N9 l  _1 R# n  F( WDim LngKeyN 4 f2 C" ~4 k; \2 ^" L# p) W
Dim StrMessage
5 O, G+ t' N3 `8 ^1 Y# m" V) W" @7 FDim ObjRSA 5 m8 O& B- b  y0 j3 k% D* @! R
LngKeyE = "32823"
9 X  z3 |4 S: z1 `  hLngKeyD = "20643" 8 W8 o# b0 X0 Y
LngKeyN = "29893" 5 q+ }8 m- o; G( `  f4 f
StrMessage = Message 4 z+ B+ }/ Q3 Z8 [8 i
Set ObjRSA = New clsRSA 6 h8 |/ @7 b, y+ b( d
ObjRSA.PrivateKey =LngKeyD
1 a! u, a0 Z$ u* |  r5 Y" _ObjRSA.Modulus=LngKeyN . ?* @8 U5 w! p" \$ i; s
decryptstr=ObjRSA.Decode(StrMessage) 7 b  w( I. u# p- J
Set ObjRSA = Nothing ; Q- P# o5 ?- _$ P' `) F% G( d
end function 4 D2 T3 C, K: ~/ B
dim last,first
; @; S9 r- q. ^0 V3 h& X, bfirst="!@#$%^&*()"
" b" h) T2 U. s0 PResponse.Write "加密前为:"&first & o+ C" s% }, R& g/ w6 {
last=Encryptstr(first)
" o8 D$ K  J( V+ u# nResponse.Write "加密后为"&last 0 f/ m1 A3 m: {, s
Response.Write "解密后为" &decryptstr(last)
9 K; d8 [4 m# Y! b! R%> ==============================================0 g8 W0 _6 R8 G+ Y" C5 p; R
剩下的就是字符的对照表了1 Q# C1 C5 I7 U2 p+ V& X
===================字符集================6 G0 r+ p  ?1 B
1_____6EBB
, E1 @" o4 M3 U; w9 I2_____5C1F
; ^; W! Z) B1 c( V' t/ n3_____4D75! f2 o& C3 E2 M' E; p0 s
4_____26CC
4 X  b/ t3 h  @3 O5 a/ {6 q5_____4F88
  ~1 M0 e( j4 Y, I6_____3F4E& X& T9 K, F8 R; ]5 I
7_____0A9D' D% Q, z' T$ D: f! e
8_____1A1C6 D8 Z8 t, ~7 Q6 |( z* z$ K" _- o
9_____6D20
6 T% g& c: i. [1 R0_____1089
6 ~2 H# Z5 ^" f6 }a_____0F3E
" P. J1 v$ v! [' O% E, z% zb_____3159
, \) Q9 e; T" c& A8 A7 U* N! sc_____35179 G2 M6 X; o4 w% `0 [! V
d_____419C
2 e1 f8 y7 I* _e_____615C
. N; t5 w" H  h0 c; L* ]f_____556F2 ?1 ?1 n/ o/ M& j7 ^
g_____2B7F  N8 ^3 |# R# w
h_____0F9C
' c3 p0 S6 o8 i! E% Q- K* l! Mi_____00FA. p* @7 d# j, Q2 c" Q4 F
j_____5A50
+ a2 ?& ~7 N8 d% M5 l* @4 wk_____2850
7 a" x, {, |& Q2 J7 Cl_____3E7B! j. C* v8 c" [7 c
m_____71C5) g- z4 u; k6 x3 h" L% E0 D
n_____1FC8' x' n/ A# L; T, T& V7 G  y( `
o_____74C13 H/ c! v' _" n, \* \8 S
p_____5FB8: P8 q! |0 M5 v+ t
q_____6085' x" m& `2 b/ m& G: V) y/ V0 s
r_____3AC4: i# b6 s7 B% ]; P
s_____2F50
7 B1 V9 {5 o" M" r6 w  r! w7 G# It_____36F8/ s# B! J0 R5 t! Q$ P
u_____7010
2 D( y( w2 a8 q6 E& ~# Qv_____0B42
  V8 N5 }# d1 [( V0 M" h/ W" mw_____1C7A
1 G- ]2 q( p/ n* Xx_____16F8
/ z! R! T/ t; d' W$ V  xy_____2EE7- u+ H! _: ~+ @1 Q, F  W
z_____5CF3, ]8 w, i5 \; D6 F! }  |
!_____62331 Y$ P# e. @& u3 S) z
@_____3A45
: z% ?; \" N0 ~- I9 O#_____2291
& ^/ e+ B$ C2 m- m$_____5D5C
2 @( R  b0 A5 I; N%_____09B9( O" i0 {# M- u3 I! }
^_____43EA5 Q* s* ]' a$ R. X6 i; A! r+ o# `
&_____62B9# {$ ]( C( w5 g& p6 J4 S/ L
*_____63012 g  L5 W" C! Q6 [/ b
(_____4659
4 T6 X$ ]  |' ^' |( \9 u)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表