返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm6 B# ~& r9 ~6 L; P
原始出处:http://www.3ast.com.cm7 ]* p5 L& W  ]3 N! K( f4 Q! _2 Y
7 U8 |& {3 S$ s- l+ E
看不懂的直接绕过
9 o$ o% ~- g* y加密前为:hwy123456( h9 P" t3 E( [4 P
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E3 I& u# F% k, r) V
) s$ ~3 f  a5 ~+ p3 p! P& ?2 ]8 q
============================================
6 m8 Q! i+ r* S/ d4 ?, F上面是当时自己校内的心情。现在已经解破出来了,分享给大家
  I* x9 y* r1 S* ?也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法$ o0 I5 N8 H4 }, F! G; O9 f* [
以下是RSA算法文件
5 X# ?  D8 q4 j
  G1 k2 w( e9 k. y7 A6 z文件名RSA.ASP
- B: c, ^% t- X7 C===============================================* q  a; a0 j# a2 Z( `: C1 F
<% 4 x! E( f* r' R9 a: Y
Class clsRSA
* O. w- H# r& O  f0 MPublic PrivateKey " T  x" h0 K# e0 s$ R
Public PublicKey
' E+ \' w+ H: `% H3 oPublic Modulus ! h' ^% s- P$ v$ w
Public Function Crypt(pLngMessage, pLngKey) 5 ]+ g/ V; }' y
On Error Resume Next * P9 y7 P- E  K
Dim lLngMod
5 {5 f* T0 J) a1 uDim lLngResult & O3 F% m3 S5 I( e" l; m' P
Dim lLngIndex
: t" [! ]0 C( t0 S" PIf pLngKey Mod 2 = 0 Then ) A4 e7 Z+ F% L* T" I
lLngResult = 1
  C" W/ s$ t4 _( j: u; tFor lLngIndex = 1 To pLngKey / 2 5 y. {, F# y' i& ^5 ?- P9 }' i
lLngMod = (pLngMessage ^ 2) Mod Modulus
1 Y# E1 [+ a1 r3 P$ I: o' Mod may error on key generation ' T$ M, O$ Q- V" ^4 H# ^: C* b: v
lLngResult = (lLngMod * lLngResult) Mod Modulus ) @2 b% x- E& c  u- d5 c
If Err Then Exit Function 3 ?' ^; @. V. ^+ z0 T
Next
1 ?" R0 v! J* r. w) d: n1 ]Else 0 q+ u9 V4 `  ], k4 |; ^! j. ]; c
lLngResult = pLngMessage + o0 U6 @2 S9 Z, T( [. r0 y  ?- `2 ]
For lLngIndex = 1 To pLngKey / 2
+ \( r2 f% F7 {; X6 vlLngMod = (pLngMessage ^ 2) Mod Modulus
# p; {3 \1 f  t/ k  K) aOn Error Resume Next 0 O2 T( p) _# ]2 {) n
' Mod may error on key generation
. `% L/ N9 ?' d3 U. N7 k, qlLngResult = (lLngMod * lLngResult) Mod Modulus 9 I9 {& P( M- Q' Z% ~6 l, ?
If Err Then Exit Function 8 }8 y: Q* [$ @
Next 4 G1 G/ E" w  }( {3 S# h
End If
6 R, }$ \) u, r" j* P; W; X% E6 p& UCrypt = lLngResult ' u- R6 [  A$ K
End Function
) y0 v$ j( N0 b; M. }: T( E, {' C/ g
6 ^: ~" i- W0 n) oPublic Function Encode(ByVal pStrMessage)
5 D% t5 K- t$ N6 f8 BDim lLngIndex ) ]5 B- O" I0 \! {
Dim lLngMaxIndex 5 }+ _: v- k+ B$ h8 K
Dim lBytAscii & _* W4 x2 Z0 M
Dim lLngEncrypted
5 u& @- _7 o' Y% llLngMaxIndex = Len(pStrMessage) 8 s6 O% Y  ]. g" A
If lLngMaxIndex = 0 Then Exit Function
7 X; N. t3 a3 Z& ~For lLngIndex = 1 To lLngMaxIndex   s+ }, [% O: `3 ?* g
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 1 P( [8 H% m/ ?& O/ b
lLngEncrypted = Crypt(lBytAscii, PublicKey)
7 D& i' E, n# mEncode = Encode & NumberToHex(lLngEncrypted, 4)
8 h; b) x! G2 I5 V2 O- VNext ; \  V/ _) r4 W; O$ L( `( n
End Function 5 i1 ]' t, h# F' f, _5 V/ I
Public Function Decode(ByVal pStrMessage)
4 d8 z$ v& {9 F9 X$ C# CDim lBytAscii & l9 t' a% Y  Q% V
Dim lLngIndex
$ y) h# P" t5 K: U, E6 SDim lLngMaxIndex
' ^9 q% B  q! }* b1 u+ T& ]# jDim lLngEncryptedData 7 M+ Z  t! n3 c4 t& u- M1 Y
Decode = "" 8 c: U' s- d& d3 a8 A! g
lLngMaxIndex = Len(pStrMessage)
, s4 O, A% l, [# a% nFor lLngIndex = 1 To lLngMaxIndex Step 4
0 d  I1 E8 w. z5 @lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 u7 Z- a, I. l9 ~# V. k" n% P. }9 H
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
& A& ]1 ^  G' ^" z: O2 [Decode = Decode & Chr(lBytAscii)
# }7 ]# q2 Z% Z% T. G: h! u: G4 ^Next   ]$ J- H1 W. c/ P( g. O! r
End Function . _. D& V! a/ e* a' x5 Z' x! U/ A1 u
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) # T) ~4 R+ i0 {9 O  u( n1 j
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. r* Y+ I. w5 C) {) KEnd Function
' m" H1 a5 w8 BPrivate Function HexToNumber(ByRef pStrHex)
6 {" r) ^& D( Q2 IHexToNumber = CLng("&h" & pStrHex)
" d% @$ U( j& f5 U# [. j. ^. k! T: \End Function
/ _) a4 s# u' k1 N( l0 I0 c8 E, [: fEnd Class ! W& o3 a8 C4 u4 U0 N
function Encryptstr(Message)
$ c6 b- p' k2 }+ C% N' ADim LngKeyE # }2 R3 g& |+ u4 x* ]" Z+ V6 k
Dim LngKeyD * K. f% O- V' C! \) O
Dim LngKeyN ! O3 i/ P1 z4 ]! b" ]3 G4 E8 V
Dim StrMessage
& S$ U% r( b4 NDim ObjRSA 8 ~8 T: p  L4 J' {
LngKeyE = "32823"
( O" M/ R; v# l  u' oLngKeyD = "20643" 0 s* t* }- y6 j6 \
LngKeyN = "29893" : t# M( O$ T. g0 \" k2 b* ]$ q
StrMessage = Message 7 R: u5 K7 _- ~& `! O4 X$ j0 ?
Set ObjRSA = New clsRSA " W# O" f' O0 V4 s& c
ObjRSA.PublicKey = LngKeyE
: |. J, u) j* _  V. q# v/ l8 T" pObjRSA.Modulus = LngKeyN ' g* k+ K, z9 E' Q
Encryptstr = ObjRSA.Encode(StrMessage)
( V( P) o* @* ?  Y% P( u: Y/ Q- I0 tSet ObjRSA = Nothing
' G1 t$ }/ x& N% c& g! Send function
/ `4 J  v( n- g- b' A: O! oFunction Decryptstr(Message) ! Q4 }, O( y. [2 Q, N
Dim LngKeyE 4 |+ s1 r2 \2 v7 [- k0 v3 Z
Dim LngKeyD
6 [9 _, ]& N  r  l' V6 U: h. rDim LngKeyN & L" d5 W& t* J
Dim StrMessage
3 A8 a* E% M2 d; t* |Dim ObjRSA
+ [; f; l. F# q. x  i; m: |* z6 D$ nLngKeyE = "32823"
# \6 X) a! A$ W8 H8 r+ g  o. FLngKeyD = "20643" 5 F9 D! E+ {; r) N8 I
LngKeyN = "29893" 0 S" N- v5 J8 v+ T( [* N
StrMessage = Message
5 \: x. j' T9 P. PSet ObjRSA = New clsRSA 6 |: ~1 b$ B' s2 N
ObjRSA.PrivateKey =LngKeyD * T8 n, e: o! C( Z/ |/ I) F! J# M
ObjRSA.Modulus=LngKeyN , l, m4 _3 e8 V; b3 G# \: o
decryptstr=ObjRSA.Decode(StrMessage)
2 l- g+ B1 n/ y  x/ OSet ObjRSA = Nothing
2 u+ b5 M5 p0 Z1 l% n* send function * v4 v2 W# y- z( p' i
%>% D0 u: T9 f$ a. Y3 a
===============================================8 q* O' O$ f7 d4 v% I! [# F5 |* P

! v) J3 e$ ~! _: m还有一个用于测试这段代码的test.asp- J4 A1 U' b, X8 a: `: z3 q
有兴趣的自己搭建个IIS测试下9 W: w, g: x# y
<!--#INCLUDE FILE="RSA.asp"--> 4 [! m, d) C" _' E4 q/ [
<%
7 B* m% W  |( }, c1 h/ A" C' Yfunction Encryptstr(Message) 5 i  Z* Y3 Z0 a2 T& k
Dim LngKeyE ; T" T0 [. \4 i
Dim LngKeyD ' M& V2 C0 }$ s/ ~5 c% _. @
Dim LngKeyN
  _& l& D2 c2 MDim StrMessage
  N- Z& o& F4 w& a% l( H3 D; ADim ObjRSA
$ k! f4 P4 P3 k; f8 e, gLngKeyE = "32823" 1 M# o' g7 y- x/ m
LngKeyD = "20643" . [1 M, G. C* |; V
LngKeyN = "29893"
  x) H* H( Z: E5 U4 nStrMessage = Message ! p% ^2 `& j* l
Set ObjRSA = New clsRSA 4 X% e& B+ ^) m, z' e
ObjRSA.PublicKey = LngKeyE
$ d3 E" g8 P! O4 G6 QObjRSA.Modulus = LngKeyN
9 Z( U* f& n* v8 EEncryptstr = ObjRSA.Encode(StrMessage)
: l1 E) T% t2 q  p& E. E" v* WSet ObjRSA = Nothing
8 }2 Z* I2 ?# ^6 @end function # `/ a) W7 g3 Y0 |
function decryptstr(Message)
! w4 D3 H. }, K! _+ x. VDim LngKeyE 8 }1 X0 \( \9 ]2 T$ K* ]' ]! W1 q
Dim LngKeyD 3 q0 H9 B* r. k4 ]( K" ?1 v( ~
Dim LngKeyN
& ]+ m9 T! O9 o0 i6 C; ?Dim StrMessage
0 J" {4 R$ c1 IDim ObjRSA
2 H9 B, o. h( N0 qLngKeyE = "32823"
/ U" l# M9 P4 N* S( ]' u3 OLngKeyD = "20643"
% k8 |8 H6 f# r1 t! ?* A& ?LngKeyN = "29893"
$ Q$ G% F; e: G  R2 H' [StrMessage = Message
0 X% j6 F, U! ~6 X0 _Set ObjRSA = New clsRSA
' j$ o; i( A! O" E4 v5 HObjRSA.PrivateKey =LngKeyD
1 m& U1 Q: Y' N1 M8 |+ R3 _8 wObjRSA.Modulus=LngKeyN
; E; D0 F! n+ [0 I& e8 K: ]5 Ndecryptstr=ObjRSA.Decode(StrMessage)
# m. l" c4 ^! z6 @/ YSet ObjRSA = Nothing 2 y+ k. g/ z$ B
end function
  d9 g8 ^) K: x6 ]dim last,first 5 W& s5 i( g# s3 A7 b  @
first="!@#$%^&*()" & E' k2 p3 _! @' J! |% t
Response.Write "加密前为:"&first + M9 N- T% V/ O/ m
last=Encryptstr(first) ( ]/ O1 N% z1 E' H
Response.Write "加密后为"&last 5 T' R% F  r5 G2 t# U3 M
Response.Write "解密后为" &decryptstr(last)
) X% B/ ?0 d: R! ~. B, l%> ==============================================
$ O" Y- u( p6 J, j" p! a: z: O剩下的就是字符的对照表了0 L/ x/ M( O% M. N: {# p7 t8 p
===================字符集================
0 _: `! H' c' R1_____6EBB
  |+ }: z; q: T3 I* u* A: X/ v2_____5C1F
' c6 N( n8 p9 g( w3_____4D75
+ @" \/ q7 ^: @4_____26CC" B% J( f5 V" L' K
5_____4F887 B6 L' B* A" S- N/ {9 |+ F( Q
6_____3F4E
/ C5 h, @( O( R$ F7_____0A9D
# ?& @9 |. e- U# e# r8_____1A1C2 n: w2 j1 I/ S+ t: P  L
9_____6D20) L3 S7 E; ~0 C5 Z6 {( z! B9 ?
0_____1089
7 N. w( b8 g. U+ r) i) Xa_____0F3E
; j- _; f. l7 T, a0 Jb_____3159
% H- C/ q! s9 h+ ^4 }6 ]( e& A$ Mc_____3517
4 E9 q2 c$ S6 f& D+ Nd_____419C' J, N0 e* w7 W" z
e_____615C
, R( R6 e; R+ r/ d9 c0 }f_____556F
5 t0 ~. C$ o8 p' I0 l4 ~% j; qg_____2B7F! v8 o. l* \3 ^8 z$ f7 R7 k
h_____0F9C  _! {/ f1 f1 l5 j1 Z" L2 Y. d8 Z
i_____00FA
% r! t) q  j) G% a3 D( f; Q7 ej_____5A50; b! n  R7 h5 w# g7 K  c
k_____2850( E/ I' ]* ~3 ]! C* ^- P
l_____3E7B; z* t, B! J) _5 ]3 y" n& g6 T
m_____71C5
3 ~! s9 G- X! K2 r$ U6 m. jn_____1FC8. d% L; v4 k. j$ g
o_____74C15 w1 T" Q& l0 P
p_____5FB8
  {3 m0 o: F# ?8 b* g3 Fq_____60852 Q4 @. V; f% I$ M- L& v! u$ C+ Y
r_____3AC4* _' X- {7 W, V' v
s_____2F50
6 \, G  o, Y4 V; o/ X- zt_____36F8: \  h' {+ O9 S# i/ T, p7 l
u_____7010; d- H1 \: d- H- A4 v5 K
v_____0B42+ K  ?2 p( ~; Y
w_____1C7A
( Q3 q' R* t$ i2 V$ O5 zx_____16F8
" O5 l$ l# U5 o2 V2 Ry_____2EE7
2 I3 K( J8 j7 [& oz_____5CF34 [; ~/ J, p8 X3 _3 T1 e. Y
!_____62335 u+ l0 t3 W4 s3 M9 J
@_____3A45
. H% N) O) F# e( n0 A2 V, w$ @& G! e! V#_____2291
/ z# k' X4 h: j8 L' j$_____5D5C
) z1 T& U0 e/ `" r5 [# r%_____09B9
2 G3 Y; z6 F7 k3 M1 `6 `& }1 x^_____43EA% `+ z. G. R: y, X( N' w, {
&_____62B9
. R2 v2 A+ ?8 u2 `3 ^3 _! H*_____6301
- _/ j5 C( \& W3 w1 S2 r(_____46598 A/ N5 V8 D) x) P4 E$ K6 r
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表