返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
9 C5 z$ ]' S$ z2 o9 e3 }+ L/ G原始出处:http://www.3ast.com.cm
$ \+ n- ?% Z. l1 T( E) k/ `0 p8 |/ t- B$ u. b# G' p
看不懂的直接绕过# x" t( Q+ L) ~9 H8 t  |/ m
加密前为:hwy1234563 ~& c& m6 O) Z
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E' s7 V4 I/ P. q, X* H, p
/ _0 m$ P. g/ \8 V. ^5 j
============================================
9 X$ ^" i. @8 }8 `! U  v上面是当时自己校内的心情。现在已经解破出来了,分享给大家" F: u8 |8 ~! d  v
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法/ n3 `  T6 F# H2 V! v
以下是RSA算法文件
2 a+ n2 A6 p) W: `$ I4 l" _
% e1 l0 B) j- z2 ]# E文件名RSA.ASP
  Z  D6 m* I$ v===============================================; X" A/ u, I- g+ `' p( X
<%   a% T' U8 |. g( t3 \. v; ^$ k# [
Class clsRSA 1 `% k$ F7 Q# G/ F/ D
Public PrivateKey
, M+ a' R3 |4 q0 UPublic PublicKey 2 a5 `$ f$ A( N+ |" b
Public Modulus
2 o# r) }& D' y4 ^3 d, G7 `8 PPublic Function Crypt(pLngMessage, pLngKey)
6 W& A+ M+ R; T; s3 a1 ?On Error Resume Next
- {9 J0 J( Z! A6 eDim lLngMod
5 t8 G4 u" z0 d2 g2 ^- ]Dim lLngResult
( a/ U& r& R" y8 k' t+ }3 C0 m1 T/ PDim lLngIndex 7 b0 d& R: K6 m% w5 y+ m9 v- d& Z
If pLngKey Mod 2 = 0 Then
: s) J6 r. i$ f! V- xlLngResult = 1
4 v% r$ P9 r) J/ yFor lLngIndex = 1 To pLngKey / 2 # L: k% \" V2 {/ y
lLngMod = (pLngMessage ^ 2) Mod Modulus
+ b; W; o2 }7 B) J$ [' Mod may error on key generation
: F8 u5 G+ n- R2 l' `8 ~lLngResult = (lLngMod * lLngResult) Mod Modulus
) A2 ]& j* Q) t) S# m0 w7 pIf Err Then Exit Function , Z* z. l$ `9 z3 @3 g6 {  m
Next
% I; |6 A/ P2 xElse
8 z( S- J0 x! l+ r% FlLngResult = pLngMessage " U: y: Z( g6 o: }/ R4 ]
For lLngIndex = 1 To pLngKey / 2 8 [. d5 z# Q& ]( U: a5 U: |
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ u9 E+ D6 [: B+ b/ M3 j) @1 u: YOn Error Resume Next
- k0 ~. w5 P: l& _' Mod may error on key generation 2 d" A% X( R+ f1 n, K( I
lLngResult = (lLngMod * lLngResult) Mod Modulus
  V; z' G6 r  K5 QIf Err Then Exit Function
; c, x; ?: c, NNext - Q7 ^; I+ N" S
End If ( T( h( e5 V' u2 `! \( `
Crypt = lLngResult
0 ]1 x: B0 O* Y$ tEnd Function
& S" C5 g$ R# t( b4 V* p, W# L. G7 ?* d( E! [0 @) X
Public Function Encode(ByVal pStrMessage) * @9 H: Q) z" m7 m2 k+ ~
Dim lLngIndex
9 a2 e0 |1 t( }% _) XDim lLngMaxIndex
5 J3 C8 ^- [7 b, L: pDim lBytAscii : o* K/ M8 j  r& r2 Y7 b' F
Dim lLngEncrypted & {% u+ T9 V. @( T; C! b, _
lLngMaxIndex = Len(pStrMessage)
  l0 N$ ~2 ]% p" D" `2 xIf lLngMaxIndex = 0 Then Exit Function   q( T) m9 O& o# P& _7 u" r) q
For lLngIndex = 1 To lLngMaxIndex ( u7 ]" h1 ~* ~8 K- c$ m
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
% K: U. d+ T# PlLngEncrypted = Crypt(lBytAscii, PublicKey)
- G: X) h* u9 x$ G9 _4 \Encode = Encode & NumberToHex(lLngEncrypted, 4)
0 [+ j1 d9 T3 V5 s0 ?Next
# m& _& U9 x% U- @9 b* o3 bEnd Function
+ p; Z- V) t5 ~Public Function Decode(ByVal pStrMessage)   N  ?$ F# Y) p9 {6 ~1 e
Dim lBytAscii
4 O) I4 f$ o0 M& FDim lLngIndex
. p4 u7 p2 w9 R. tDim lLngMaxIndex
+ V  N" e7 x1 R& L9 S" oDim lLngEncryptedData 1 s( M9 M" }2 E5 i  Z
Decode = ""
8 H+ m* ]# p' w* rlLngMaxIndex = Len(pStrMessage) 4 ]; y1 ^$ B/ _$ D$ n7 N
For lLngIndex = 1 To lLngMaxIndex Step 4
6 z2 `% \) N  D# \3 U( t5 x+ zlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
, m: m. N/ k/ c. c8 AlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
2 Y$ p! q7 v: l& w1 t# |Decode = Decode & Chr(lBytAscii) + f0 V: b+ \0 l6 _2 ^6 `6 l
Next 4 K5 d. Z/ \, R9 `* n* j! w! r
End Function
  J# m8 Y4 E/ o9 uPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ) W# m/ Z9 e/ O! K6 j1 Z0 i: E
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
+ U. N, [1 U* @* a& i; sEnd Function 5 \- y5 K, q  a% }! k4 A
Private Function HexToNumber(ByRef pStrHex)
2 O  P1 F1 }1 s1 W+ yHexToNumber = CLng("&h" & pStrHex) ) k. [6 }8 W5 k' a
End Function
2 r3 G9 W, `& X- d9 zEnd Class
' c1 V5 [0 E/ vfunction Encryptstr(Message)
9 c/ y' }0 l! R0 B# dDim LngKeyE
: t7 ~9 S/ N/ v1 I  f  b) TDim LngKeyD
. v! V) t9 Q4 |, I  V8 q- a8 VDim LngKeyN 9 g$ W7 S1 T$ Y. c
Dim StrMessage . i2 |( n3 o% p: v
Dim ObjRSA
+ S& _% O; X7 l# t; ILngKeyE = "32823" . ?6 r; h- j. T1 h4 t1 U; z- C( G
LngKeyD = "20643"
  {+ }! G: r1 }& ?LngKeyN = "29893" 3 V# S/ Q6 e5 s0 j! p# Z$ h% m
StrMessage = Message
- G7 |6 B3 V& _* N+ dSet ObjRSA = New clsRSA
6 u* A5 D4 D+ y0 a6 z0 f2 eObjRSA.PublicKey = LngKeyE   F( a4 q3 M" k! H. i
ObjRSA.Modulus = LngKeyN 2 [0 L; R8 r; v! v! Z* K
Encryptstr = ObjRSA.Encode(StrMessage) 4 b9 W' M  m. L: l) [3 Y
Set ObjRSA = Nothing
1 @3 K" Z( u) I0 A  }  Send function
" F9 Z# @2 x; _  x/ j, SFunction Decryptstr(Message)
9 T7 P+ A1 X  T$ d. j2 o4 lDim LngKeyE ( L) W' a8 |. e+ ]: _5 t
Dim LngKeyD 1 @/ d$ n! b: r+ ]
Dim LngKeyN
- x* _- ?$ q0 K9 u9 y9 D6 @Dim StrMessage
) w( u7 d' L9 X4 D1 o9 ]3 `Dim ObjRSA # N* @4 I; Q3 D
LngKeyE = "32823"
- ^! g+ n( B0 OLngKeyD = "20643"
+ n8 ]* F& l  b6 F8 ^7 q* `) N; J" yLngKeyN = "29893" 2 F; \# s: x5 t5 m% b- w7 o5 W2 B
StrMessage = Message
- P, w7 g  N/ y: t& ^Set ObjRSA = New clsRSA
( Q* F  F0 v7 _! }8 \ObjRSA.PrivateKey =LngKeyD
8 r, R4 W* F( lObjRSA.Modulus=LngKeyN
* B& Z8 {! z9 F3 G0 Tdecryptstr=ObjRSA.Decode(StrMessage) 6 k9 f/ n7 q# H+ v, d6 g
Set ObjRSA = Nothing
1 m: G$ P$ L) r- Send function , ]% s$ S7 {& I( ~* O
%>* s) F: G2 k( Z
===============================================; e( Q2 T8 }7 J4 u$ B) c3 N0 O
0 L+ C/ W3 c" F! g% C$ u+ i2 z
还有一个用于测试这段代码的test.asp; C! q- ?3 b0 L4 Z
有兴趣的自己搭建个IIS测试下) B$ E" k5 g# A. u$ f7 m( G/ ?: W. T
<!--#INCLUDE FILE="RSA.asp"-->   J) _) f8 A. l$ [" c
<%: s. l( x  K' y8 k  E5 M! l5 E* D) a
function Encryptstr(Message) 2 k- {2 B5 |+ m0 S
Dim LngKeyE 9 |2 _+ z3 i. H3 M' E# B  p
Dim LngKeyD 1 H2 ~) o0 N: j# a6 Q, w
Dim LngKeyN
% p) |% o! \8 `# |8 U7 oDim StrMessage
2 t! Q% Q6 p9 i( TDim ObjRSA
. u* L3 [$ z9 o/ U  ALngKeyE = "32823"
( i9 D, O9 I2 \- _LngKeyD = "20643" % j5 i: H' Y) K, y% c
LngKeyN = "29893" 7 v/ z- S$ `. K) ~
StrMessage = Message
/ S- _* v$ R, s( B' k; uSet ObjRSA = New clsRSA
$ x. Z* x" @9 d2 ?ObjRSA.PublicKey = LngKeyE
+ M3 F8 Q# Q. `3 vObjRSA.Modulus = LngKeyN 1 M, y  f* d* i9 ]! @/ a% }
Encryptstr = ObjRSA.Encode(StrMessage)
; X9 _' J) G& P1 Y5 Y8 R$ SSet ObjRSA = Nothing
% \' k! Z' k( X8 h) E, M% Mend function
0 ~2 N6 ~2 Y4 z8 }0 s8 ]function decryptstr(Message)
8 b" X1 [5 B( ZDim LngKeyE
2 S% C" {. m2 I0 Y, V3 F8 @( q* t0 W! \Dim LngKeyD % X- s7 N/ z2 U# x, C7 q4 M2 F
Dim LngKeyN + i* j: [3 K9 T# n7 E# S
Dim StrMessage
: L) s6 u2 B) J* n7 x! a( hDim ObjRSA " }1 v  {& G; y, g5 d- g$ H
LngKeyE = "32823"
. u% s1 b7 n+ j$ iLngKeyD = "20643" % v4 j" Z5 E& f+ n3 [# j
LngKeyN = "29893" / l. U+ \" ^) m" h0 s) M4 |/ w; g" J  j
StrMessage = Message
+ X' u& a, W8 u/ CSet ObjRSA = New clsRSA 7 a* |  H, [) r  m3 z
ObjRSA.PrivateKey =LngKeyD 9 H8 F2 s8 O% e8 g
ObjRSA.Modulus=LngKeyN
2 c) W4 ?3 U& Z, F. |decryptstr=ObjRSA.Decode(StrMessage)
7 D& @) }. R9 V5 m; r  gSet ObjRSA = Nothing
& c9 @$ _9 Q0 }; U6 \end function
6 G9 t! [' B1 }4 h# i4 I# ]; Sdim last,first
* V6 K, B8 r1 l) M+ K$ Pfirst="!@#$%^&*()" ; h9 p: C+ R0 u: Z) G
Response.Write "加密前为:"&first 8 `' b( W7 a$ t6 o
last=Encryptstr(first) 7 |" v/ P* j3 Y3 k% j  o
Response.Write "加密后为"&last
5 o; M( w" g% |/ S8 I* LResponse.Write "解密后为" &decryptstr(last)
/ T1 G0 H: s& x% H. L& {6 p/ k% }%> ==============================================
* h3 {. `  k3 ^9 h: Z& l剩下的就是字符的对照表了3 w4 [0 B& `8 M. |% ?
===================字符集================
, Y4 B& A7 i! K1_____6EBB% l. e8 b( \8 U1 C! m
2_____5C1F
: N% `  ^. P- E; d$ Q* ~2 q3_____4D753 c2 B  g3 O0 F) Y% p/ I
4_____26CC) i* L& ]" h  K/ z: D
5_____4F88
. Q8 X  b1 W" q) Y0 q6_____3F4E
( ]. {# Y! n+ |5 v7_____0A9D9 q& z: v* @, i4 K- ~4 [6 K
8_____1A1C
6 L! B' _. {/ [) s9 b9_____6D20
' ]' z9 @/ k2 p6 a" c0_____1089
" e2 x% V& S- I% ja_____0F3E! M/ ^, M' ~8 P, h: z( n5 X
b_____3159
& |; W* Z  b, q" m5 n8 [1 Kc_____3517) h2 l; d, E  {5 k$ \. q0 \% K/ }
d_____419C
9 C4 i: k- T+ ^6 [) Je_____615C
* ~2 p. @: L- \4 F; @: s" p" o& Sf_____556F
5 D. Y7 R/ W8 M4 V3 ]! R) Og_____2B7F$ _& y$ S: D3 Z/ B
h_____0F9C
4 A. ^' F; G: Z$ bi_____00FA5 V) K" u; F% n( n! m& K" {" w
j_____5A50
. @1 k$ T; w* w  Z# G) Gk_____28506 F4 W: s- ^7 l" |5 j
l_____3E7B8 e# Z' S6 F" j( x4 w+ l
m_____71C5# G5 R! r+ F4 g
n_____1FC86 x5 m6 R5 d6 u- l7 S  J- }5 a
o_____74C1  p- b  O; s: V9 y9 c' `' W' Z
p_____5FB83 J, I5 R4 b7 G7 Y2 Q4 U) m$ V3 f
q_____6085
$ ~6 ^( @+ ]4 G$ s# f: L' ]  br_____3AC4
0 }4 V/ @& W' `" R8 _9 A7 q9 ds_____2F504 F' V- _  ?0 R1 U' a% e/ Z" h
t_____36F8
' M9 A8 ?: l0 z. v2 n2 E  \; Pu_____7010! a2 P  c+ Z# s
v_____0B42
/ o7 s4 D8 t& r0 R" ?6 G, o$ qw_____1C7A' N2 f: N+ ]6 K: M7 g6 F% D+ c2 J
x_____16F8
1 Y% V) s, S  D; H; H# U; J2 D) Oy_____2EE7' ]* \  M6 z: J. ~0 ^8 Z
z_____5CF3
) W) G0 T% `  d( Q( O' D8 X!_____6233
6 e; |  {2 D/ Y) W3 [@_____3A45
/ D0 I7 W5 L6 M( ~1 ^: @1 _#_____2291+ w  U+ x; Q+ ^; M$ K5 T
$_____5D5C
/ M0 l# H) ~, t1 O3 I9 ~# P, x%_____09B9+ M2 _, C* }2 A0 O
^_____43EA) y- X6 r+ |6 Z$ L! T6 D- H
&_____62B9
* {: k! P; d; t6 U9 @. S*_____63012 }9 f, G/ L) W# v6 P* {; i( f/ [
(_____4659
0 |! J% l) l* H. V7 q)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表