返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm$ y$ r' _+ g2 n2 ^2 T
原始出处:http://www.3ast.com.cm/ _* X* l) T: w

9 }) g% n! H+ C看不懂的直接绕过
7 D* Y7 ?, _- ?5 f4 i加密前为:hwy123456
8 H0 k, F, B0 {" w8 ?加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, _/ T' h* @# d' p8 a2 P0 R% V; T4 u' I' G
============================================
' ]2 }& J8 W4 a1 ?1 G0 S5 i上面是当时自己校内的心情。现在已经解破出来了,分享给大家
/ n4 i# G; Z! h$ o! s也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
# [5 ~- N: K+ `0 d, X7 x# U以下是RSA算法文件' K  |7 t8 J7 Z8 T5 b

. l/ M% u9 a7 M# p/ p) {* f9 U文件名RSA.ASP, h8 M0 U& h5 c0 Z' L- N
===============================================
5 T! Q' r1 I3 \& B- X; q4 W<% $ ~: _6 |, Z* K9 w0 k; v6 Z: f
Class clsRSA
( h9 {: f  ?. c; Y7 d% j/ qPublic PrivateKey 5 ~" X9 r2 n; _6 U0 p5 D
Public PublicKey
3 W9 |4 A! o# Q+ v" uPublic Modulus
/ ?1 J; P; h3 _1 P; X% h2 WPublic Function Crypt(pLngMessage, pLngKey)
; o4 O: f. d' Y. oOn Error Resume Next   ]/ x; L/ c1 V1 f! `- C
Dim lLngMod
. }( g5 u% r, @" O' j3 TDim lLngResult 7 B) v( r) c' o7 Y  I: ^2 e$ h
Dim lLngIndex
# O" [; W& j- O, C. MIf pLngKey Mod 2 = 0 Then 7 D% }: r2 \2 [0 [1 y
lLngResult = 1 6 C& d: o9 J4 a& R% v
For lLngIndex = 1 To pLngKey / 2 ! |' T% X  t& W; }! ^5 w/ H, r
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 N% @/ F# [% z+ T- H' K$ m
' Mod may error on key generation 2 A# a+ |6 t! P" ?
lLngResult = (lLngMod * lLngResult) Mod Modulus 7 B; l7 Y1 K* l( @5 C$ E* i  Z+ Z
If Err Then Exit Function
7 l5 g3 j, g) Q, ]0 ?Next
- n- b& u' R; d! F9 QElse   v1 g& K+ p7 e- D; j! M+ N" _
lLngResult = pLngMessage
( ~* P+ H* \  a2 o" fFor lLngIndex = 1 To pLngKey / 2
3 b& \/ G4 M4 ~5 Y, V7 nlLngMod = (pLngMessage ^ 2) Mod Modulus 4 t# u) D8 c* t
On Error Resume Next
, }9 i8 K4 X% V% }( \) z' Mod may error on key generation 6 M9 M, b# S) x5 h4 p
lLngResult = (lLngMod * lLngResult) Mod Modulus
, L! x  F8 U  n- k8 u+ L8 A$ AIf Err Then Exit Function
5 H& U& m2 q3 w4 Y  h- ENext ! B: W' a  m# S
End If - a3 O# s1 y0 h( x' b( i
Crypt = lLngResult
$ ^1 L/ p- P0 y' @, DEnd Function1 S" D% F# Y& @  R
: @- v! x1 q+ n
Public Function Encode(ByVal pStrMessage)
8 r/ V; }8 n2 ]6 T9 LDim lLngIndex
, ^4 ~; {9 b  |* Z) J/ E% zDim lLngMaxIndex ' \7 `2 @  D) Y3 a
Dim lBytAscii
. {9 F& J7 d1 B6 E5 ^6 B3 }Dim lLngEncrypted
3 l+ K+ {& R1 d5 {, [3 D5 ^+ RlLngMaxIndex = Len(pStrMessage)
5 |" B( V  U/ }7 V' ]3 T. S* {If lLngMaxIndex = 0 Then Exit Function
  i  ^2 r0 q& d- iFor lLngIndex = 1 To lLngMaxIndex & Q' S9 \" U8 V: x9 L; T9 c
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ a8 E' `7 p2 J, \1 DlLngEncrypted = Crypt(lBytAscii, PublicKey)
& s$ i. ]; R0 C- i# DEncode = Encode & NumberToHex(lLngEncrypted, 4) : u, g4 |/ }4 z! `* R
Next
; ~% R1 `# o+ w( EEnd Function   X+ Q, F3 k9 c/ X0 d- y5 U0 Q; C
Public Function Decode(ByVal pStrMessage)
$ ~2 o. T6 w% v2 @2 R% pDim lBytAscii 0 i4 @4 V8 p5 _9 _' p, ]
Dim lLngIndex   @; ?# w2 ^- M
Dim lLngMaxIndex
- ^& x3 P9 l1 X1 |/ a  L& V( K' sDim lLngEncryptedData 4 y) ?! T. b/ z
Decode = ""
0 ^, c) C8 G; RlLngMaxIndex = Len(pStrMessage) . S! `' h6 `/ u- ~/ B% {
For lLngIndex = 1 To lLngMaxIndex Step 4 8 @2 g0 q7 ^( l* s9 u0 _
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
8 f' E7 L5 [7 u7 M$ V  J2 hlBytAscii = Crypt(lLngEncryptedData, PrivateKey) % k$ F2 o% d. ]4 P5 [+ R& Z
Decode = Decode & Chr(lBytAscii)
, U" J* ~; W9 TNext
: ^) c+ C" l& f3 Q5 a3 oEnd Function
) p7 Y0 ~8 ]' O$ T. u! g0 DPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
: W5 r7 S  E& n  t8 ^3 }8 ]& W' oNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) - Y7 j( F! L; N9 ]
End Function
7 ]6 w' ~0 E& M( u: N3 d$ y) gPrivate Function HexToNumber(ByRef pStrHex)
- @9 ]1 W! a1 T* z! a& y1 Y% THexToNumber = CLng("&h" & pStrHex)   d; u3 ?6 P  K# w1 w
End Function ) U1 [9 T' J1 u6 L! e5 o
End Class - k* m  h, i: }- D
function Encryptstr(Message)   o- o4 B) S, d  D4 S+ t* m3 [
Dim LngKeyE
2 a: a) j4 J9 g: PDim LngKeyD 5 l* M  E2 M% a; a9 P
Dim LngKeyN 5 F* n; J+ L3 V0 M; s+ e
Dim StrMessage
& `/ [* x! q) N! TDim ObjRSA : E' ?3 L. W1 A, `% [, B- K! B
LngKeyE = "32823"
5 e3 Q" k5 s0 H7 s* M2 y: K4 fLngKeyD = "20643"
3 G6 [' J9 A4 g5 J! c: QLngKeyN = "29893"
' G+ @. I9 M& D5 t3 V4 qStrMessage = Message
$ P( m% _- u% F$ {6 X: sSet ObjRSA = New clsRSA ! T- @1 F0 u8 Z
ObjRSA.PublicKey = LngKeyE
& V3 h/ m$ j3 rObjRSA.Modulus = LngKeyN : _: L  z% L. K: b, m  j/ i2 p
Encryptstr = ObjRSA.Encode(StrMessage)
% h* B2 o" D  ^7 rSet ObjRSA = Nothing * F. z1 v' ^2 f7 w
end function( R! Q* u- c3 S9 |  t" f: |+ i: r
Function Decryptstr(Message)
- F) [, N( R( _2 R3 hDim LngKeyE % d, s- a9 q2 U% }
Dim LngKeyD
" Y, v+ Y2 D' k# I3 |2 ZDim LngKeyN
8 H2 O0 T! f, i( FDim StrMessage
7 L0 ~) F: \3 s# ^Dim ObjRSA # S1 x3 P/ @0 z1 Z8 [* ~
LngKeyE = "32823" . g* P& n; {2 A7 Q# w- ~3 p' o
LngKeyD = "20643" 6 D$ g3 ]6 o' _1 Z  w
LngKeyN = "29893"
) D! m3 F- h( i& oStrMessage = Message
9 [; ~  D! Q" O1 x- ?Set ObjRSA = New clsRSA
1 `" y! b, }  E0 ]. GObjRSA.PrivateKey =LngKeyD + {$ Q0 c  I9 O% C( l: B1 V
ObjRSA.Modulus=LngKeyN 5 n- f, I, J+ _
decryptstr=ObjRSA.Decode(StrMessage) ; h6 T4 b) e' w
Set ObjRSA = Nothing . L, z- w8 v+ Q4 p" [7 ~
end function
2 x( T6 Z( |6 [' C2 O% |2 Z%>
* H. q" E2 a& k# G3 F! m9 p. G( f===============================================  I  z" P+ B% P' a! w
/ P# b6 n: q; p( V! i
还有一个用于测试这段代码的test.asp
' R( q5 V5 r, i7 q& @- _2 M有兴趣的自己搭建个IIS测试下
3 R8 x$ R, Q6 D& e. `, f<!--#INCLUDE FILE="RSA.asp"-->
$ F: V2 P. G( N1 @$ r2 l<%
4 E5 X8 p7 C6 |+ E+ P# Ufunction Encryptstr(Message) 6 T, B1 P. m6 s6 [2 @
Dim LngKeyE   C  [5 @* B: g: [1 n( n+ i- `
Dim LngKeyD
+ v- f. O6 I( O1 L  Q& J+ j1 I2 @Dim LngKeyN
: g8 }3 H; E8 a% j3 LDim StrMessage 5 }% K1 h  l9 c8 `
Dim ObjRSA & U- J1 B" j! d9 A/ _, |
LngKeyE = "32823" , a, m( i. u" ^" d. [" ?9 G
LngKeyD = "20643"
: s2 e, e, l6 M( s, PLngKeyN = "29893" 2 h, e' _' ]# a0 [0 i: ]* N
StrMessage = Message 1 t% e: L7 ?9 h+ z' b
Set ObjRSA = New clsRSA : t8 B! w2 |$ ~9 E
ObjRSA.PublicKey = LngKeyE 0 C+ L3 `* ]; r9 d1 N# u0 n
ObjRSA.Modulus = LngKeyN
7 l0 M' A! |1 ]7 ~+ \* xEncryptstr = ObjRSA.Encode(StrMessage) ) w- t# Z) X& i$ F
Set ObjRSA = Nothing
& T: q9 [: ~0 ?/ o! d; z& x3 pend function
; \3 G% Y& V4 m) Cfunction decryptstr(Message) * ]5 |4 |% l/ h9 G- j9 `
Dim LngKeyE 1 p3 J( \2 m4 Y
Dim LngKeyD
8 G5 g! A2 m) R" V' R( U) [/ R# b( R7 RDim LngKeyN
7 d/ o  u+ ^7 h) ?* T& A7 SDim StrMessage $ t! a" i1 L" a% r$ _+ r' a/ ?
Dim ObjRSA   b. N9 \1 d8 x$ a" W' n  v2 h
LngKeyE = "32823" 0 c7 ?- m$ G' {5 ]7 U- C2 e
LngKeyD = "20643"
3 E3 o/ p( N5 W/ JLngKeyN = "29893"
0 d& Q2 M5 r* |: K* e& nStrMessage = Message ( X5 M5 w' B$ z% @6 w% B' `- N' P
Set ObjRSA = New clsRSA ! h0 Q  B( c, w, Y+ J
ObjRSA.PrivateKey =LngKeyD , Z( a" H3 f+ u
ObjRSA.Modulus=LngKeyN
6 x0 x) s- ?1 ?" @1 U' ^' S8 jdecryptstr=ObjRSA.Decode(StrMessage)
. Z- ^6 N& L# }. {$ m9 N8 {7 QSet ObjRSA = Nothing
* u% m3 e3 K/ D" H. wend function + F3 h7 ~7 t# G
dim last,first - S. d7 K3 l2 p+ E  E# \+ g: B
first="!@#$%^&*()"
* w3 @! B( }7 L0 r' `8 x) M& XResponse.Write "加密前为:"&first / Y- H% c6 Z( H3 H; r$ {$ `
last=Encryptstr(first)
4 [/ I8 i* J6 D" |# ?' {) K$ yResponse.Write "加密后为"&last
) R, a. ?) H1 U+ @, kResponse.Write "解密后为" &decryptstr(last) 7 D3 `5 O. R" N8 l
%> ==============================================5 ~  \, Y. x0 L: U. v' m5 j) h
剩下的就是字符的对照表了6 r# q3 ^4 S' [* j
===================字符集================
9 \8 Q% L- n% ^& |( X1_____6EBB
9 B# J* U2 R7 d( {2_____5C1F
7 m$ v) X0 i- ?& P- }; G3_____4D75' b, u& F" J. _  U7 N' O' p
4_____26CC
2 x& h* P9 D, v5_____4F88: U) O! O, r1 k9 V
6_____3F4E8 Z. R" T3 Y- @0 R9 i
7_____0A9D, X+ @* W( z% D: ]4 h
8_____1A1C
5 d5 w; V) l" V6 Q- ^! ?/ O# H' W% C9_____6D20
9 ~+ v% b( t8 g/ l) {' h% P0_____1089
3 B0 q* f  S* q$ |- o# n* Ca_____0F3E
- ?' Z3 b# P* o8 ]# Kb_____3159$ f, x* q) E4 r- t" G
c_____3517% |" J/ F% G7 w" j* |
d_____419C* M- T& `1 }: ?9 c$ j
e_____615C0 @% Z6 c* w  j' D: J3 z& Z
f_____556F. B6 ]# j/ \% D  w
g_____2B7F% m. Z- ^' O5 ?/ J; ~# u
h_____0F9C1 F! B1 i" ~4 R7 S; O% ~' [
i_____00FA
9 K7 i& E) p7 T; Xj_____5A50
8 }/ `& U; _  Q9 w9 ak_____28503 g5 n: S: F* f; @6 ^7 L0 b8 [! n7 S
l_____3E7B
( J  N5 {' E8 G* ^+ J6 Bm_____71C5  q* p; u: Q  ?2 F
n_____1FC8
' v/ m) M. O6 H3 {; V6 {o_____74C1
+ V$ B4 F$ O8 Z* B: v( dp_____5FB8
& F) x: [. c/ uq_____6085
7 G) k' c4 V1 h6 T* q, u# Q6 Xr_____3AC4* y' o7 h- X! Z# k* ^1 k% g8 G8 E9 y
s_____2F50
' Y! J" P- C; A0 ot_____36F8% ?2 O( l+ T" X- ^2 H7 u3 r
u_____7010
- ~% M; S6 \4 ?1 {. W% pv_____0B42
; `- Y0 s" l" r2 T) U0 jw_____1C7A
  M7 j" r0 u% W& r$ Mx_____16F8' Z* o- B' D4 |+ R+ }/ c3 R& I
y_____2EE7
( V$ L$ L% }# Yz_____5CF31 b2 N; t2 |* l; i$ s
!_____6233
: w1 F4 U3 i8 h  I) ?@_____3A45, m0 Z! C; `. s! A
#_____22914 x+ R0 v8 P/ ]2 R/ H* R% u
$_____5D5C
- t7 S# x$ G, c1 b, }* f%_____09B9! ^, k+ w* R/ c
^_____43EA1 c" k& o. O9 }6 W6 p, h
&_____62B9
: |- \9 ?/ Z6 T7 |- L# r9 J*_____63015 c6 `/ L" b  N, R% g! T. o
(_____4659
/ X$ {* U# l9 L9 R6 t)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表