返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, o9 A  D3 b+ e原始出处:http://www.3ast.com.cm& ~$ h* t8 J$ y7 D: j
( G4 c: V7 I$ z8 o0 r1 J
看不懂的直接绕过, j7 D, K! s& q- G4 q  |  m
加密前为:hwy123456; d) m2 K/ `' t( ~6 I
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E4 F; G  G" }& r
% O6 q7 O6 j. o# R1 ?; R$ p0 `3 G
============================================
% ?# e& K) |6 f+ p9 E7 `1 k/ g上面是当时自己校内的心情。现在已经解破出来了,分享给大家: e) e: L. b# J3 ~6 e1 O
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法2 A. N6 a1 o/ D5 b- F
以下是RSA算法文件: b6 f$ j* k) j( Q: v% p
% U8 y$ Q# h& I3 d+ W: D9 \7 e
文件名RSA.ASP. b$ I; r/ r- a) N" |
===============================================6 f$ d* ]5 A. {4 V4 {
<%
# N- w2 [9 K9 G& _9 G' x9 a" \Class clsRSA ( i% O! l7 L( q* L/ |* \$ I
Public PrivateKey 4 w: n( s: \+ x, a7 A3 x! o9 s) r4 J
Public PublicKey . p, c6 {) O: X. |- r
Public Modulus
$ }8 c& e& D2 W) h+ oPublic Function Crypt(pLngMessage, pLngKey)
& g: [. U# F2 g5 D3 EOn Error Resume Next . n0 v- C! U: m6 e1 j2 a
Dim lLngMod
, E$ O7 `0 @( o+ p& PDim lLngResult
8 L" j1 @! `& ?2 jDim lLngIndex
7 ]6 h: w: ~+ G% y2 i3 y, HIf pLngKey Mod 2 = 0 Then
. d: [' n% b# \1 `2 Z0 S) PlLngResult = 1
; O; n- ^6 G; @9 H7 n: W" U! JFor lLngIndex = 1 To pLngKey / 2 # q- Q: O! e! k
lLngMod = (pLngMessage ^ 2) Mod Modulus
2 m& O$ h  f  j3 y2 h, j* S. q6 z' Mod may error on key generation : Z) w3 d% r8 w# @  @
lLngResult = (lLngMod * lLngResult) Mod Modulus ) J8 {+ z) U7 }8 U! q
If Err Then Exit Function 1 E1 O* Y/ v4 }. R' D* U% v
Next
: I# s; A( [5 W3 T, AElse ! ]3 r  T8 A& j  \# ~% q0 V/ _* D
lLngResult = pLngMessage ; s! ^1 x- \1 g0 W0 E6 C8 O
For lLngIndex = 1 To pLngKey / 2 ) a. P; d* K. g+ K; T
lLngMod = (pLngMessage ^ 2) Mod Modulus ) K7 b1 H1 v' Y# i  V+ Q  r. X
On Error Resume Next
+ |& ^$ s8 K5 u* _5 Q0 G1 I3 P' Mod may error on key generation
) ^* }  G* a- @; I9 p8 `0 LlLngResult = (lLngMod * lLngResult) Mod Modulus
. g% P! v7 u, ^3 `" e3 J" vIf Err Then Exit Function / p4 M6 W4 a( Q& _; R2 O
Next
+ \1 S) g) h% ^End If 0 _0 Y, w; y5 b, X6 r! q
Crypt = lLngResult
. T- z$ G; e0 Z# U/ h* nEnd Function* f0 E' L, S, c  S' e# k  k
/ O, E& @- z7 F
Public Function Encode(ByVal pStrMessage)
$ G! u0 t2 M$ n( F0 MDim lLngIndex " B4 c0 Q% Z" W& {) e. m5 y
Dim lLngMaxIndex
8 R1 m# S$ `+ C0 \+ _3 K1 YDim lBytAscii # _0 e$ `. v6 G, @
Dim lLngEncrypted
$ H6 d, ~, ~0 b: H  M: E' s  z7 DlLngMaxIndex = Len(pStrMessage)
1 J. z7 w7 R4 d+ \If lLngMaxIndex = 0 Then Exit Function
0 C% o9 }; }/ }  iFor lLngIndex = 1 To lLngMaxIndex ) e1 k+ q5 q  V% X' i5 |
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 3 _, T& |# ~% S
lLngEncrypted = Crypt(lBytAscii, PublicKey)
0 g2 m9 @; S1 i+ EEncode = Encode & NumberToHex(lLngEncrypted, 4) 9 B7 C2 O" J" m4 N* x/ d
Next
0 Z# u# P: D* ]End Function 9 |: e8 L: M- t) N  p
Public Function Decode(ByVal pStrMessage)
4 h) o3 ~3 k8 ^+ XDim lBytAscii ) E* c5 k* C+ m7 c1 T
Dim lLngIndex   y! S$ i# p- K
Dim lLngMaxIndex
( e9 t% m, k. x3 F( t" p) m9 w" UDim lLngEncryptedData ; [% F4 ~7 J* `) a% E
Decode = ""
$ i% ^1 i6 `+ G7 R. q* S, _5 F# R7 l$ AlLngMaxIndex = Len(pStrMessage) . n' j1 E+ P) u
For lLngIndex = 1 To lLngMaxIndex Step 4
1 A: |4 V! g. C- tlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
; c$ j7 @/ P" p; Y0 klBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! j7 V. @5 q6 Q/ `$ q, I& R% XDecode = Decode & Chr(lBytAscii)
& l- |, ~3 i' }. b: k- u! W+ L4 I0 oNext . O% {( J1 j4 }1 O6 _
End Function ! y) W0 X0 S5 N+ M
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! R# R6 i+ g% o+ }3 }
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
$ K* p# t, |$ vEnd Function
  s5 R  i% ~! M5 O& @% f# Y. TPrivate Function HexToNumber(ByRef pStrHex)
1 ^& S- {8 G% Z, M* }2 s5 [HexToNumber = CLng("&h" & pStrHex) - E1 E$ Y: ?4 @8 f) R" V
End Function + J% i$ _; P1 m8 F
End Class
2 z, x  y" C( N  A3 }# {8 _1 vfunction Encryptstr(Message) 8 H; y8 t1 N# U8 L5 X/ ~5 |6 e% B4 c
Dim LngKeyE + d1 R' e# Q; d
Dim LngKeyD
# \3 M% o( ]1 b! G7 F+ GDim LngKeyN 0 N7 C. ^( z0 B2 R
Dim StrMessage
" @+ c2 e4 N- B% l9 ^( _; ADim ObjRSA
( p& ^  T7 z# MLngKeyE = "32823"
! R" I# w" I) E. _) m" WLngKeyD = "20643" ' q: _8 m$ n7 q# f+ s* N: ~& K' e
LngKeyN = "29893"
- S, F6 @, j. J! s! D% tStrMessage = Message
) x5 ^5 p' T2 _: ]4 `! eSet ObjRSA = New clsRSA
% k8 |7 B& K8 W4 s/ e+ eObjRSA.PublicKey = LngKeyE & u" ^) t7 I: P* |
ObjRSA.Modulus = LngKeyN ' Q; L* r& M) v) r; w
Encryptstr = ObjRSA.Encode(StrMessage)
: p, L) b8 x# H: a5 G9 hSet ObjRSA = Nothing ' ]# S( K- v/ Q# g; S# N
end function
9 g; g& r$ B4 B: ~# Z2 k% nFunction Decryptstr(Message) 7 R4 f2 K* D/ `3 U& [' d
Dim LngKeyE 8 M2 s5 n& G3 h2 v
Dim LngKeyD / \* @2 _+ q# m" }
Dim LngKeyN
8 I5 @) z3 X- L" u3 A. fDim StrMessage
# b9 x. {% F' [: L1 kDim ObjRSA ( a8 A) o, }' _, f
LngKeyE = "32823" 0 ]6 W  m0 |  D7 Y
LngKeyD = "20643" : W+ p/ O6 G2 M# x; Y! [
LngKeyN = "29893"
( S9 |7 I# b4 d# m# a0 UStrMessage = Message
: M' a/ ?; O& y! K- `3 z4 G! GSet ObjRSA = New clsRSA
; n2 {% {- q) P9 o: k& dObjRSA.PrivateKey =LngKeyD 1 ^" k9 q+ ^2 [/ ]
ObjRSA.Modulus=LngKeyN
7 ]* h! E( G* i6 sdecryptstr=ObjRSA.Decode(StrMessage)
4 A/ Y: `, n' |: `0 J) M' E. `9 JSet ObjRSA = Nothing
% s$ c1 W$ O: K1 F( V1 ?end function
% n& A8 J4 j& n; G0 F%>" y. [0 p9 k8 O1 g9 b& f
===============================================7 @  I; s3 @& U

' H& C- A$ }. V; k  G( b! L还有一个用于测试这段代码的test.asp
) H! \6 r* n! k! p! Y5 }有兴趣的自己搭建个IIS测试下
* F) \* [' x' m$ d1 i+ }  c<!--#INCLUDE FILE="RSA.asp"-->
% U2 l7 I: x2 i6 E9 N+ Q<%
! j9 q' A) \* X: hfunction Encryptstr(Message)
3 }7 w# {6 A' ~9 ~0 Y7 lDim LngKeyE
" G2 g, O/ W% b* o3 K9 jDim LngKeyD , }" H( V; U' J( k# A( C
Dim LngKeyN # @3 h  R/ p# `) ]2 ~8 R+ v2 {
Dim StrMessage ' r( D! [2 B) u' \& Y
Dim ObjRSA 9 Y. K- R; B6 i* P% a* y
LngKeyE = "32823"
9 z6 l$ f/ X0 A, QLngKeyD = "20643" ' Y5 ]+ f: }9 v, P
LngKeyN = "29893" 0 \! R2 O) n, a+ }
StrMessage = Message
; E4 g' [4 k* N4 X, q" _: CSet ObjRSA = New clsRSA
: }5 F8 ]) D. Z+ NObjRSA.PublicKey = LngKeyE
$ p: |* O3 P6 g0 M4 n2 o9 }ObjRSA.Modulus = LngKeyN
9 O# U7 @1 ~# l  r+ tEncryptstr = ObjRSA.Encode(StrMessage)
" D( |5 u9 U+ G' }/ YSet ObjRSA = Nothing 2 \2 l  r/ }, t3 H
end function ; j- I% W1 z) j2 E
function decryptstr(Message) " G% @) I7 T6 E! ?' _! b; X
Dim LngKeyE
: a  y6 m% d% P6 X. YDim LngKeyD 6 K0 F; Y4 t+ y( z3 _
Dim LngKeyN
2 q7 `- X, ?: F- vDim StrMessage * \4 ?& _$ o( w( [% U
Dim ObjRSA ( J/ X) O3 J& W& m8 q3 w
LngKeyE = "32823" . M( Z  z* l! ]2 b" u& O2 }6 l: A
LngKeyD = "20643" * _% U) f5 ?; m5 Z: Q2 {
LngKeyN = "29893"
/ ^; n* W% q& ]1 D  c, c' \2 IStrMessage = Message
/ J7 B) [7 L8 b3 L3 a# r# C$ _) ^Set ObjRSA = New clsRSA 4 H/ Q5 U9 M3 F! Y3 x
ObjRSA.PrivateKey =LngKeyD 4 I2 s, x3 e: [9 l
ObjRSA.Modulus=LngKeyN 9 v  h" Z) \/ _4 [( I4 |
decryptstr=ObjRSA.Decode(StrMessage) ( {3 Q- J' \  [3 }; e! [
Set ObjRSA = Nothing : ]9 f; o) h! T! B; I: ~. V" v
end function
  Y) f% `+ T  F! J3 {9 qdim last,first
3 r; z8 m3 m! Y3 E/ Pfirst="!@#$%^&*()" ( S' A1 }. d; Q; P
Response.Write "加密前为:"&first 6 V& p) j: a' n3 M- T( A2 S3 U# t
last=Encryptstr(first)
5 n3 L4 r+ g4 y, _& [% RResponse.Write "加密后为"&last . L! _# E4 _2 ^! s# y) Y* }- g5 |
Response.Write "解密后为" &decryptstr(last) 2 ?" E! P& g: K+ H" F9 t) c$ }( U
%> ==============================================- u6 \9 A$ u) p0 L8 M! {% ?
剩下的就是字符的对照表了
7 i. c0 u+ k, T6 {. Q+ Q' V===================字符集================
7 y- R5 b$ G8 D0 Y! ^1_____6EBB8 t9 p# \7 A: _1 [: P1 ~
2_____5C1F
" S- ]8 e; k# m3_____4D75
& U3 k" g: b, s. \, L+ \& _2 g* `4_____26CC
4 o. O$ z$ Z( l- r5_____4F88) S  ]9 F& r$ R. ?" G; y) b- e
6_____3F4E
9 P( d9 x4 ]1 F0 K3 t7_____0A9D
  W0 A3 ]' x- F8_____1A1C
1 P) w" y- i  r3 N. S9_____6D20
2 S  @# O* y/ m2 T0 @) T+ l+ P0_____10896 |0 T1 ~' g$ s  l0 q0 {# w6 T
a_____0F3E$ _' v" u% J" @7 }) Q+ T( u# a( s
b_____31598 D8 f4 g# s3 g/ o2 V
c_____35173 P2 E/ u4 v4 [% }2 b* |
d_____419C
7 I2 U; W3 Y. le_____615C
( B  x5 R: T- r- if_____556F: ]' f. }+ w: g0 z4 a+ C- ]; J1 J
g_____2B7F
' n7 W) B7 \! t8 ^& r, r' fh_____0F9C* b; q  Q, Z  B3 X) o& H
i_____00FA. {& p' B. v8 X1 p
j_____5A509 \; x6 B$ p7 @8 [
k_____2850, h# E% k4 e" m: [
l_____3E7B2 K6 i% N' @# E/ o
m_____71C5
; Z# f$ E3 s' z3 [n_____1FC85 P1 P+ X  i* V' W  F! A. D
o_____74C1
! x- Z+ c" W7 J+ O0 A$ zp_____5FB8' o! Z" D* r3 x: s1 ]! Q" ]2 j! M
q_____6085: g% }5 w& X5 r* G' {1 M
r_____3AC4
6 J  N5 F% E& w" Z- s: ]s_____2F50- P- S8 e. O8 v2 [- ^
t_____36F8- n6 c; P* n& v; N4 W* a0 ^2 B. f
u_____7010
* U. z% L8 ?) _5 Kv_____0B42
& h( Y2 ^- ?& P2 Hw_____1C7A6 Q& {- A, r# S. H
x_____16F81 n; S5 u/ b, [, _2 R% O7 A
y_____2EE7; I: h2 y7 T* T! s( G6 k) l
z_____5CF3- ?7 B2 |  O( b7 i& m8 j5 V; |
!_____6233) e8 v# i2 d4 p7 H$ E1 e5 f6 H* M
@_____3A45$ V2 v* r+ U& ^* X
#_____2291
0 t: @- B  G( w$ S$_____5D5C
# K& @. P3 e/ l- y7 ^%_____09B9
9 r+ N  r8 z' G; @: d! m+ ^# ~^_____43EA- s) `7 n; t9 G- w9 r
&_____62B9+ A5 S# B3 N1 C7 \
*_____6301
2 v. W/ m5 c! v4 o" o; s: }(_____46596 m+ |  o# g/ ]
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表