返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm! H$ j) Y6 n  D% v# F
原始出处:http://www.3ast.com.cm9 x( n# N4 p( `5 Q$ G2 E. A( i. G
2 r' ]; ]7 \$ r8 u, {$ M: K
看不懂的直接绕过8 J, k2 s7 q& `7 H5 \/ A
加密前为:hwy123456
, y/ ?% [! s! i9 ^+ Z加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E1 w! `) D  O" f8 C) [

$ J6 n& S' \5 C  T( T============================================5 n- |4 I3 n- E3 ~  R
上面是当时自己校内的心情。现在已经解破出来了,分享给大家1 G9 Z2 G1 O$ b2 w2 s$ ~! F8 h
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法$ ?, Q, \7 u4 J0 s
以下是RSA算法文件1 v. G! m9 T- r  k0 L' A) O
7 a* a: h0 m3 ?
文件名RSA.ASP& _, G3 A: H9 S
===============================================
  }2 T4 }! ~3 s* |& w7 I, D* \* x<% ( Q/ M9 P9 s; ^2 V" m
Class clsRSA ( i9 X2 G% b: c! o) W
Public PrivateKey
7 Y% U, h/ B( z# P: y! OPublic PublicKey % t/ i; ~9 i1 a; r! P
Public Modulus & D& q' N. t% w% c" h. t
Public Function Crypt(pLngMessage, pLngKey) $ X6 k9 B" y6 }3 Q6 m" t$ W2 p
On Error Resume Next
. L% x/ d: B* j3 }8 qDim lLngMod 1 x/ Y# v0 s9 `
Dim lLngResult # J' S& F, B8 A# |: c
Dim lLngIndex
/ K5 `* ~' O3 kIf pLngKey Mod 2 = 0 Then
" }. n- ~* M6 }* F1 K  c8 z4 d* jlLngResult = 1
. H+ B6 H5 y, m  }, W2 qFor lLngIndex = 1 To pLngKey / 2
$ R  i  o( M8 [) {; F' \lLngMod = (pLngMessage ^ 2) Mod Modulus
+ n* h( X5 l4 e( @% d' Mod may error on key generation
& _, b& j3 j' G  ]. N3 \" d: KlLngResult = (lLngMod * lLngResult) Mod Modulus $ j7 w. o: T! L! k5 C% g
If Err Then Exit Function
4 |# d6 X  e3 h, N& KNext
2 Q" J8 C1 r- t- ?( p# i+ R) kElse
0 D) [; E4 s( nlLngResult = pLngMessage , }8 T/ g# r% `2 |) x
For lLngIndex = 1 To pLngKey / 2 7 g' q* v; }7 n* T
lLngMod = (pLngMessage ^ 2) Mod Modulus 0 h0 y" m1 U% Y! G; z2 [
On Error Resume Next
8 L, u. s1 w; q/ Z# V- ~, v' Mod may error on key generation + ^7 T  O; Y  t' g# O) P% i( Q
lLngResult = (lLngMod * lLngResult) Mod Modulus
! }. d8 [$ ?$ F. NIf Err Then Exit Function ) ?. M0 q; r( B" d* b/ O" J
Next
, s  O1 n) n$ @! T- C+ UEnd If
: z" w" k* \3 s) S7 eCrypt = lLngResult
& c6 r$ @: q- a( Y* F' @8 _End Function
) F9 `/ Q/ N, ^& }
9 L; \' V9 k. M4 {# n$ [& x" tPublic Function Encode(ByVal pStrMessage) ; s4 P, N; t8 S4 I; b5 v
Dim lLngIndex ' J* ~! f+ Z! G: i4 t
Dim lLngMaxIndex 4 ]4 B/ [; |% y# u' f
Dim lBytAscii
, Q. ]" q4 D' C3 y+ EDim lLngEncrypted
# z7 g3 u  Y+ S, B+ l( q' ulLngMaxIndex = Len(pStrMessage) 3 U; {2 o$ _" n# w& M- D) p) d
If lLngMaxIndex = 0 Then Exit Function 7 _# J6 b0 K/ A7 }" m; z% T
For lLngIndex = 1 To lLngMaxIndex 7 P* Y# K7 O6 N; @; b+ A1 Q& B
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) " M  r0 e! O' b/ P% s) k
lLngEncrypted = Crypt(lBytAscii, PublicKey)
3 B2 m7 F; c  J; R9 Z* ?0 a; YEncode = Encode & NumberToHex(lLngEncrypted, 4)
& t# y& t) h7 I1 h' pNext " u% v9 [9 n* c6 [
End Function 6 c1 `, w6 K2 A% R2 A" v/ [
Public Function Decode(ByVal pStrMessage) # S. N1 t) k: m
Dim lBytAscii
3 Q& f% Z0 t: b1 k; b9 D* G' A/ nDim lLngIndex $ X, F5 p: g3 G9 O' U  `  H, e) Y
Dim lLngMaxIndex 6 W1 S& V4 g4 p# L' Z
Dim lLngEncryptedData 6 z3 g1 P6 v. w2 V- V- w$ }+ w0 ?
Decode = "" * h7 V3 [2 i6 b' j" j  w8 J
lLngMaxIndex = Len(pStrMessage) . t! l  ~% A. f0 o4 T
For lLngIndex = 1 To lLngMaxIndex Step 4
3 b; h: ?8 l! L9 A7 Q0 _4 glLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 5 U* i: b$ O0 o7 W
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
3 i3 W  b  m6 G  t2 U: m5 v4 t# EDecode = Decode & Chr(lBytAscii)
/ @: @& p- ~  }! S9 |6 }Next $ _- N6 E! S6 k* |
End Function
' O; k$ w' m& ]4 D$ \: ^' |Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 0 ~+ z/ U& A- Q; c+ Y/ J
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) . m/ t9 ?: E' m& \$ z* S; m
End Function 8 \, L" ~1 q6 y- T
Private Function HexToNumber(ByRef pStrHex) * u) o6 ]# \0 B) i7 ^  o$ }8 C' ~
HexToNumber = CLng("&h" & pStrHex)
# Z5 e; q2 g; Q2 }- y! mEnd Function
* Q+ q8 [9 z2 \  d) W! Z8 hEnd Class
, v0 J; s% x. D( [function Encryptstr(Message)
4 W0 }' G- a6 f$ F' dDim LngKeyE
0 h" j) M  [/ P! g9 K8 eDim LngKeyD ( ?) P2 Y7 X% B1 ?
Dim LngKeyN
1 C7 r4 C' X! q$ X: n' wDim StrMessage + g3 x* u8 [: E  m4 z! i
Dim ObjRSA
6 Q1 j: U# \: J! ~5 q' hLngKeyE = "32823"
# x" w3 {, I# x: I& rLngKeyD = "20643" , a! L6 ?5 R/ O6 P% H* o
LngKeyN = "29893" # e4 h5 X: w% k* S1 l9 i
StrMessage = Message
4 l# h9 T+ ?4 t. r& ESet ObjRSA = New clsRSA
4 p6 b$ S6 Q/ r# K$ k! BObjRSA.PublicKey = LngKeyE
5 x/ V! k1 s* V6 B- gObjRSA.Modulus = LngKeyN 6 Y2 h( Z# T1 l
Encryptstr = ObjRSA.Encode(StrMessage)
1 U# Y4 W, @; OSet ObjRSA = Nothing , Z% \% P" h- |6 z/ z. |
end function9 {# o# }/ ~3 k4 L: d! `
Function Decryptstr(Message) 3 x8 }" u$ j7 k  `" s
Dim LngKeyE
7 |3 k9 x+ ~$ |; M" ^! j9 S! ADim LngKeyD & Q8 j2 U" j' H& E+ U9 p  [; r/ ^
Dim LngKeyN
, c" g9 d$ Q+ g- [+ F8 T+ gDim StrMessage
7 X$ E% B, i2 ^. i! [0 a& lDim ObjRSA ' b! ~  n' r/ d' h: M
LngKeyE = "32823" 2 a& ?2 T# Q: b) I
LngKeyD = "20643" , z" U! N5 w( ~1 }/ x. Z
LngKeyN = "29893"
0 B  E, ?! I6 }: h$ s! [, iStrMessage = Message
* X2 S( [1 f/ N' p  F' M: TSet ObjRSA = New clsRSA
# ?( M' P* r% uObjRSA.PrivateKey =LngKeyD 9 R% l/ f. S: n* P
ObjRSA.Modulus=LngKeyN
% F  c0 ]8 Y4 @9 ]7 J' idecryptstr=ObjRSA.Decode(StrMessage) + z( B& c6 N2 L" V5 n; ?
Set ObjRSA = Nothing
: p, {0 S; j6 R  R3 Pend function ( s2 [1 u7 Z3 \% J! z
%>5 ?4 v: s+ `' \* ]5 w& N) P
===============================================
. |+ W, a+ g7 G1 K  n2 G7 k2 r
9 f% T1 I' F0 O/ v. q  b# J还有一个用于测试这段代码的test.asp2 o) T1 t; ?; ^" `
有兴趣的自己搭建个IIS测试下
" [5 n- K/ B5 o& ^6 g' a' R! a. h<!--#INCLUDE FILE="RSA.asp"-->
8 P" j$ ^1 d2 [9 ]1 R% k/ F  z<%1 U5 u  i$ b7 v) a; i
function Encryptstr(Message) 9 \4 |0 _; k6 }4 Q  E: \
Dim LngKeyE
* p4 v) l# i( w' @Dim LngKeyD
0 G8 k. a4 i# ?$ ^' N" Z# o* \6 m9 CDim LngKeyN
3 y: O2 \* u! Y( UDim StrMessage 5 ]6 S7 z, {3 u& [( K
Dim ObjRSA 8 c! `, q. E4 J8 u$ D4 A
LngKeyE = "32823" * K, o1 O4 Z' {
LngKeyD = "20643"   |0 O5 F$ O! p
LngKeyN = "29893"
) n/ n8 B/ X4 z; {8 ^* _StrMessage = Message " {5 x9 X* T( ^& `) U
Set ObjRSA = New clsRSA 1 v6 `$ C7 m5 o0 _6 J" v
ObjRSA.PublicKey = LngKeyE 3 C' M5 j/ @$ @) ]
ObjRSA.Modulus = LngKeyN
: J8 t+ [0 U2 Y: X, Q0 lEncryptstr = ObjRSA.Encode(StrMessage) 4 l0 P9 ]  i& H3 F) k) ]
Set ObjRSA = Nothing 9 Q6 [: i# E$ ~5 g: N
end function
! b. k9 H2 V) f- O6 x( V0 \5 {/ Wfunction decryptstr(Message)
" U7 H. n: I2 J1 w- t% d% NDim LngKeyE 8 b! C* g. n$ C# d
Dim LngKeyD " A  p; @$ M. b) t7 H, K
Dim LngKeyN
0 J8 Z- L2 i/ @# qDim StrMessage
$ @$ l  T& S$ g' SDim ObjRSA " q6 G) p' w/ T+ f( P
LngKeyE = "32823"
* E& C- _9 o; P- z& o7 r, sLngKeyD = "20643" ) F% f" C9 c, L7 ?
LngKeyN = "29893" 0 F" F9 S( Q  l$ d! S  n  r  A2 K: X
StrMessage = Message
' n* [$ {; H8 V' K6 S( ]6 @Set ObjRSA = New clsRSA 9 ~9 |3 F$ x% u% A+ w
ObjRSA.PrivateKey =LngKeyD " M& [8 c0 [1 z' b
ObjRSA.Modulus=LngKeyN
( H0 Y' i& g/ w6 pdecryptstr=ObjRSA.Decode(StrMessage) ) X. V; z2 F1 k0 K5 p
Set ObjRSA = Nothing
- u+ t$ a1 A7 j5 [% D$ E2 [! B' {end function
( E" i: E# A3 \4 ?dim last,first
  a' H, }' E% T9 jfirst="!@#$%^&*()" 3 t' D2 L: y1 ^2 O6 s. G( \
Response.Write "加密前为:"&first
1 V# v( W6 _( D5 glast=Encryptstr(first)
4 X& Q; C" B  W; o' r( GResponse.Write "加密后为"&last
8 I6 B, L5 @, iResponse.Write "解密后为" &decryptstr(last)
% p3 W+ y8 b, X0 b. L5 {, @# c# \%> ==============================================1 E& y8 x& v+ m. s1 T* A
剩下的就是字符的对照表了
( Y+ N8 i" t# d, {  C+ R7 s, K( t. _===================字符集================* F7 O: O* @" b0 g
1_____6EBB
$ n8 x3 J# ~0 y2_____5C1F
# M- a' M' D/ N( L8 y. B3_____4D75# |- S% [  A! n' U# u
4_____26CC
+ y- {6 U& X% h. e+ p1 w, T2 k5_____4F88
6 z- Z6 X1 J' z  P  D6_____3F4E, Z( S- E: q- s" g$ c) T
7_____0A9D8 v6 M2 }  z" n/ e* ~# S- j9 h
8_____1A1C, D5 t+ \- I" t* j
9_____6D207 {6 o8 O* N1 {0 E9 E* `& l
0_____1089- e# U# z3 o, @+ T3 D. m# K
a_____0F3E' N5 |) B" j" u  f
b_____3159
2 M4 [) L" r4 @: k9 L$ i& X' nc_____3517# _0 y3 j+ V; K- h4 k/ h( ~% V
d_____419C
$ `( J9 B! j. p; r/ ?$ l3 L4 n# z, ?' Ge_____615C
: p7 j2 [' s! C: vf_____556F
& r) I2 Y0 f6 b7 s3 R5 m) pg_____2B7F
3 Z4 s, q% `3 b. g" X; Ah_____0F9C, p- ]: b5 ^4 M1 w
i_____00FA) v% H7 g* Q. ?& l) x
j_____5A50& n/ G8 n" |9 x+ G
k_____28508 _2 n- {6 ^4 N' h6 d& E
l_____3E7B9 }; t' f+ y3 P& F
m_____71C5
/ V' t/ i, E: U7 s# u/ Xn_____1FC8# [: T2 C/ }7 d1 x# W( S. @
o_____74C1
( P" y7 W7 h* Cp_____5FB8. ~2 w, `: r: l- P% F& l2 }
q_____6085
8 ?2 N9 r4 O7 s+ n3 P9 U, ]7 s' ^7 Er_____3AC4# h4 O1 T9 H4 l; J
s_____2F50( ^9 h' ]/ A  a. h: x; P
t_____36F8
4 `/ L7 _- {9 [: h+ au_____7010) B& c; h4 g9 Z/ }" l' Z
v_____0B42
1 \7 j9 o/ V5 U8 ?3 ]- G/ O6 f" Qw_____1C7A
" k2 |' t( Q, w% f: }: Dx_____16F8! k& _+ u; G$ L
y_____2EE7
' i; c4 H4 }9 dz_____5CF30 O7 l0 |8 W5 D; a. o; _, h
!_____6233
; M* T4 ^4 g% w@_____3A45
( r) b7 T6 |8 c! H! x#_____2291
/ R4 A9 ~7 L- L) E$_____5D5C  t6 m. M4 I: a- W. m
%_____09B9
/ B; y1 J  s2 O! f9 ]^_____43EA, v( F" i: n/ {8 ?0 u5 ~6 J: [: J
&_____62B9
+ T# V7 q, D" w*_____6301
  V9 w; U5 `+ ~. M; E: Q0 e(_____4659
. E# K$ b) u; B5 y)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表