返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm( c/ k! X# u3 v3 a  b7 X
原始出处:http://www.3ast.com.cm
: d* y8 z7 J/ K% z$ p" Q# a$ K8 O6 i+ |$ v0 H
看不懂的直接绕过
, Q6 L, P: G7 T- Z  \5 ~; H加密前为:hwy123456& D' b) g* D# H) O, _
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
# k) G' E1 n  p) w
# T* b# @  X2 U/ N6 r0 e. Q============================================! G# d: O$ j& ~0 d  O
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 K, ^* o+ ^. J$ F9 z! [# G" i也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法& ^, T7 S# S2 ]. X) n2 `* |
以下是RSA算法文件
4 v/ g5 }2 g0 V, p7 [& h' c% K+ _
9 U! Z7 C% }* ?% M文件名RSA.ASP5 ^, N0 O  q* P( [2 M$ F! w
===============================================3 z5 R6 q) Y8 u- y0 Y
<% ! F4 ~8 m' V) p' n; K9 d
Class clsRSA 0 j3 X7 k* \) p+ s! ]% E) g2 S! Z' T
Public PrivateKey 5 W) c; w5 p6 \. a% Y
Public PublicKey 8 i4 ^1 N% C2 i! A
Public Modulus , M( S& K. n5 P  R/ X0 l) V* C
Public Function Crypt(pLngMessage, pLngKey)
3 B+ x, H6 n* j$ J3 {; \On Error Resume Next
3 e1 L' T3 y' k3 h4 x5 h6 W! jDim lLngMod
! B0 \5 ]. I3 `- q) i0 a  k. gDim lLngResult - S; A% F5 M- z9 i% h& t8 u
Dim lLngIndex . V1 ^7 m  }0 ~7 a7 p7 l1 |
If pLngKey Mod 2 = 0 Then ' q! m7 D# n# l' K
lLngResult = 1 2 n$ Y8 x: w: }4 _$ A3 _  o
For lLngIndex = 1 To pLngKey / 2
: y0 {* G& ~5 B, `+ F. hlLngMod = (pLngMessage ^ 2) Mod Modulus
* N6 t1 T8 I, f1 C% _. C/ H7 Z# ^' Mod may error on key generation
6 E; s1 w' w. wlLngResult = (lLngMod * lLngResult) Mod Modulus $ M" z; p: k' i. b
If Err Then Exit Function " G# P3 S7 y2 l, d% f, |7 y8 d
Next 3 \, l+ U8 e% c! J4 t! _5 @
Else 1 A: D: x3 f0 m7 S% t7 \" l( u
lLngResult = pLngMessage ! F5 A, v3 ?% z. e# C
For lLngIndex = 1 To pLngKey / 2
/ L9 o0 J. t( jlLngMod = (pLngMessage ^ 2) Mod Modulus 2 z# D; ~+ R( o
On Error Resume Next
$ k- K1 }: r, ~& D: R' Mod may error on key generation
- Z) h& P) w) r) H% qlLngResult = (lLngMod * lLngResult) Mod Modulus
$ Q" p8 [- c) g7 j, P$ jIf Err Then Exit Function
9 k1 t1 t8 ~& G* O1 hNext
( L3 L# t% x8 u( {  m3 qEnd If
) p+ Z6 y- K/ w4 v. j  M3 T$ LCrypt = lLngResult
4 J) s3 F: a( `0 f# QEnd Function
1 k* b! _" o4 g  E$ i& G- f* E
0 x7 P3 b. J3 ?. w2 oPublic Function Encode(ByVal pStrMessage)
# Y* J! T/ \, w. U. o6 k% ?Dim lLngIndex
) s- [0 C$ Q, ]3 R7 q; O6 i; RDim lLngMaxIndex
! o" h# T  p/ H$ _  l9 WDim lBytAscii $ f# ^6 q+ @# f, J: o% A7 S
Dim lLngEncrypted 1 }& ]- b) M1 x$ T7 m9 I
lLngMaxIndex = Len(pStrMessage) & ^) F; `- j5 i0 m$ B; V9 l
If lLngMaxIndex = 0 Then Exit Function
$ v- U3 O: _, Y4 O. ~# }; AFor lLngIndex = 1 To lLngMaxIndex ; s# U- @( w& \- n- A3 ~) i
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ D+ Y; H. p6 R1 ]lLngEncrypted = Crypt(lBytAscii, PublicKey)
# ^, F' p3 l+ Z9 |Encode = Encode & NumberToHex(lLngEncrypted, 4)
/ l8 P& ?4 q, V4 ?Next
* V$ g. G8 p) T3 f  XEnd Function
* C+ m' s$ o3 m/ J) |7 g- OPublic Function Decode(ByVal pStrMessage)
+ `9 S1 C( T- e) aDim lBytAscii + G" C# f5 J, P, |' s: p& z: {" d4 \, k
Dim lLngIndex
$ j8 D  {1 X. X* @: k. J/ M' s; ?Dim lLngMaxIndex
# H5 c: S. R' E1 C. N5 x5 jDim lLngEncryptedData 5 R+ S  T4 l2 h4 l
Decode = ""
7 \1 s/ r6 _- FlLngMaxIndex = Len(pStrMessage) 1 Z1 U  z, E- u; X0 l
For lLngIndex = 1 To lLngMaxIndex Step 4 ; A, y* h9 r1 X8 o! c' o
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ' A8 w1 b9 u& ]7 }/ ]5 p; e
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 3 s) Y, O: G& I
Decode = Decode & Chr(lBytAscii) + P5 Y! q& I% h) p  G
Next
. f! j4 R2 S1 GEnd Function : l* D" \3 Y. Y
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) " ]) _- w9 z, V4 U( w& P
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 2 K; b" A% b4 J
End Function * `$ G6 u2 f* p
Private Function HexToNumber(ByRef pStrHex) 6 W/ j* p2 d+ p% l
HexToNumber = CLng("&h" & pStrHex)
7 }' H7 h* _/ gEnd Function 3 E* j3 G/ H, C! X) Y4 Q
End Class
6 Y5 [% t, R  V( Yfunction Encryptstr(Message) 8 K2 P; A+ s$ k5 O$ I) E4 ~
Dim LngKeyE 8 z! r* n9 [- |4 _2 y$ @! @
Dim LngKeyD
* Q8 y2 q! S( ^! BDim LngKeyN % g7 c- w4 G2 _4 p( f
Dim StrMessage
: _9 [) l$ ~; C) [4 A8 T0 aDim ObjRSA 2 A7 R/ d9 i0 r5 m' z* N9 ?
LngKeyE = "32823" & ?" G: W; H' m
LngKeyD = "20643"
# l0 l% c% t- c7 x, Z; z7 I- P( {LngKeyN = "29893" $ X- O' G* o/ C
StrMessage = Message
8 I' ^- z" ]( ?; e7 ]Set ObjRSA = New clsRSA
; O& e& v  f- X' aObjRSA.PublicKey = LngKeyE
( u6 J' h7 Z2 c( r8 bObjRSA.Modulus = LngKeyN * w' J3 M6 c+ A0 O) N9 d$ F
Encryptstr = ObjRSA.Encode(StrMessage)
* ?6 q' _" Z3 F0 D, C" m6 dSet ObjRSA = Nothing . I. f- R# C3 }$ z
end function
# \. u, p, |$ qFunction Decryptstr(Message)
1 H9 f5 Y7 ?3 l' S% I8 I3 H  N/ cDim LngKeyE
/ D0 {5 k/ C& y: I0 ]+ MDim LngKeyD 4 `) j; ^" T, H* x' S
Dim LngKeyN
: t) Z0 Q2 p8 g& ZDim StrMessage
. F5 K! H' H2 }; k- zDim ObjRSA
- [! h2 x/ o' tLngKeyE = "32823"
2 [5 s) B, A+ t+ VLngKeyD = "20643" : W; ~/ k4 N$ G  M
LngKeyN = "29893"
, [9 E% A/ g! b% R. R* kStrMessage = Message # @  W# e0 g; Z# b' ?# h# n: _4 ^6 O
Set ObjRSA = New clsRSA
3 J; A: Y* M! K+ k9 qObjRSA.PrivateKey =LngKeyD
7 y) U+ [- G/ Z0 F% Z; s0 WObjRSA.Modulus=LngKeyN 1 O1 T2 K3 a0 O% R, o
decryptstr=ObjRSA.Decode(StrMessage)
4 f' @. H! b& u( C5 g/ }Set ObjRSA = Nothing
. F" d- Z) c. i( A* S* send function
0 T& C( O) D( H  K9 [+ L%>+ `, k; F; R: R! o3 x5 R  K
===============================================! U. k3 n) J$ O" r4 ]5 F- c
- B( z) Z7 I; [
还有一个用于测试这段代码的test.asp3 A- s8 g2 W: B) z* L! ]7 E
有兴趣的自己搭建个IIS测试下
0 |! P0 x5 V; o<!--#INCLUDE FILE="RSA.asp"--> / v! q9 F. b+ `) T- D- t# i9 Z
<%
, Y( o" b1 P* x: J& R0 p" r) jfunction Encryptstr(Message)
0 z1 F$ s5 G. R/ QDim LngKeyE
8 z: M/ k2 }1 ~Dim LngKeyD + v7 d- n: C  j/ m/ a
Dim LngKeyN ! E0 Q' \. q- M0 V. W2 i
Dim StrMessage
+ I- ~: a" q% q; mDim ObjRSA 4 S+ F' s* j- C( Y) z( [
LngKeyE = "32823"
+ [3 F! h9 n( ?4 pLngKeyD = "20643"   C; W6 t. y' c
LngKeyN = "29893" " H8 E" e' @% p) p( _
StrMessage = Message
! d  l1 [7 v" o6 ]: b* ~" YSet ObjRSA = New clsRSA
& j( h/ P! ^8 @/ dObjRSA.PublicKey = LngKeyE
, C2 d% i8 b4 WObjRSA.Modulus = LngKeyN
6 H9 u% U  u( ^& n' P6 ^/ W/ _Encryptstr = ObjRSA.Encode(StrMessage)
% X/ S6 F/ p, f, Y# gSet ObjRSA = Nothing
3 e2 t  a+ Z+ W' q) B5 A. ^end function
  E, t' q; ?1 a6 @) Vfunction decryptstr(Message) . @! b  B) {  L+ l" M) G
Dim LngKeyE . Z* M) c; Q: W' s1 ]2 p  M, ]
Dim LngKeyD # a$ t  A+ [# e. o6 z
Dim LngKeyN + q) x, n0 A& Q5 q. r, B) i+ r, \6 |
Dim StrMessage
. f! a5 s; \, z( [$ J2 y) [" F0 \Dim ObjRSA + r1 z1 L% Q+ T1 @. K  s
LngKeyE = "32823" : ~/ Q+ }9 P+ p( X; m- d
LngKeyD = "20643"
5 Y5 z; b; }3 o$ y, ]  X& LLngKeyN = "29893" 9 W. S- v) t% h2 M' H! |
StrMessage = Message
! h! f; Z! G" Y  P9 J2 I. ySet ObjRSA = New clsRSA 0 V! `" L7 V2 C9 y! [
ObjRSA.PrivateKey =LngKeyD & D: n% P& E' [
ObjRSA.Modulus=LngKeyN
# z6 B; O3 Q  O* g) Hdecryptstr=ObjRSA.Decode(StrMessage) ! r+ f  j  X5 h
Set ObjRSA = Nothing
: D8 C& b  ]1 A2 C) K+ Fend function
% s7 S& }( b) C* v' ?3 xdim last,first
5 k7 i- [, g# H- P" qfirst="!@#$%^&*()"
2 \6 D. x; R( m: r; iResponse.Write "加密前为:"&first & r% J1 `+ d3 E' Q" u) D
last=Encryptstr(first)
' N. s- i4 b" x) }Response.Write "加密后为"&last
- h; O- ~# |6 T" }Response.Write "解密后为" &decryptstr(last)
; [, d+ _1 f. l  |9 ]8 d+ O' F: n! J%> ==============================================
- M  K5 f  F+ x6 Q/ j9 p剩下的就是字符的对照表了
, i. o; @# z& \9 [1 n# I===================字符集================( R$ T) h( U5 s( K# ^6 _
1_____6EBB
. l  D( C/ c! r0 G: w# s2_____5C1F  n/ t. f' D, c/ L1 r% t, G% [
3_____4D752 N1 Q+ u$ S( c( v* ?
4_____26CC! Z1 G* p0 C5 T5 D% a  _, [) T
5_____4F88, f/ n7 T- v: q$ W# {! ^
6_____3F4E5 V' h. E: S9 O' G
7_____0A9D
3 Z0 ]3 U( A  U+ |8_____1A1C' [8 S0 u. J' @
9_____6D20$ |. Y* D0 t# k! B
0_____10898 i) h6 M  d. {: S
a_____0F3E9 N8 i4 |2 k: K5 X) I. v6 I
b_____3159
6 K7 s6 k  Q, y# Pc_____3517
  E) c0 U' t2 Dd_____419C
6 L. B% a7 l+ P) ae_____615C$ M' D+ p6 k- B0 U3 f8 }3 @) @
f_____556F
" I) F+ P) v7 k& J. Z% Y2 Ag_____2B7F, t  v$ {( t2 _2 D
h_____0F9C. b( P4 Z0 z7 [% {
i_____00FA7 w- j1 B) m& [! l7 O
j_____5A50, A, g/ N& d. ]' y' ^
k_____2850* d/ @8 a- M/ T5 E3 P- A
l_____3E7B
, l4 y4 ~' L" w) [9 C1 Mm_____71C5& p% |0 T/ F* X, c
n_____1FC89 Q  o+ G/ C* @& ^; e. I
o_____74C15 p4 h9 c0 C" ~" ^
p_____5FB80 D3 H  A) r8 S" ]2 ?5 E
q_____60857 V) R# w* u: u
r_____3AC4/ L: u3 M  e+ }3 U0 b4 Z) C% `. C. \
s_____2F50
2 r( }* D4 k! V3 Z# h( E* V9 Lt_____36F8# y8 T$ y4 W7 W2 i3 r) T
u_____7010
$ G; G* o- o1 T" \v_____0B427 K: B0 H1 s" q) x0 S" y
w_____1C7A3 Z: _2 p0 F# T- @( q9 ^
x_____16F82 R/ L! Q+ o) b7 @- \# b
y_____2EE7' Z" `. M1 q; O5 E+ y( L
z_____5CF3
! C9 o; I1 x% @& W% F- P. F!_____6233
- j' ~* W" g1 ^6 z3 p4 \@_____3A45& j& \% Y1 D. L) z
#_____2291- W, i* H) w  u3 s+ L  @
$_____5D5C
5 m9 _# I" T3 _6 k5 B%_____09B9
8 d5 D5 z4 s0 \- _( ]2 G9 `^_____43EA
  e# P3 P: S- S: I6 A&_____62B9$ r) n6 b0 u9 a2 u! r3 B
*_____6301
: _0 z$ d3 @4 @3 q3 o, Q(_____4659
: q/ R( g* A) q- b. j" F9 F)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表