返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
' U& j* V/ M1 E0 L, q原始出处:http://www.3ast.com.cm# ^! t' @! H  O) c, H
; K4 ]; s% f3 [3 @$ p
看不懂的直接绕过7 J8 C& @8 \& g3 e/ M
加密前为:hwy123456: a1 M/ M. g! t' D4 d( e" @, ^
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
- N2 \: g) U; }/ X  C
: ]2 |7 \" z- f1 U* v$ h- o, m============================================' ?0 @' N2 F; L! W
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
, n$ {" t* O* }  }5 j也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法7 Q1 [0 z) j- [& D7 h. x8 m
以下是RSA算法文件
& D, Z6 V9 G) k5 w7 K8 o% F1 n* `6 P0 g2 {
文件名RSA.ASP
) h- ?+ h5 P0 W===============================================
3 m1 p( Y  G* ~/ X- |" B5 `<%
! G8 l4 B& L( d: x1 D& GClass clsRSA
( c, p& Z  {  l+ D1 l, f, J0 oPublic PrivateKey
/ c) F4 J& ^6 _  N+ \* WPublic PublicKey ; s1 m. J* ]0 ?9 r8 x
Public Modulus
; f  b$ ?6 L6 x3 ?0 j' f$ D' D: l9 _Public Function Crypt(pLngMessage, pLngKey) 1 P8 h' S) C0 ?$ ~
On Error Resume Next ; a5 ]! Q' t5 ~/ H5 o5 O. i+ f/ E( [
Dim lLngMod : c8 i+ J0 Z! i" x5 ]5 Y
Dim lLngResult
8 u( h* N1 F8 o- P  yDim lLngIndex ! s  A. Q2 o- r  Y
If pLngKey Mod 2 = 0 Then 8 \6 y, j, y' y: P1 P) t& H
lLngResult = 1
0 w+ p7 M; \8 L1 F3 O# C  n' vFor lLngIndex = 1 To pLngKey / 2
- u1 ~; c! }) f9 M# ~+ PlLngMod = (pLngMessage ^ 2) Mod Modulus 1 i% A$ a: k5 U
' Mod may error on key generation
/ ]; L/ F- `& @. C1 W( glLngResult = (lLngMod * lLngResult) Mod Modulus ( T; O0 q' E# F9 p' j, L5 j
If Err Then Exit Function / i2 S7 M' o6 v" }3 H
Next
: h5 z, `$ R( h2 Y0 n4 _Else , `- l6 c, }+ g" v/ v6 f
lLngResult = pLngMessage 1 u: g# s% ]4 ]
For lLngIndex = 1 To pLngKey / 2
; T6 |( w/ K" A0 R; A1 b+ I& l- LlLngMod = (pLngMessage ^ 2) Mod Modulus
4 b& l8 {7 d( d0 X, I% j8 @On Error Resume Next
( ^& u; ]% K  ^1 v' Mod may error on key generation
; o- a/ `2 {  e/ y) llLngResult = (lLngMod * lLngResult) Mod Modulus
( U# X) B0 U7 EIf Err Then Exit Function
; h8 n8 w& j- T% K% q$ y& f" Y/ KNext ; ?- x! f+ |; C% Y
End If 7 N/ E; c& @9 b( Y
Crypt = lLngResult / ]2 z( a4 O4 ^; l6 X& ?* Y
End Function
+ c" l* }1 ~3 R' q# \' n) c
7 @+ M. ^4 u. l) c& y8 B; p7 j# r" h. CPublic Function Encode(ByVal pStrMessage) , n1 ?# }3 Q7 f7 @+ [; Y* S& i
Dim lLngIndex
! e; ~- A8 D# uDim lLngMaxIndex
5 P9 {7 e% ^( \' \Dim lBytAscii
& g% J. I( P' C+ }9 J) B3 S; a8 A, S7 S: iDim lLngEncrypted
, V/ j/ J+ F% p; llLngMaxIndex = Len(pStrMessage)
: u9 l6 N2 s. h- ^9 s: OIf lLngMaxIndex = 0 Then Exit Function 0 o, j8 W2 m- y4 U7 F
For lLngIndex = 1 To lLngMaxIndex
8 ^- X& U$ \2 `( zlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) + V# p0 b  K* k- p
lLngEncrypted = Crypt(lBytAscii, PublicKey) 8 Z1 L( A: F; D* p
Encode = Encode & NumberToHex(lLngEncrypted, 4)
( s' N- b5 k" s' HNext
5 c4 W; L5 S; g$ _End Function 1 H; G1 W7 r, L/ a( |" z
Public Function Decode(ByVal pStrMessage)
4 ^# ]( `5 `% N" c1 z0 B1 EDim lBytAscii " E( ^7 i, o2 R, P0 }. w
Dim lLngIndex
$ d( S8 T7 d7 ~. D8 ?: X/ F( U4 xDim lLngMaxIndex
$ B' S  h: V% \2 O$ W$ gDim lLngEncryptedData
3 T1 k& h/ a, T( d1 C; xDecode = ""
) Z+ R# c4 w6 ~! w6 ElLngMaxIndex = Len(pStrMessage) - Y5 ?4 i: B+ r6 F6 Y4 \  q
For lLngIndex = 1 To lLngMaxIndex Step 4   \4 N$ V# w* y* q( b( Y
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
# f& x+ L3 f6 ^6 e: MlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- \1 e- `: I' Y6 u0 K( \% WDecode = Decode & Chr(lBytAscii)
) b. B9 L8 p* t! P& W( M4 ?Next
, g7 p& d( t% v/ a# _End Function
7 b5 W+ G4 a7 U# M8 g+ T- DPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 0 w% m- V8 U, y% D- _/ G+ N
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 3 [2 v' ^4 s4 n& u& I
End Function 6 b  d0 l& b( Q4 I% D1 ~9 Y* j1 m
Private Function HexToNumber(ByRef pStrHex)
. C8 g2 A* y7 r, ^7 vHexToNumber = CLng("&h" & pStrHex)
! f. S* w4 Z0 T; [% z" D: JEnd Function ; D( [% \% P; s: W
End Class
" J" V1 X! ^7 f/ `, S9 ]function Encryptstr(Message)
" K" I, E  {: x& oDim LngKeyE
, ]" p% D* i  h$ xDim LngKeyD
: Z1 r8 W! ]; R: V- w: SDim LngKeyN
: }; K6 D2 W$ t+ k6 t5 I; H' cDim StrMessage
, t4 `$ u$ j) i0 N# lDim ObjRSA
3 g1 Z- Y! u/ q6 Z! V: `LngKeyE = "32823" , G+ C, j9 X8 K$ a+ A6 n- Q! t
LngKeyD = "20643" 0 q# Q; S* P9 X, S+ b8 w+ m0 z. m
LngKeyN = "29893"
! W6 Y% X  V8 p( f* {) ?7 @- jStrMessage = Message
7 p4 `( z* @3 f' l. e6 ~/ p& D  |Set ObjRSA = New clsRSA " `& U) w; U! L1 g- p
ObjRSA.PublicKey = LngKeyE # d3 n9 I* K6 k" x9 |0 I8 @
ObjRSA.Modulus = LngKeyN 9 b4 j7 r& V" h. Q9 A& o
Encryptstr = ObjRSA.Encode(StrMessage)
  a9 p1 X- O( b9 Z) w, ~: S" XSet ObjRSA = Nothing 3 a3 _7 c, K7 Y# N
end function& p: S0 e' g2 y  g
Function Decryptstr(Message) / O9 g$ ^) X9 U7 [6 L1 N
Dim LngKeyE $ p+ g' P& S+ N4 d! L
Dim LngKeyD ; I- v  X  j+ ?! w  r
Dim LngKeyN # [4 t. Z+ o; M. Y2 R( ^/ Q
Dim StrMessage . P7 h0 h2 x, [+ L
Dim ObjRSA
/ {8 c+ j+ s9 e5 ?/ gLngKeyE = "32823" $ ?5 i- _5 q/ y" A6 u5 a4 a
LngKeyD = "20643"
9 I7 G4 ^( c: ~# CLngKeyN = "29893"
% Z6 Y& o* K  Z0 ^2 N8 VStrMessage = Message
9 _5 B: [; M7 P6 _, lSet ObjRSA = New clsRSA
2 |# I6 O0 o+ e! Q# T: Q/ [ObjRSA.PrivateKey =LngKeyD ( W0 K  ^" b6 o
ObjRSA.Modulus=LngKeyN
( M- o7 m3 ~4 t0 k1 _2 kdecryptstr=ObjRSA.Decode(StrMessage) ' F1 x, G: y: T! i
Set ObjRSA = Nothing " V2 e& S! V8 ?' F7 Y
end function : L8 K. d* E; n8 X( o1 f) C; D
%>
% F9 y8 b* L% K4 A2 `% `+ u* K===============================================
3 {# l4 E9 N4 n$ Y( |/ m* S
6 x# `  U! k" N还有一个用于测试这段代码的test.asp
/ W  [" p1 `5 ?有兴趣的自己搭建个IIS测试下
0 ^: J) e$ C, }6 R2 |<!--#INCLUDE FILE="RSA.asp"--> % a( ]. r! _% T2 ]- x' m" `, \. k7 j
<%! \" P& ?) S0 M1 J
function Encryptstr(Message)
. X* f9 L4 v, rDim LngKeyE
/ m! O' L0 |$ A0 s; nDim LngKeyD 5 m% v9 M- h3 G" l
Dim LngKeyN
* N2 v# U. v3 KDim StrMessage 3 [, d/ N* B" Z/ A
Dim ObjRSA
- L( R, p0 m$ L2 d& T1 `LngKeyE = "32823"
) {' y6 X- @: v/ d5 ULngKeyD = "20643"
+ w- x0 A9 S' o) x( L8 q* f! tLngKeyN = "29893"
0 h- X2 K3 I9 b& ~; l7 S- jStrMessage = Message 1 F( K! K! i& }2 n. @
Set ObjRSA = New clsRSA
+ Z: I5 e# k1 v$ P+ C; t9 CObjRSA.PublicKey = LngKeyE
5 {* Y' p& @1 o6 cObjRSA.Modulus = LngKeyN
- ~: q2 i. t* b# g& ]Encryptstr = ObjRSA.Encode(StrMessage) 2 a( g' o0 e( o3 V+ [# \
Set ObjRSA = Nothing
4 X4 X7 i# A; h. W. w1 Q0 ^* Iend function
0 I! [- e9 {; D& d+ j0 h. Ffunction decryptstr(Message)
5 L+ J1 H6 _7 Q0 E# [  J2 BDim LngKeyE
, q) E' R% E- O/ qDim LngKeyD
' Q& h( P7 r% G+ \1 B& g+ v/ }3 ]Dim LngKeyN
3 z, I" k# Q6 |& o2 xDim StrMessage
. V/ [! r1 B1 }+ p. W( Z5 f- pDim ObjRSA
2 a% K: D0 j  ^0 e/ X' Q7 M9 Q1 JLngKeyE = "32823"
  B. P# \( b. P# k8 n- `LngKeyD = "20643" 0 i$ e8 \9 p. L' x' t. }
LngKeyN = "29893"
. j/ T% p9 m# T# n! Q. _. y" lStrMessage = Message " _4 O, j# j  Y- K) x8 J4 f) u
Set ObjRSA = New clsRSA
- y5 U, ]+ _2 u, |+ k1 y4 OObjRSA.PrivateKey =LngKeyD 8 l* b6 n2 T4 B3 G
ObjRSA.Modulus=LngKeyN % o5 [' B3 m3 O# {$ e5 N& S
decryptstr=ObjRSA.Decode(StrMessage) $ P$ |4 k# X& ?8 T' |) v
Set ObjRSA = Nothing & C5 c, C: w; b6 _( u7 o9 ]1 l# H
end function
9 z0 V  D6 r. x: P' k& i1 ldim last,first
$ s* ^' b' c0 U' [# A' Pfirst="!@#$%^&*()" ( U, p/ c* q% ]* ^
Response.Write "加密前为:"&first . R0 p7 Y* I, o- K
last=Encryptstr(first) $ G: I0 _8 @1 `5 B; U# k/ b- ^5 f
Response.Write "加密后为"&last
& M. l* b% i& Q' ]5 g1 hResponse.Write "解密后为" &decryptstr(last) , K& B6 o2 h3 F! h- q  T
%> ==============================================
9 x3 r, N5 N0 f+ B剩下的就是字符的对照表了7 _! i; ~8 V. D# J6 j
===================字符集================
1 M$ g, y% c1 f5 v5 v# [/ K1_____6EBB) U# F; s+ \9 T& Z8 ~3 z0 Q* B7 a
2_____5C1F
* B7 C+ _# Z/ T* v. P5 p3_____4D75
2 f6 A$ s) S. g: I, d# G4_____26CC2 g2 E( `. V" ^5 i
5_____4F88
8 O5 t$ y& r6 r% ~: l6_____3F4E  C9 I. x- N; J- |
7_____0A9D
6 X# ]; I; q, o. C* ~8_____1A1C7 I. D5 ^5 N" m; V; A
9_____6D20$ t. b; Y; v) j+ `1 C: B" r& V
0_____1089. D9 _3 V* t& ~  M8 Y
a_____0F3E3 X% x3 q: @# p5 m" q. N; @
b_____31592 I+ Y3 B2 V, {( D/ H7 E
c_____3517
1 L/ ~# M( z$ w# z3 N% ^) Y; ~3 B2 Od_____419C" j# y  E; X9 p/ p7 ?
e_____615C
4 O6 d* I0 q/ p, L0 @  Of_____556F
+ [3 O) t+ U3 u4 x* W* rg_____2B7F8 Z7 @+ N$ S0 ]* z  d
h_____0F9C2 a0 r, p& C. d5 E  [, l
i_____00FA
8 Z" n& j6 `" x& Z; p, Jj_____5A50
3 Z, u( Y& W* O4 S0 s0 r& qk_____2850
5 m8 c" b/ t5 o" @  r3 a* J4 S, Q& Kl_____3E7B% e# @6 m4 i. i" K6 O7 x0 O
m_____71C56 S% K' q' m2 H) a* }
n_____1FC88 j' g; p8 V" ~0 m' I
o_____74C19 a3 D0 @9 j7 w& x8 ?
p_____5FB85 H( v% [9 O6 }$ S
q_____6085$ m1 \( T* {0 D8 h1 A  B6 N
r_____3AC46 @# J  ^. Z2 v" E$ X( v8 r  q
s_____2F50
$ E4 n1 u3 M# et_____36F82 U2 k# D! J$ k# M$ B
u_____7010
* w/ l1 `, U5 V' hv_____0B42
1 Z3 w+ U. J# O# Yw_____1C7A
. n2 w% u& m) x) B" j; ]' hx_____16F8
- g% E) H; Z, l& X0 vy_____2EE7; @6 q2 C7 z: h% h8 g* |2 D7 p
z_____5CF3
3 S' r) G9 I- ~; u& W: `$ }/ {( @: B  H!_____6233
7 x/ d" [& `# a@_____3A45
+ L4 r1 v" r4 B' W2 H0 H#_____22913 Z9 @) n7 p* j' e7 o7 n
$_____5D5C" Z5 E; E6 t; h
%_____09B9
/ k) N  \& a3 @+ D$ a$ _* g^_____43EA4 }! m0 b9 ^; B& K6 ~
&_____62B9: N% v$ q; I6 _' x) F: J
*_____6301* R( {% Y& ]0 z
(_____4659
/ c' ]5 G3 s! a4 c+ g" P)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表