返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm& p: P$ \) U; a$ u7 ^) i8 H
原始出处:http://www.3ast.com.cm6 Z5 b+ ]7 H. T8 w% j& c/ C7 u, ^* Q

% l6 C/ h! K% I% p* s看不懂的直接绕过0 A/ _; I6 K" D. o) j+ \
加密前为:hwy1234562 d  X* J; f% b, R2 I* W) i3 [, o0 j$ {
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E( t3 n9 Q" ~, m% z( F2 k

8 p3 P, |4 Q: T: c- n" t3 U% [============================================  `( \# D6 i" N
上面是当时自己校内的心情。现在已经解破出来了,分享给大家) J- G8 ]1 D9 l( P$ n& ]
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法) r) s: U% W$ c, [+ t" [2 D, c- p
以下是RSA算法文件
/ Z% y9 v$ s5 |$ n6 d( b+ {( K- m1 w9 }7 m  M
文件名RSA.ASP. t8 s- h4 K; p: L' Q6 C& W5 |
===============================================
2 X+ P" C$ c; n2 k, o; F$ _<%
( [; i, w7 p1 I& NClass clsRSA - B4 ]2 Y3 H  o' S6 q" o5 m
Public PrivateKey , C; F8 i& r7 H; E! h8 P$ M
Public PublicKey : ^% u* @; [2 Q1 m
Public Modulus 1 J* P2 G4 n' Q+ K3 G* B& j( w" F. K) E
Public Function Crypt(pLngMessage, pLngKey) + X: S( k/ l- L& Z7 ]' @4 e
On Error Resume Next , g: J. I9 }/ X' l+ U( Q- W5 K
Dim lLngMod 7 S# {* t* E8 @* p
Dim lLngResult ; _, w) l6 K8 F  C/ h7 [
Dim lLngIndex
+ D  u% E! Y5 J. Q: C$ |, n; GIf pLngKey Mod 2 = 0 Then
! b3 z# F  b9 {4 |' u; vlLngResult = 1
% W  O* a& B9 |% K( mFor lLngIndex = 1 To pLngKey / 2
: a4 d. M! j+ w3 y1 ]  A* w; hlLngMod = (pLngMessage ^ 2) Mod Modulus , O4 I. ]( @, e; e1 G  m
' Mod may error on key generation 2 L: e& c$ X8 \8 j
lLngResult = (lLngMod * lLngResult) Mod Modulus 1 }" r6 v# J/ n" F( C* `
If Err Then Exit Function 1 K" x5 G% }0 F! i: C/ b; Q& t
Next
7 k. m( M) p6 {) B4 I6 b  gElse 7 X4 ]# v5 v! _4 g
lLngResult = pLngMessage
+ u7 H$ g- i- }For lLngIndex = 1 To pLngKey / 2
$ K2 U1 ~, A/ k7 y: K# DlLngMod = (pLngMessage ^ 2) Mod Modulus : \' K' \0 t5 T. J+ H2 ^
On Error Resume Next 1 }7 `2 k) J9 l
' Mod may error on key generation : _3 N& ^4 o6 x! F
lLngResult = (lLngMod * lLngResult) Mod Modulus
; Q9 [+ X" m7 c1 g. rIf Err Then Exit Function
: H" h, a' z! ~/ w$ k3 l6 `Next % {5 o9 ?6 Q: Y0 w8 U8 s# `
End If
" s! e4 U! t4 J) Y- ?) ZCrypt = lLngResult
$ ^1 t/ N# Z2 ?; O7 OEnd Function) n( p0 g. T- H, D
0 b3 H1 d' L  j/ t1 P6 l
Public Function Encode(ByVal pStrMessage)
# `7 a1 k2 B+ {& B* qDim lLngIndex + P' O" C. ]$ y
Dim lLngMaxIndex % p$ S3 ~8 p* G) j; ^* t
Dim lBytAscii
7 o/ L. P  _& j& w- r5 [Dim lLngEncrypted 3 Q2 G2 f: b- s; a; O1 J
lLngMaxIndex = Len(pStrMessage)
! I: w5 ]! D1 F1 d$ O7 gIf lLngMaxIndex = 0 Then Exit Function
1 ^& r% z$ _, @/ yFor lLngIndex = 1 To lLngMaxIndex
' {3 ^) g/ n1 s( N1 P, R: d4 MlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) . @3 m2 x& e8 J# {- M& S8 A% M
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 f# a, P; L) X1 G$ o+ r2 t0 f
Encode = Encode & NumberToHex(lLngEncrypted, 4)
% d  U( W# b7 rNext
' p7 s* R8 g1 l8 U" g0 ~' O' R5 VEnd Function
' }  B6 k8 U+ A. z4 P/ C6 ?Public Function Decode(ByVal pStrMessage)
# j. q; _. {+ F; |- o( }. u6 f4 hDim lBytAscii - _  P/ B  E4 [
Dim lLngIndex 9 v# G% F' ]2 n- O9 u- u1 |
Dim lLngMaxIndex
0 I# R9 D- M3 ^% H) UDim lLngEncryptedData , L" R( m! [: f
Decode = ""   _2 T0 P6 B9 q* l
lLngMaxIndex = Len(pStrMessage) 9 c1 s! I, N. i$ c5 _/ Y
For lLngIndex = 1 To lLngMaxIndex Step 4 / f( e) g4 S: ]3 ]6 j
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
2 u( ]8 n' }7 \lBytAscii = Crypt(lLngEncryptedData, PrivateKey) * B& v! P# c, |: S# N- i
Decode = Decode & Chr(lBytAscii)
6 g7 _. k3 z/ lNext
0 u6 I" o6 p. s6 k  X2 w( FEnd Function
; d# t/ D' W3 m1 u- bPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 8 E; a, M' ]8 p- `: B; L( r* p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ! w+ B/ v/ C0 P6 T
End Function + `2 f1 t# V% b9 Q" ]) |: G
Private Function HexToNumber(ByRef pStrHex)
  U9 s& W( f/ u$ z4 lHexToNumber = CLng("&h" & pStrHex)
8 C) _8 o* @/ z' l( zEnd Function 5 U8 X8 h- r1 _
End Class
! ~6 R  n4 c* j+ I% f9 A7 t1 ufunction Encryptstr(Message)
1 y4 L& A) @  [- d$ p* y( u8 rDim LngKeyE 3 \! `8 \. f5 o0 I' B
Dim LngKeyD
' L$ M1 H+ B$ r  w6 [% P; J$ bDim LngKeyN 8 a* w- E: c+ N6 E
Dim StrMessage 5 U( k' \2 v) R4 z
Dim ObjRSA
1 c! y9 t0 y: W$ W6 `" q& P; xLngKeyE = "32823"
* C( k/ t; g) z1 ]2 x  T6 s7 S% WLngKeyD = "20643"
7 h# W7 r; }* K9 {1 r  T2 I% kLngKeyN = "29893"
" r4 b5 `5 H7 F3 SStrMessage = Message 4 O/ H5 M- g- e- S
Set ObjRSA = New clsRSA 8 A) ?# H; U$ K& ~7 W
ObjRSA.PublicKey = LngKeyE ) B$ @9 {1 \4 j- x- c: j
ObjRSA.Modulus = LngKeyN : `) t& L- O7 {2 r
Encryptstr = ObjRSA.Encode(StrMessage)
1 a' O& J' C* W+ K6 J+ kSet ObjRSA = Nothing ) J  v! d! I! f% N0 l* I
end function
+ h4 m. b5 r- ~+ `4 JFunction Decryptstr(Message)
" @# T. X" ]3 G8 h5 r& I$ |+ C0 bDim LngKeyE
; }' z& c$ p+ h; N9 CDim LngKeyD % L8 n2 d& i0 y8 D
Dim LngKeyN
2 C" x$ r5 j1 I" i2 e+ L: ]Dim StrMessage - N2 r. }+ a( s
Dim ObjRSA   a# `! |/ V0 i0 x5 l
LngKeyE = "32823"
7 R' j+ J5 p  q5 V6 ]% l, aLngKeyD = "20643" 4 b: L" D: ^3 P) ^7 a9 Y7 o
LngKeyN = "29893" ' j  |0 w8 H) T; [% e" Z; ], g
StrMessage = Message + Q" K% z  J- r6 m% Y8 ?5 G! H8 z
Set ObjRSA = New clsRSA / `% [, y  F+ p! S
ObjRSA.PrivateKey =LngKeyD
. _4 Z  ?' C' B* U" d% AObjRSA.Modulus=LngKeyN
) V7 j: n0 c( c0 K  j, k0 o2 H5 X. Mdecryptstr=ObjRSA.Decode(StrMessage)
- i& P& C+ R. ~$ }Set ObjRSA = Nothing
+ _+ A' b3 p- @( wend function 1 x* D% r# U" }0 Q2 ?5 G
%>
% T% Y& W$ {, J; n% g===============================================
/ ~* }' o, H$ K% a
& a  c2 O+ h. b7 z还有一个用于测试这段代码的test.asp+ B2 Q! P0 M# f& c3 m
有兴趣的自己搭建个IIS测试下
7 U" v7 T8 R) \- A  k<!--#INCLUDE FILE="RSA.asp"--> + Q) s, |$ d* Q! c. z  j/ R
<%: e) ]5 p3 X: |& p
function Encryptstr(Message) , J6 ?' f- {1 X* @+ ]% R1 k1 r2 N
Dim LngKeyE
0 a0 L- n. \. ^+ r7 O+ ?Dim LngKeyD . n0 s: M9 A! l6 a3 x4 G) p8 H+ d
Dim LngKeyN , R. k$ L6 J  ^: W) _) `
Dim StrMessage , x' c/ C& n9 j/ Z9 r4 w$ g% _
Dim ObjRSA
4 ~, A$ ?. ]4 p# K8 E+ q9 f# DLngKeyE = "32823" ' E# V4 x% z! R; K3 r0 _/ z
LngKeyD = "20643" + ~  [1 D! z. b2 C; q; c
LngKeyN = "29893" 1 }* c3 S  ~9 ^+ a/ H( h  }1 s
StrMessage = Message ! L5 q8 U7 T# ?8 p. J$ S
Set ObjRSA = New clsRSA   I0 a  V' u4 U: L( ^6 w
ObjRSA.PublicKey = LngKeyE
2 i* I3 g5 C& v2 G3 h9 ]  UObjRSA.Modulus = LngKeyN
& K' ^/ v. ^4 i8 J" ^Encryptstr = ObjRSA.Encode(StrMessage)
8 I7 n/ a! Q# GSet ObjRSA = Nothing
" K, }# M" O2 |; v  ]end function 1 F3 `: }$ H# H; H, c
function decryptstr(Message) $ ?( O# X0 U. ?% _0 G* @4 H& d
Dim LngKeyE
7 \$ E; o" A) g: U' Y! HDim LngKeyD
1 S4 D( b+ b* i$ t2 qDim LngKeyN
( ?& w) h7 S$ b  pDim StrMessage
6 E4 J6 y% W  K4 `3 jDim ObjRSA " V6 x. Q; c* N, }8 k
LngKeyE = "32823"
# _$ {8 V. @% Q1 y- ]LngKeyD = "20643" " O. H! r$ g' t
LngKeyN = "29893"
) U& y1 G5 G1 c; ~7 u4 ~" o% AStrMessage = Message 4 j1 b3 h6 g5 a$ _7 f3 ]# e
Set ObjRSA = New clsRSA
6 r9 G: H1 x7 w1 o( t# YObjRSA.PrivateKey =LngKeyD
  Q- }5 L1 T3 x. k, ]" S; r( A& gObjRSA.Modulus=LngKeyN # b  m3 I  N  R( [
