返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
% K8 ~5 F+ N2 c原始出处:http://www.3ast.com.cm
% e& F2 t( _! ~9 E- f; w2 z# ^
% n6 X2 k$ Z* }! |0 Y+ \/ q9 d- \看不懂的直接绕过
  P' a' F$ }9 y2 ~4 M加密前为:hwy123456
. z7 u" w( L$ y3 U1 m加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, h# U, N# \( u9 A
( f& N" Q3 V& [  I% n( Q' z
============================================. V2 q5 p7 F8 C) f9 m
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
% m. q5 m, ?' s. \& J也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法/ Z4 @! ]5 ~/ j2 u8 u/ e
以下是RSA算法文件# u$ o1 Q# k7 \) q
7 e' O* u  L" K! }6 b0 n
文件名RSA.ASP% Z( P) h  W: t( _" R' [
===============================================
; N; _0 `; e- t/ }: T/ z<%   r& `& A# u! V6 `; e/ {- _
Class clsRSA
, S" a; g5 u: ~1 O3 [/ a; WPublic PrivateKey
) z" |) e& O- w2 `1 {1 KPublic PublicKey
8 e3 A& \) I5 j2 z) }- n: a# }1 MPublic Modulus
1 ^* U, J7 J" k7 ]5 F9 rPublic Function Crypt(pLngMessage, pLngKey)   P6 h6 j5 ~$ d; f+ v' s! b
On Error Resume Next : o) o. w* L; r  }5 K% t
Dim lLngMod 0 ~# a/ C9 W$ ]+ m3 A, H0 T
Dim lLngResult
; V9 W6 r; t$ [Dim lLngIndex 8 c: B; K7 Y! U4 D
If pLngKey Mod 2 = 0 Then
  a4 j2 P6 ]5 R! W8 r5 P$ IlLngResult = 1
