返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm, Y5 m: P1 Y$ `/ M$ ~) Q! J% o. ?
原始出处:http://www.3ast.com.cm. I9 f9 V. r% M$ Y: Z
( @7 U( C# p! m; l4 E' u
看不懂的直接绕过) n% k. U2 H3 n6 Z5 {$ w# u
加密前为:hwy123456& J  u- u/ v: T7 U9 g
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" T& ?9 T0 ^8 F( ]
$ S! J) u: B, E' v$ W
============================================
5 _7 x4 n- t, p( G0 w% z) _9 A上面是当时自己校内的心情。现在已经解破出来了,分享给大家
/ j1 y9 b& T) ], L也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法: v( M- P4 M4 ]( _7 Q* w' _
以下是RSA算法文件
7 Z  y' G5 O, C! S" {
  o% S3 D8 d# K4 q  v% A3 P文件名RSA.ASP
* r' x: H' Y5 p===============================================
7 H% s+ q. u  h1 k4 W, l7 Q8 j<% 9 b8 b- |" H6 ]" Q) z- j
Class clsRSA / ^8 p+ C1 b" T) w4 X
Public PrivateKey
5 R4 ^! C+ z! A6 n( J+ v) XPublic PublicKey $ o1 Z) |1 l2 }! R
Public Modulus
$ J- n$ [  {* B; k4 Y4 B1 M0 CPublic Function Crypt(pLngMessage, pLngKey) & r, ?2 Y; O/ X. y
On Error Resume Next , i6 `6 d6 _  w7 r7 @9 o1 @$ F
Dim lLngMod
# O; q! r" e& F, ]  @% s5 d2 N; r% \, ZDim lLngResult
% F1 [/ t5 Y9 M" r. P% bDim lLngIndex , P" q2 C* M& s- _4 v( S; z
If pLngKey Mod 2 = 0 Then 7 I* E3 \% f+ G. w: r+ g$ Q( [
lLngResult = 1 % Z. H, m) k- l: b5 ~
For lLngIndex = 1 To pLngKey / 2
+ N$ n7 l& [$ k: F5 @lLngMod = (pLngMessage ^ 2) Mod Modulus 3 i$ s8 l+ U, U( M& }3 P4 y
' Mod may error on key generation
$ Y+ r) Y& l: N  DlLngResult = (lLngMod * lLngResult) Mod Modulus . ]: x4 P; B1 H9 V- v) d
If Err Then Exit Function   @$ ?' D. j. E! Q- S/ U9 k$ F5 Q' T
Next 8 a( m9 b5 i' b: }2 `
Else ( R9 Z* p" ?* R2 m, C
lLngResult = pLngMessage
6 I: U0 Q* P0 k: n( c3 w. }For lLngIndex = 1 To pLngKey / 2
+ w$ q' Z: x7 {4 G  VlLngMod = (pLngMessage ^ 2) Mod Modulus . e- V  G* y% N  ]% l3 l: }
On Error Resume Next 3 m+ O7 s+ c% K" o9 i0 s
' Mod may error on key generation
* f! Q: [5 T+ [$ wlLngResult = (lLngMod * lLngResult) Mod Modulus
) `3 M) I: z$ n( v8 f" c5 x9 ~If Err Then Exit Function 0 X; `4 g. M2 N9 j- Y- G
Next ( Z( M3 X% K, K6 R; a. u6 |
End If
: i2 L0 G+ _4 m* w# d4 \- HCrypt = lLngResult
7 F0 w  I. _) g+ [7 C0 V3 m, tEnd Function
( s0 h2 w( N% V$ B( p0 r# ]6 f: N3 m- Q6 J
Public Function Encode(ByVal pStrMessage) 8 E" L  G& ^. C+ H8 {* V
Dim lLngIndex 8 s* ~( d: a* ~/ e( Q& P5 r/ b. x
Dim lLngMaxIndex
0 m. K9 S: v; h! C4 ~Dim lBytAscii
; j8 y5 p- f' {8 S) V2 C5 ADim lLngEncrypted * V$ Q( A8 `0 M% e5 n/ J3 K
lLngMaxIndex = Len(pStrMessage) 1 A+ k2 k% {2 H
If lLngMaxIndex = 0 Then Exit Function , F2 B. p! T/ h: H$ U
For lLngIndex = 1 To lLngMaxIndex 3 e# o3 F1 N" O
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
* c$ U* ^; r& r1 V) w3 V& GlLngEncrypted = Crypt(lBytAscii, PublicKey)
, N6 N; i- f6 m! j0 D4 g& WEncode = Encode & NumberToHex(lLngEncrypted, 4) " }/ a9 J$ Z' G4 x. h/ g7 z
Next ) G. h8 S/ y: f$ H# e- J
End Function
* I! `' N- ?# ]2 Y: Q2 F3 N# kPublic Function Decode(ByVal pStrMessage) : E+ |2 g0 ?1 h5 J
Dim lBytAscii
  x% Y" s/ m# R; Z8 L) mDim lLngIndex
6 V/ D1 |9 b6 M; C+ h1 v3 UDim lLngMaxIndex 9 K) h7 o8 K  b% P  I8 J6 n
Dim lLngEncryptedData 0 y. B1 t& y3 R, C8 F
Decode = ""
  t  b2 e" b% k8 U+ J* H' Q5 XlLngMaxIndex = Len(pStrMessage) , }& @: r7 `' R% O2 U( H
For lLngIndex = 1 To lLngMaxIndex Step 4 1 R9 }0 [- P  w3 q' T- `: T/ k; F
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) & d) `0 l% n. [  Q
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
% Z/ l) k! S' W3 yDecode = Decode & Chr(lBytAscii)
: b- L8 f, `7 f# I+ l* ]3 U0 R5 cNext 3 u/ H. @0 m* Y" q% Q7 ]% y; B
End Function % g$ w$ \; s! C* m+ k
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
( A9 _$ n$ ]0 P! @2 W  ONumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. T- x6 b, t6 Q* yEnd Function 9 V6 l. G, f3 k6 P6 o$ S
Private Function HexToNumber(ByRef pStrHex) ; a* D" Y, n+ V
HexToNumber = CLng("&h" & pStrHex) . _0 i; L0 l0 r! |$ O( \
End Function
& c9 ], T+ g# _' L9 d7 ~# ~End Class
3 o! e/ H) m$ s# }6 H" d& qfunction Encryptstr(Message) 6 _- p6 Z; v' t+ k: z4 v+ m
Dim LngKeyE " h# V; t. e& E1 j* q& Y
Dim LngKeyD
8 Z; r5 C- M8 S3 GDim LngKeyN - T& S- L0 z: W$ m
Dim StrMessage
5 p( h7 e/ O; F  n" X  {& g7 aDim ObjRSA
3 G; D* Q3 P6 @- _9 y( y7 A: ]4 x; [LngKeyE = "32823" 7 ?$ I7 F3 @4 h0 r/ z" A
LngKeyD = "20643"
: k+ w5 ?$ m! A$ o1 s% H0 {LngKeyN = "29893" # j" X( W% \: O* B
StrMessage = Message . @2 S7 P/ \6 W! O
Set ObjRSA = New clsRSA
4 Z8 a7 J* Z; d& n+ qObjRSA.PublicKey = LngKeyE
( j, [! e2 `+ l) O* H  WObjRSA.Modulus = LngKeyN
9 ?' N- w, a- ~# f0 c, ~Encryptstr = ObjRSA.Encode(StrMessage) $ }# k6 s4 A3 [) f9 `1 s% K1 p
Set ObjRSA = Nothing / {/ r% [- ?  S* h  B
end function
) I* V  E3 ?7 s1 r, _* s, hFunction Decryptstr(Message)
  ?; m$ m( @9 L% ~Dim LngKeyE 8 w$ }% {1 x) k, v  ?9 Q+ U, F
Dim LngKeyD / I) ^, c4 o' q6 v7 z
Dim LngKeyN 9 V( Z% h4 v8 z( @& l
Dim StrMessage ) ^/ N* Z; k: r! k4 r2 V  e- B  _) z1 V
Dim ObjRSA 9 H; s( h1 g/ a( v
LngKeyE = "32823"
6 i* S- x: W1 q# ~/ @& fLngKeyD = "20643"
; g( F/ W4 x: w( G( X6 r& z$ u/ TLngKeyN = "29893"
& S6 i- k9 h5 u  a, yStrMessage = Message 3 o& g+ }/ J0 S4 U& D6 M( O* \/ x0 ~
Set ObjRSA = New clsRSA   U2 d  a1 r( A$ T; b- v$ o6 w' d
ObjRSA.PrivateKey =LngKeyD
1 l: N7 y( ?* F9 vObjRSA.Modulus=LngKeyN ! |1 V. r  Z$ ]: a5 l9 |0 E
decryptstr=ObjRSA.Decode(StrMessage)
$ G) |. L& l! i6 M* lSet ObjRSA = Nothing 5 a6 w, o; _' L; [% \2 f: w3 i% I7 `
end function / g9 a2 s4 ?0 M2 S" b
%>
$ }- Q3 X: o+ E+ A. @; i===============================================4 A: v2 V# x3 j" F

1 e  \# [1 d$ t5 j. c还有一个用于测试这段代码的test.asp
7 J' z1 g8 ?$ F0 g有兴趣的自己搭建个IIS测试下
* }5 u2 z2 d& O<!--#INCLUDE FILE="RSA.asp"--> 0 l' u/ c+ c1 V+ |1 Z9 P  @3 E
<%6 {3 K7 @" x: f2 U& r; }9 X
function Encryptstr(Message)
* Z0 \1 x" K1 O' S) K8 V5 V" nDim LngKeyE
$ q2 O6 Q9 t; s, T. u& G3 W$ ODim LngKeyD ( j/ s7 @% x6 x. O( E/ o% T  K
Dim LngKeyN
6 {5 b6 V0 G9 @9 H: ?6 PDim StrMessage 2 U3 T0 n8 P! S
Dim ObjRSA % G' g* L+ b% |7 T# \& _
LngKeyE = "32823" " y7 r$ Y& M  W2 @0 Z* u! {3 {, e8 l
LngKeyD = "20643"
3 y3 i+ X& s4 m3 M. NLngKeyN = "29893"
. v# {$ P# X- u. r2 \- E6 T: lStrMessage = Message
# U1 V0 ~$ L5 u5 t. K& p/ w; `Set ObjRSA = New clsRSA 5 ^6 V: `. l3 D0 B6 r2 L+ E
ObjRSA.PublicKey = LngKeyE . g" j: X! x: ^% _  w$ e0 \
ObjRSA.Modulus = LngKeyN
" p$ j; z/ Q, D4 x- bEncryptstr = ObjRSA.Encode(StrMessage)
; L3 `' ]! g1 V/ v0 a4 R5 BSet ObjRSA = Nothing
) k+ X; n1 s9 S; s$ i% Send function
& V) e- ^* _; k3 o& Pfunction decryptstr(Message)
* Z  J! q, k# j7 v8 H. \Dim LngKeyE
% x9 s6 @/ {/ k0 q- IDim LngKeyD
- S* @) K8 X9 G, N: P. ZDim LngKeyN - L  ~5 _6 t# {- U1 Z$ F
Dim StrMessage 4 H7 P2 J* }, d9 W& n1 ~
Dim ObjRSA
& N! o1 i% u0 e  Q2 D& QLngKeyE = "32823"
1 E" z: D( k: e" w, I! aLngKeyD = "20643" # O9 t- b! R  M* u) ]6 U
LngKeyN = "29893" 9 J$ q* u8 i4 c) Y6 D! `3 j
StrMessage = Message
0 D: U9 k8 O% i/ W9 _! LSet ObjRSA = New clsRSA " V' F2 Q8 Z2 H
ObjRSA.PrivateKey =LngKeyD / G  g$ F. W& n0 g2 P. j
ObjRSA.Modulus=LngKeyN
6 s  |5 k( O( }" U  S$ A+ f6 vdecryptstr=ObjRSA.Decode(StrMessage)
8 M2 e$ F/ _4 i3 MSet ObjRSA = Nothing
0 O0 D* ]& y- H2 f0 W" |% Bend function
: ^! H( \9 b* hdim last,first
$ n2 [: ]9 l/ ~/ `+ M$ `; A! R6 Wfirst="!@#$%^&*()"
8 G/ m  K) \" l! c+ OResponse.Write "加密前为:"&first
* _# x( B: l- Q8 |6 @last=Encryptstr(first) 6 J  D( q& S' W' K
Response.Write "加密后为"&last
: F0 ~$ r& y+ Q& g5 CResponse.Write "解密后为" &decryptstr(last)
0 v3 O6 o- d; R5 }1 @5 m" v- o- k9 H%> ==============================================
# G( X' p' f) F5 b( R; G剩下的就是字符的对照表了' d7 z; a8 i8 O
===================字符集================6 f1 y7 ]; a  O3 P: v' {
1_____6EBB
4 t7 C  q* j+ M2_____5C1F
# D/ M0 y7 [9 h2 _) w3 b3_____4D75; y1 X3 Q5 ~4 ]. ]5 r7 w
4_____26CC, j, I/ E1 o2 k. w
5_____4F887 ~8 ^  I0 S$ Z0 e0 w/ z3 b5 `
6_____3F4E) d* F! ?: v, A; ^& D4 Y
7_____0A9D9 n* f4 H' K; L: @9 V/ a: o
8_____1A1C
) F3 Z+ V# u+ h: E9_____6D20
7 S) P/ h7 Y( E% j0_____1089
0 m! P0 a' h3 j7 Pa_____0F3E' w- n+ A' A  Z
b_____3159: p; x5 F+ I6 J/ i
c_____3517
4 t! e9 w4 ]" [. {  j+ ^6 Ed_____419C
! E7 ^+ e/ q& G) h" Be_____615C: E' J7 c8 A- Y) R  Y
f_____556F
! J1 @  B) N, {# o! r6 I- Cg_____2B7F
6 ?7 _) j+ c& l4 X# Y. Y5 |: Ih_____0F9C2 F6 p6 ~6 j* D: L
i_____00FA6 Y+ p2 o& V% Q
j_____5A50
3 h! y* ~: \! D  bk_____2850' O5 T" f' e% ?' A, c- ^3 c; Z9 }
l_____3E7B
( \: A* o& T( F) Wm_____71C5
" G+ |2 @4 M& A) G* }! a% z3 Kn_____1FC8
. j! K0 ^- a7 e0 [$ _7 A$ do_____74C1- u; {4 Q5 c4 W  H2 t; f# B. h
p_____5FB8& c% j) K! `6 ^1 s3 P: H
q_____6085
9 [% U. _) k3 g# h; }r_____3AC4
6 W0 v# T, y5 ]( G1 cs_____2F50
0 e4 F% Z4 n8 U: I1 Pt_____36F8; z7 w4 F3 j1 ^/ B% Z: E% o4 [
u_____7010
. w+ o+ r3 H) s+ r; H. e) pv_____0B42
) W& [* M' U/ F3 g: iw_____1C7A: S: e" k4 v1 d- U  K" x" w# h
x_____16F8
6 w- O: s# g* b" U: L6 O. my_____2EE7* k7 ~2 }/ c$ F8 O# m. R
z_____5CF3+ }% t9 n" G* e
!_____6233
( D6 G2 k" u. y0 u" x* Q, F@_____3A45# ]0 V7 L6 l1 |' ~  {9 J2 K% R
#_____2291
5 l: ^! K3 x; q. G" {7 C% o) s4 g4 X$_____5D5C
" l! ]$ v$ y/ [; ~) N/ B%_____09B9/ W8 e4 w: \9 b" @
^_____43EA; \$ R  ?7 q) n" ~+ ?
&_____62B9) ?4 T4 @! j- w
*_____6301
3 z; T4 x7 v  e) k. @, J(_____4659
. t0 m" V7 @# h+ u  d, ~7 G)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表