decryptstr=ObjRSA.Decode(StrMessage)
6 k* V3 u' f# Q' [: f( }9 ESet ObjRSA = Nothing / Y6 j; O& q$ {7 `; B' a, G+ S
end function
5 K9 \! [& v4 J: C' `$ W  zdim last,first 2 A' S' t# P( J  q& J1 i( A0 I5 i
first="!@#$%^&*()" 7 Q" I' V8 ~+ v9 P3 q# j- u6 S
Response.Write "加密前为:"&first + y/ Z9 U9 h. ^. C2 Y% @
last=Encryptstr(first)
5 E& s( R6 Y+ s* tResponse.Write "加密后为"&last " l5 g4 S: @, n3 q
Response.Write "解密后为" &decryptstr(last) 4 e) p) x% s; e, @7 v  e7 Q/ [
%> ==============================================* Z8 D% L: c- q4 v
剩下的就是字符的对照表了6 k. A* ~" C* l6 E. o' h! L
===================字符集================3 \2 m& G, G8 d; L9 @% |' i8 ]
1_____6EBB
0 j3 z( _  J3 n+ d  I2_____5C1F
; w& U/ O( @+ u  L7 u3_____4D75
  x2 z7 d) @) B" t: n7 @. Z4_____26CC& ^* `2 K  x8 K5 C" M, E! R/ E- W
5_____4F88
9 y! A. b: R- n6_____3F4E
4 D! A4 N. V* q7_____0A9D; F; O/ A8 j0 d; ?
8_____1A1C1 O& d, U; J' N" m
9_____6D20+ T8 ]- P. C+ X) T$ N6 i
0_____1089
  r( D' e& ^0 F2 H" za_____0F3E
1 F( s, A: @, t. W& q& ib_____3159( ^, K3 D# ]% L/ a& Q. M1 n
c_____3517. e, a( f( N, B; b$ Q! K
d_____419C
0 `6 d. _$ Z" F! m. pe_____615C
' A/ b4 s8 k) [  mf_____556F
4 @  p' K! ]  |; y& S( V4 Vg_____2B7F
3 j: L+ c1 V! Y9 J2 z' c: \/ X) }+ Mh_____0F9C
. V  A/ m/ D: J8 Ii_____00FA
( t3 v% {- D  V5 {& H" bj_____5A505 h$ t/ y0 ^7 z2 s& Q* E+ Y
k_____2850
; I9 X' \7 S2 f+ _6 el_____3E7B  b; Z" u0 g% K0 Z
m_____71C5
; a0 {% K5 t" @( f9 ~  Hn_____1FC8/ S+ T6 p* l; @; w
o_____74C1% m  C% f# I) B+ Q
p_____5FB8
; h, }3 g! ^& V+ g6 \0 c, ?; @q_____6085: h( Z* V! F: F3 F0 d2 @
r_____3AC4
; D9 D6 L) y) Ms_____2F50
( d8 s" h! x$ b* l9 \! Gt_____36F8# }' B& p/ G6 c: E5 S8 \$ f* D1 L
u_____7010" q5 u. J+ @" M7 a9 o% t
v_____0B42  ?0 T& ?0 }7 S# C" V* ?1 W1 {
w_____1C7A
0 u  T, Y2 Z, g& b9 x& [x_____16F8
, T  ^. o$ ~4 y: vy_____2EE7  e! m0 m1 z/ {& k+ C
z_____5CF35 y7 }* Z$ g7 s1 q4 Q, }+ E5 G$ j
!_____6233. k* c4 o' ]- C) O4 I! N& `
@_____3A45
% e# h" `  |' P  o- C#_____2291
5 Q3 N& A7 V# t8 W1 y6 ?1 G$_____5D5C
, G# y, t- L* s& q& ^%_____09B94 S9 f9 P- u( i
^_____43EA( Y% ?  m* O) b  B9 S
&_____62B93 T9 `) P/ A" [
*_____6301
: Q4 Z: J" r, y$ w" {) d- e(_____4659
8 ]# G, ^& m- m) Q)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表