+ p# S2 {6 a& B# U5 dFor lLngIndex = 1 To pLngKey / 2 ) w1 h: M" [$ N; s/ u
lLngMod = (pLngMessage ^ 2) Mod Modulus
- h/ o1 {% ^* P* h/ o0 R' Mod may error on key generation
' G% m5 ^4 \, H) ]1 FlLngResult = (lLngMod * lLngResult) Mod Modulus
% O( t+ _! C7 j; k/ O3 q0 x6 KIf Err Then Exit Function
; x3 O& y2 }) c  D' h/ eNext % Y2 N! p% l4 i8 g
Else 5 Y8 h5 i' B% y( ?( r3 s
lLngResult = pLngMessage - |9 |5 A3 k% }% r( B( {! C" t, y
For lLngIndex = 1 To pLngKey / 2
3 _3 K" H$ ^) f6 }7 g% ylLngMod = (pLngMessage ^ 2) Mod Modulus 7 k, k- i# b" b! }
On Error Resume Next   t2 U: p5 b& {/ p. u; f% I% n, ]
' Mod may error on key generation
/ Q+ l7 h! v6 y; S  ]lLngResult = (lLngMod * lLngResult) Mod Modulus
( J4 K7 v! {6 J. `If Err Then Exit Function - C5 x: t5 c' W. D" b7 [6 v6 t8 j7 p2 M
Next ( a4 t3 ^8 g% b) Y
End If
% S1 f6 q2 V9 P* S4 J) @% p, k; TCrypt = lLngResult
9 C/ ~/ m. o; K- d' i. d' \End Function
7 p( C3 A' @8 |/ @! r
' u) z# n' b9 IPublic Function Encode(ByVal pStrMessage)
& b1 T5 _- [* V4 ~8 dDim lLngIndex 3 j. m6 K! X  ?9 [) Z2 V. j+ i+ ]0 S2 B
Dim lLngMaxIndex 7 E5 f* m6 V6 F
Dim lBytAscii 7 x# X1 q! j2 }) s" v
Dim lLngEncrypted
* d& R+ t3 q$ H* I6 hlLngMaxIndex = Len(pStrMessage)
( g/ ?8 s+ w/ P7 eIf lLngMaxIndex = 0 Then Exit Function
) J2 l1 w6 q2 sFor lLngIndex = 1 To lLngMaxIndex
( W# H9 S( V0 B5 r7 M& BlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 S- K6 [2 i( v7 h& u
lLngEncrypted = Crypt(lBytAscii, PublicKey)
# d8 }7 b; f+ [Encode = Encode & NumberToHex(lLngEncrypted, 4)
6 G  ]3 D' G0 Y1 f5 J2 t% a1 {. uNext 8 W: C3 Y: O- w) o( R+ m+ m
End Function % v' O8 g8 L2 W% ?3 v
Public Function Decode(ByVal pStrMessage)
9 x9 P  `- n) `% G9 y/ l6 pDim lBytAscii   g* _9 P+ \9 |' r% \/ F# I  }" c
Dim lLngIndex 0 C: ~8 Y% w8 }2 Y4 s* U- G+ A
Dim lLngMaxIndex
$ V1 r% a3 e: J8 QDim lLngEncryptedData   {8 c* {& o9 h
Decode = "" + d$ {( W0 F9 j' P6 W
lLngMaxIndex = Len(pStrMessage)
& J" n% P0 i3 S3 ]: b0 |  QFor lLngIndex = 1 To lLngMaxIndex Step 4 ( t; P, ?8 v6 @# X1 a' J  V3 D8 e
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) - E  }; G: u+ Q- K, b, r
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) ! N1 p) W( Q% k+ z, N" X, J
Decode = Decode & Chr(lBytAscii) + g0 [! a! j, }& ~/ u) l
Next
* }4 k+ j6 ~9 nEnd Function 2 ?* k8 y' A+ b5 {0 c$ P
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
. U* B7 g  j+ z+ a+ Z) ~NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 5 ~6 N6 D5 a% r5 y
End Function
$ w3 K2 s, I( K9 N0 HPrivate Function HexToNumber(ByRef pStrHex) 4 `* _% ~% b3 T+ @& s5 y
HexToNumber = CLng("&h" & pStrHex) # |( f# X0 F( y5 w; T4 J/ m# ~
End Function 6 x& k2 ^7 i! o6 Q' r
End Class
6 e& c  W) U, p" s9 d, yfunction Encryptstr(Message) % w/ E0 C6 F+ w0 R- j/ L
Dim LngKeyE . i! Y. S  C- P! I7 s
Dim LngKeyD 5 j* |9 M5 c; I6 Z  L7 w9 c
Dim LngKeyN ' _  [& D" t% `$ v. J8 W$ w
Dim StrMessage $ X( M3 a$ `7 K
Dim ObjRSA : @4 }, V, Z' W' h* ?" C  ^
LngKeyE = "32823"
% @, n0 x7 t, z5 g6 @6 k$ E% h: lLngKeyD = "20643"
' t# }$ D- @9 W3 WLngKeyN = "29893"
1 Z2 C+ _$ V- m7 A+ {StrMessage = Message - k- j: v9 K; s0 x, ]/ v
Set ObjRSA = New clsRSA : J( N; z; M6 e2 ]
ObjRSA.PublicKey = LngKeyE 8 `$ C5 E3 @$ f; Y1 o5 e
ObjRSA.Modulus = LngKeyN
5 m+ m7 M' G7 p4 C' a9 yEncryptstr = ObjRSA.Encode(StrMessage)
# b2 E3 Y5 }8 @. M4 KSet ObjRSA = Nothing ( L1 X4 R, @1 f( P; G3 x$ E6 z- N
end function) N" u: T) `0 {
Function Decryptstr(Message)
& j- p5 ~; E) L/ f  kDim LngKeyE / K$ z, {3 t9 y$ k
Dim LngKeyD ; N  Y4 ?7 Q5 U6 J1 Z$ `! t- K# C  M
Dim LngKeyN
: ^: a4 e" F' WDim StrMessage
% z  B1 v% V  R/ |) [Dim ObjRSA 4 L; R- i6 F3 y7 i
LngKeyE = "32823"
! ^& y8 z/ ]1 c+ c1 nLngKeyD = "20643"
* J- A  J* r0 wLngKeyN = "29893" ) q' V0 K: q5 b5 l  r4 s
StrMessage = Message - L  A- Q. ~7 G* c. ]+ ?* C
Set ObjRSA = New clsRSA
& A" V( i; i" F2 u0 IObjRSA.PrivateKey =LngKeyD , z; P. m7 N2 {3 S
ObjRSA.Modulus=LngKeyN $ p; p. ]4 W& Z+ c% D. e+ `* S* o
decryptstr=ObjRSA.Decode(StrMessage) : c! l2 d$ A$ s9 e/ U( u+ o
Set ObjRSA = Nothing
" ?; g7 G5 Y+ q* S5 c" dend function
1 E3 _$ a( }# q, S%>
8 j, |3 h3 S- B4 M9 m; V===============================================
5 w1 e: V7 O6 x2 a2 i; Z
7 {0 X: [, g1 t4 T: o& a$ g8 o还有一个用于测试这段代码的test.asp
6 e: o9 `' U' Z, H0 s; @( C/ \有兴趣的自己搭建个IIS测试下
5 b: i4 a; H( Y4 g# W( P# N2 s3 U<!--#INCLUDE FILE="RSA.asp"--> 0 [( K8 M+ A! E+ j% y) P
<%
6 x+ ^6 n8 ~" f7 Efunction Encryptstr(Message)
- s+ a* L9 r; X& T" W! J* MDim LngKeyE 0 k6 j$ U1 b( P, W. Y8 U# f& S
Dim LngKeyD , ?3 W: d, s0 O9 f8 f% [4 k; y
Dim LngKeyN 2 D# X4 _! s" s& |' Z$ a( e
Dim StrMessage 9 D9 w7 y& o* L5 d
Dim ObjRSA
; I  {- y2 Y: U! v, K# tLngKeyE = "32823"
: f- P8 c6 k( |' u) ]LngKeyD = "20643" ! ]. O% v( x: M; t" u1 `5 d5 f2 ?' i
LngKeyN = "29893"
, M9 b: b- M/ h& u, qStrMessage = Message * M& E# a% Y! v, p
Set ObjRSA = New clsRSA ! h7 F) W0 D' Q
ObjRSA.PublicKey = LngKeyE
4 [2 Y+ v6 E: i  Q2 |- u( t9 s8 [- d6 L# xObjRSA.Modulus = LngKeyN 7 Z' {9 C6 t; U' e+ v0 F
Encryptstr = ObjRSA.Encode(StrMessage)
/ [) _0 A8 o+ e: lSet ObjRSA = Nothing
( O5 r$ p# m6 ~  Nend function " K9 z0 s# ~& L) t
function decryptstr(Message)
$ a# m# N& f, Q; oDim LngKeyE
3 k* L& q' U' c+ R! oDim LngKeyD
) H1 _, n% T3 O6 wDim LngKeyN
% [+ q, y9 c% I3 q* i7 i9 \Dim StrMessage 8 B2 \7 _8 l4 a3 Y: q& _- o1 o' e) q
Dim ObjRSA
" r# r) w- w* ULngKeyE = "32823" $ J: W( @: P6 O' n" v9 I4 ^7 I
LngKeyD = "20643" ' @. b# l+ I; ]2 ]' |3 K
LngKeyN = "29893"
% {9 t( C% X8 X8 WStrMessage = Message
! @  D0 V4 m2 V" Y0 |9 Q2 e. {Set ObjRSA = New clsRSA
6 M8 N9 y5 E8 n4 [% gObjRSA.PrivateKey =LngKeyD 1 o+ x1 n# l( h! |% b; j% T8 E
ObjRSA.Modulus=LngKeyN
) C- Q% ]/ s6 A2 x7 S1 {. adecryptstr=ObjRSA.Decode(StrMessage) 6 x  V( v0 }6 V, @# r
Set ObjRSA = Nothing
9 Y- _! {* \/ ~) n6 gend function % X8 B1 a" @! s; |) I
dim last,first
0 j  S* [3 h/ |2 {first="!@#$%^&*()" 5 O- E' n) S# Z  ]: k% J
Response.Write "加密前为:"&first
# @; s* ?4 ~( ]+ I) l$ g7 g7 ~" ulast=Encryptstr(first)
& b6 _+ ~# e" e7 ?. B" Y4 X) V* [Response.Write "加密后为"&last
' V% s, D% _2 A2 iResponse.Write "解密后为" &decryptstr(last) ! L' a0 @, [0 ~) v6 b
%> ==============================================
! ~! V4 C6 H" G2 i! |剩下的就是字符的对照表了
7 }0 ?" g3 J6 ?! s===================字符集================
" P" D4 B7 y& @( B+ A1_____6EBB! W9 @  a2 L0 H; ?5 [) C( p2 L& h+ s+ w
2_____5C1F8 }; ]) d: x- T
3_____4D75
. F) D# f6 ]% u% C& Y4_____26CC4 \' i- x$ `1 m0 q& R( B3 O$ T' s
5_____4F88
0 {+ C1 m* f  \9 m! |2 H6_____3F4E
5 v! q# K* o4 F! [. u7_____0A9D
5 ~5 |3 A0 q8 i( `# W! \8_____1A1C
* l8 O: r5 ~* s' y3 X. g. I9_____6D20
7 H7 W. y% I3 [. u, n$ P2 U$ x0_____1089/ @0 {0 m- g6 V5 O" n& j+ _& N1 ~
a_____0F3E2 H0 |4 A& ~5 q9 z
b_____3159+ v( F  D% k; T! s4 n8 l
c_____3517
2 l$ i) R: {* T# g$ a3 od_____419C
" u  ?2 v7 ^$ b* Ye_____615C1 E" {' G6 k$ f3 O
f_____556F1 U) \) l0 ~# ]8 B8 @+ f- E6 k
g_____2B7F
) ~  d+ C# T& c8 Bh_____0F9C
. H. c, c$ ^+ w% n; ^6 F& Wi_____00FA
9 J! d3 D1 S- }( k, Q9 Bj_____5A50$ ^6 v4 a4 W4 A# {8 E1 w
k_____2850
, v0 K7 ]1 m' h" ^2 z1 nl_____3E7B6 e8 S- G4 B* r" l
m_____71C5/ ]; ^; k6 }" \( S7 i+ C
n_____1FC8, n' w  A1 K2 O7 B$ ~; N% T
o_____74C1# W7 [3 K! u) F6 a
p_____5FB8- W) c; p9 c* k: g- h) A( \
q_____6085$ Y. k0 b5 J) E0 R" [4 Z0 t: b
r_____3AC4
' W/ l: r7 o1 _. R3 N. ps_____2F508 y& J$ Y  ^6 S4 f2 Z; ?
t_____36F8
" w0 D+ ~" U$ o8 i; O! o0 s1 Y# ?u_____70107 w/ Y# {- M# i. m1 S0 B
v_____0B42- i. b  H/ `) K2 U8 J. w
w_____1C7A
) S; A3 c/ O/ p# o4 `) u( zx_____16F8- t2 B9 n5 q1 V. q0 w+ O; C/ k# t
y_____2EE7
* D. g* o, K6 z+ Rz_____5CF3
0 ]" |) c) p, `* Q2 ]; c3 ~+ B7 j!_____6233
. u5 ?6 ]2 z0 U6 e. q@_____3A458 a, R9 e" m4 n. V* Y
#_____2291! @3 E2 v  \3 W" ~" e
$_____5D5C8 s0 k& b* ]9 Q6 P
%_____09B9# L% ]$ A. h- [* n
^_____43EA2 G  [$ y; X$ M; K; }5 H% i
&_____62B9
! |9 b6 G5 g0 W/ [2 j! h0 r' v$ m*_____6301
1 `3 O5 P0 i, M/ o(_____4659& k/ Z' [/ [' H- R$ f7 u
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表