返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm+ ~; q5 k9 Y  Y, Y
原始出处:http://www.3ast.com.cm5 E) M6 n9 }; Y7 Q

+ F) w$ r$ W/ F" Z/ |( d, G( M看不懂的直接绕过- k  P' q- N) G* g% z
加密前为:hwy1234568 ]8 z4 f7 ?' D4 \
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% X6 y) w6 n! z2 t, ?- G# m; k
============================================
2 ]9 t0 s/ n3 g1 o' f上面是当时自己校内的心情。现在已经解破出来了,分享给大家
( _0 s1 w( o, o也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
; w6 G# t2 r0 A6 H; |( a$ l5 J以下是RSA算法文件, {7 U7 Q4 c% w* j4 e6 u4 i

" w7 l. r6 K& c. T  t. |文件名RSA.ASP
3 q; w9 q9 U+ C===============================================
$ Y; z6 q; `. [5 O' U<%
$ V' N$ c  Q3 C6 SClass clsRSA
6 r6 T8 U& m) _4 l" }. gPublic PrivateKey 7 k7 o# B/ ~5 u6 c
Public PublicKey 8 S( ~( p! z, M, e* O
Public Modulus
2 G# ?% o- v2 e5 g- s! `Public Function Crypt(pLngMessage, pLngKey)
. z- r8 w1 [& C9 G3 @$ pOn Error Resume Next
5 ~* T5 D$ X4 E$ e2 W  E# RDim lLngMod 9 t4 E$ [# u/ x, M+ a
Dim lLngResult
, K, }! A1 m' H4 N% C! MDim lLngIndex . ?% d" `4 m( e% }: |
If pLngKey Mod 2 = 0 Then ' ]3 X( }. F' c' C
lLngResult = 1
& F* t7 _0 W4 ~' n' k* a6 p; ~1 }! LFor lLngIndex = 1 To pLngKey / 2
" e* ^7 d4 L# s: g! I6 ?lLngMod = (pLngMessage ^ 2) Mod Modulus
. O) q/ `! G. A, c# \' Mod may error on key generation 1 {8 n; y* u6 E* j7 s: [& C( P
lLngResult = (lLngMod * lLngResult) Mod Modulus
( N2 A- R+ g) X6 S0 A0 B8 \$ XIf Err Then Exit Function $ N, m4 e5 c9 N( a% R3 n% N2 {
Next
2 c+ [7 ?1 Y8 H/ h  m6 j6 t# @Else
8 P9 c- o/ E2 t8 WlLngResult = pLngMessage $ w6 {" d$ p- L) A- y
For lLngIndex = 1 To pLngKey / 2 2 p* U# A4 Y( }) r# Q
lLngMod = (pLngMessage ^ 2) Mod Modulus
- L5 d8 c: D$ b+ n/ TOn Error Resume Next
! U% J+ m6 @4 P, ]8 a: p& I' Mod may error on key generation $ m: \* m3 M: b& D( M
lLngResult = (lLngMod * lLngResult) Mod Modulus
! [# l9 ?  v1 y( F' z7 u* LIf Err Then Exit Function
% z( c% u1 @% o0 HNext
4 G0 A6 C) m6 u7 |/ bEnd If + ?0 ^6 |. G0 D$ r9 ^+ k& _* N
Crypt = lLngResult
+ I  c5 n( \& t; f1 V! }6 a3 gEnd Function
8 `% ]1 m  d2 N+ i( T7 X) Y% _- B" [# y) P3 }8 k6 a/ R
Public Function Encode(ByVal pStrMessage)
5 R5 U4 P" b; A% QDim lLngIndex ' D6 v; t4 x) M4 b+ K
Dim lLngMaxIndex
- t) x$ f( l$ W6 s  d) iDim lBytAscii
* m: E+ L. h' {+ K; f5 t, {$ B6 GDim lLngEncrypted
* a5 D! @) D* g* A2 \+ IlLngMaxIndex = Len(pStrMessage) / e9 X, D" I7 S5 ~
If lLngMaxIndex = 0 Then Exit Function
# k5 k# w- z" o+ |7 r/ ?5 yFor lLngIndex = 1 To lLngMaxIndex
; E) M9 D; Z# t1 I- n0 xlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 3 L0 U7 @* I+ G6 B1 y6 t# _3 F
lLngEncrypted = Crypt(lBytAscii, PublicKey) & U4 K2 b+ D1 U: _5 B
Encode = Encode & NumberToHex(lLngEncrypted, 4) , A. W' o4 n1 x) A7 H) U
Next : q9 S- [2 h5 O' v3 l" [
End Function ' J. k1 C$ V' M
Public Function Decode(ByVal pStrMessage)
; o5 |8 K* K9 O0 V+ p1 T0 [Dim lBytAscii + @, F2 Q& r# K8 r4 e3 [# V) T
Dim lLngIndex
; v5 X& d# Y! G) F7 iDim lLngMaxIndex 1 h$ \( q) B3 j' L* e# \: u9 P
Dim lLngEncryptedData
4 a' g' @  [) D- XDecode = "" : G& m/ o; ^3 I2 r: W1 J% R
lLngMaxIndex = Len(pStrMessage)
% h* m- z* N8 U! I- dFor lLngIndex = 1 To lLngMaxIndex Step 4 4 ]) h+ ^0 u5 R2 R- i: A  }* ^
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
) c/ A4 K4 f6 u8 `( Q7 B9 ]1 h! PlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
4 |( k+ a! ]4 N* ^) D" r2 EDecode = Decode & Chr(lBytAscii)
0 \" ]' O1 }3 g, f6 r* t" |+ F7 nNext
" `& `4 J$ m8 U- _* oEnd Function
. M3 e+ V( a. T* sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) * m. \9 u$ L0 ~# M* u- G; _" N
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   i. J. i) A, `/ P  X
End Function
7 o4 C% y- ~4 h  @$ |  PPrivate Function HexToNumber(ByRef pStrHex) + T0 S5 c9 H6 ?/ R5 y) \' M- u
HexToNumber = CLng("&h" & pStrHex)
, F# M6 x0 {$ g# X% eEnd Function
3 O+ B3 ?3 J0 u8 R! dEnd Class
9 H) b7 w3 g2 A! q; u4 j( k- F2 Wfunction Encryptstr(Message) . Q6 H! A4 T5 x/ P$ v- J
Dim LngKeyE 7 I/ H  ?% j0 J! J
Dim LngKeyD   Q3 e+ E* L4 \' f* ?3 M  ^6 O
Dim LngKeyN ( W1 g/ t6 Z9 t6 L/ B! ^
Dim StrMessage ( C: \4 y- [6 q
Dim ObjRSA ( q; ~* r. u3 M5 a  U
LngKeyE = "32823" , r% J3 {6 T. k8 W; g
LngKeyD = "20643"
4 V' Z1 ?0 \* t9 C2 M5 k8 z* ZLngKeyN = "29893"
) I$ G* R& V9 M) l. pStrMessage = Message - v9 a$ N( q) ~  ^/ B
Set ObjRSA = New clsRSA ( P# B- @, h  T9 f
ObjRSA.PublicKey = LngKeyE
2 r; H( T0 B3 DObjRSA.Modulus = LngKeyN # N& k& B: d+ d9 R8 w0 `
Encryptstr = ObjRSA.Encode(StrMessage) / S0 y& M9 B- x0 |: {' Y, c
Set ObjRSA = Nothing
0 P2 o, ~9 A9 P+ F* k5 z& Zend function/ v/ Y/ h1 c- C* O2 Y) H3 Z( N
Function Decryptstr(Message) & s& _$ t  q! r# r+ W- L
Dim LngKeyE
* d, _8 a+ {8 B0 S! B) vDim LngKeyD
$ [! K; ?; u# J/ eDim LngKeyN
6 T, E& ?2 y( l! MDim StrMessage
  C6 ?7 N, ~3 V( `; ]3 BDim ObjRSA
. j1 E1 r# Z" R2 @. YLngKeyE = "32823" 8 X* ]) C5 g% F2 ?8 f% y
LngKeyD = "20643" , f: P) S0 u% ~2 U1 ~/ ]5 W& q. w
LngKeyN = "29893" 4 x% W3 P9 q' e' v) D: @% n
StrMessage = Message
6 N, H3 g1 I' F. H0 `Set ObjRSA = New clsRSA
4 p  b# G) x- d' d; _ObjRSA.PrivateKey =LngKeyD
( v, x* q4 _: G: [6 VObjRSA.Modulus=LngKeyN
, ^, t6 m6 `& ]# o  rdecryptstr=ObjRSA.Decode(StrMessage)
4 E8 a( O9 E6 t( N% USet ObjRSA = Nothing ! R- C( a- i. E$ ~9 Z
end function
! d. U  L6 g) ^2 W: f& w  ~- G8 z%>
2 ^( ~/ ~9 l. h- u===============================================, S, l: u7 V. q% M
' t' \& z  r! q8 g, y8 _+ E4 k
还有一个用于测试这段代码的test.asp7 T/ G3 g( y1 H( P6 j/ i1 ]6 _) H
有兴趣的自己搭建个IIS测试下  W# ~1 Q( f8 `% T
<!--#INCLUDE FILE="RSA.asp"-->
7 O" ^& s& o. F& ~  V( }5 ^  o<%2 `9 z1 ~: O6 s8 ~2 o" ]9 z
function Encryptstr(Message)
* B" ~) i* ~: D) c6 }7 V% }0 Y5 YDim LngKeyE 5 I# p) Z* s% W- ^
Dim LngKeyD % Y/ V- c+ ^1 T* [
Dim LngKeyN % |" G1 k$ D- |! X& }; b
Dim StrMessage
1 f9 j. g4 R$ t2 h: l. \: M0 L9 L! [Dim ObjRSA
- r/ u% f3 c! w; ?LngKeyE = "32823" 1 H% E, t5 C4 N: [  O
LngKeyD = "20643" & ]( x  B: J5 u8 M6 u& }
LngKeyN = "29893" ' J7 ]! z5 K% v0 C) @3 b" a
StrMessage = Message ( H- ^& s4 I- N+ ]1 E; U
Set ObjRSA = New clsRSA 2 C3 W2 x% a0 K
ObjRSA.PublicKey = LngKeyE & u$ V# t# e& |
ObjRSA.Modulus = LngKeyN
0 Z0 ^4 Z2 N! a2 `0 d1 FEncryptstr = ObjRSA.Encode(StrMessage) $ |$ u2 U$ E6 }/ }5 n' l1 w9 k, J3 ?
Set ObjRSA = Nothing % s4 j" }7 |1 t3 }
end function
' P  r  k  g7 Q2 }  z0 Bfunction decryptstr(Message) ; u' }; b+ p* R; b7 h8 B
Dim LngKeyE
" A  ~& p; h% W7 c* EDim LngKeyD ' m5 ]- M% z% U. J$ g0 m! a. T' O
Dim LngKeyN * _; M! X$ G# _
Dim StrMessage % Y5 @* ~; N; z8 ~/ K
Dim ObjRSA : V) Y7 C, O" N' |( v! \& p
LngKeyE = "32823"
$ Y. Y) ~" U6 Z9 d- S+ _3 oLngKeyD = "20643"
  H: _5 L2 P8 s3 \' Y4 l, XLngKeyN = "29893"
+ D, I/ V9 |3 G; vStrMessage = Message
- h) q) i9 }' U3 T  kSet ObjRSA = New clsRSA
" Z6 u1 c7 p' Z- p* {ObjRSA.PrivateKey =LngKeyD 2 L2 i* }' @; u8 f: K  D! ~* H
ObjRSA.Modulus=LngKeyN $ [$ ^# J3 I. w9 Y- B+ B+ `) @& e
decryptstr=ObjRSA.Decode(StrMessage)
2 k% M) m4 D- u; |; y* t) VSet ObjRSA = Nothing % W# q. U4 v* ]+ ]" b
end function , J1 o5 K2 `( c% }4 b
dim last,first
0 _* j+ G  ~* m) z- z) rfirst="!@#$%^&*()"
5 f+ ]& e# o  P# t. CResponse.Write "加密前为:"&first
. K8 Y7 w( n9 t1 ?2 x& Alast=Encryptstr(first) 7 l) A# {1 C& X+ u, L
Response.Write "加密后为"&last
. i0 f5 X: W/ L5 w) P7 _Response.Write "解密后为" &decryptstr(last)
' p: c* t( `/ O( y8 W1 z8 g/ ]%> ==============================================- ~! F8 c5 ~8 b3 b1 |3 M
剩下的就是字符的对照表了" N5 O) a4 i" b, ]8 R
===================字符集================2 {/ J+ g# {1 ^1 \
1_____6EBB6 |, k7 i0 n: V& R2 O4 H! f3 _0 k
2_____5C1F. \. v9 F! s8 [- n
3_____4D75
% j3 X$ }6 I6 U( N9 [4 s1 q& ~4_____26CC
) g5 u) J% h% U! t# i! h6 H5_____4F88
9 L9 o/ D5 D# ^+ c  P. N8 B6_____3F4E
  A" i; L9 d" J- O7_____0A9D
* [! u$ L+ B+ H2 ^1 T9 I- T; C8_____1A1C
- w, X0 W' A0 m* ]. h9_____6D20
. q+ m7 I( h8 y* ^0_____1089  L, P8 y: v& A
a_____0F3E
# l. \5 o/ t! U0 sb_____3159* O3 b# {9 N" q$ u, t
c_____3517
! ]0 P9 X" |5 H  X, _" y. yd_____419C
" b- A( u( A+ H9 \8 b8 }e_____615C( b, @& A$ M$ O$ ?3 g4 Y
f_____556F4 T* I7 A! p+ v8 a2 e$ N
g_____2B7F
* B! q# v" ^, b. lh_____0F9C# e, k4 H  x; B1 E4 L: h
i_____00FA6 d3 i2 v) N+ n! x8 o8 F
j_____5A50
) N, u9 R2 R3 ^# W9 F& c* nk_____2850
- c. ]$ V: H$ ]+ d( p3 T( U0 F$ ll_____3E7B+ a0 S4 [- W. G- C* e; K9 S4 f0 ~3 V. U
m_____71C5$ w' ?# _8 z2 P* S! f. n1 P) s
n_____1FC87 m* g7 Y  o+ V7 H
o_____74C17 ~: e; A$ a5 j5 o5 Q. m
p_____5FB8
4 _+ S* S6 F4 u/ }% v4 ]% G% Cq_____6085& R$ y. i( Z, {2 b; v6 H" S
r_____3AC4: }& w) o2 I' h; e$ Y. _
s_____2F500 j# ~3 j5 |9 ]3 B+ s8 {7 _
t_____36F8
1 z8 l1 U' V; W" Su_____7010
: z: s6 N8 W0 E2 ~9 Rv_____0B42# e4 s; `. D- X
w_____1C7A
1 {( q3 S6 H. zx_____16F86 ]* I4 V# n9 j
y_____2EE78 i5 u% ~  k5 D1 u# I1 W  @
z_____5CF3
3 k6 q5 b, w, }!_____6233
* l8 U) {) j+ f' ]) s9 K@_____3A45
+ e( k2 h9 l9 o0 Z- q" u9 I#_____2291
7 [5 t5 Q" \: R7 K7 X$_____5D5C# L4 l  e+ A. W/ O
%_____09B9
  l/ F5 B4 H/ v$ h) K: S^_____43EA6 S5 [6 [+ B, r' o. Z' K
&_____62B9
: n( t0 @. j* `4 o  O*_____6301
8 ~8 b0 U3 \/ V# Q/ L; R(_____4659/ n/ f9 H4 q+ [* U
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表