返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
) A4 B: G- ]3 m1 M0 h- _原始出处:http://www.3ast.com.cm
9 l9 U6 j2 P' ^7 s! t- F
: T+ k* M' J- Q- c, r) P5 A' S7 x看不懂的直接绕过
8 i- e, \& m1 \: R' {" J0 h加密前为:hwy123456: y2 @- A7 x3 q, C
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 X+ l. L3 ]! V2 w, p

7 H8 b  ~6 C, D# j7 M* t============================================8 C; g6 B8 p) i
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
$ t6 O% i) f0 i也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法& P) u0 K" _$ h! d: w+ }
以下是RSA算法文件* Z! i) o8 Y& w* q; Z6 o$ M

' j5 I* t$ u& s1 z6 K( L, B文件名RSA.ASP( X: {8 M; O# E3 U
===============================================2 S7 x4 C9 w9 N/ Z- w
<% ; s% a7 T: @: |) I" R2 M
Class clsRSA 7 Q8 _# k) \% ?/ }; N
Public PrivateKey
' b" V% j( `8 w9 d; sPublic PublicKey 8 W4 A* H* Y, p4 p9 n
Public Modulus
+ l/ x- B4 a/ j6 j# `. nPublic Function Crypt(pLngMessage, pLngKey) ! Z+ K! r& z- _( a3 t
On Error Resume Next
1 N" ?! b, S& q$ ^) zDim lLngMod
( n1 d0 M% n$ ^+ e  ODim lLngResult
) }3 `) a9 j) F! H7 y( lDim lLngIndex , P' x1 N5 ?$ R
If pLngKey Mod 2 = 0 Then " {4 t$ s% L3 R% R1 G
lLngResult = 1 $ d* c2 J: |; K2 ]
For lLngIndex = 1 To pLngKey / 2 5 G" {4 T0 h( r) q3 @2 [6 D' r
lLngMod = (pLngMessage ^ 2) Mod Modulus , @3 z7 _( ]- J2 l) a8 r8 l
' Mod may error on key generation # @; [5 q! @. j1 P. i
lLngResult = (lLngMod * lLngResult) Mod Modulus   \' _3 c. v  z. s1 U( s! K: n
If Err Then Exit Function & @5 V* q4 h5 C5 ]
Next ! k7 h  u, t2 D2 _" b* r- J. M; C
Else
2 A4 D' U$ m4 e. F* D4 g" IlLngResult = pLngMessage
  h! z6 ^! V: q  AFor lLngIndex = 1 To pLngKey / 2 # _9 z* a( v5 K6 }! g
lLngMod = (pLngMessage ^ 2) Mod Modulus - F# q* d" g7 q" {* P4 x% w
On Error Resume Next : r8 K: j9 t! n3 u2 O
' Mod may error on key generation
7 Q+ B; Y! A0 C8 s9 e4 k- NlLngResult = (lLngMod * lLngResult) Mod Modulus
+ C5 X) l# R% I  ?8 l- pIf Err Then Exit Function
! Y9 D" [& F7 s5 [Next
8 R* _6 I0 f  H5 F( w9 iEnd If 3 a& d9 Q& z7 P8 H, R6 Q
Crypt = lLngResult
0 l2 f, a0 d4 X% w( T. B9 MEnd Function) `+ I5 }$ F! l7 l
7 x/ s% D' R. W, `4 k
Public Function Encode(ByVal pStrMessage)
' @' M8 A0 d* Q. R; t  t( g, S. jDim lLngIndex 2 y6 {2 c& d7 b4 W! p2 v! G
Dim lLngMaxIndex . W2 i) k/ n) ]6 @
Dim lBytAscii
' |4 J7 ]; B2 b. y& P% a# G4 D. _Dim lLngEncrypted
8 H9 Q' W" ^( ^* jlLngMaxIndex = Len(pStrMessage) : q" h  A8 P6 c
If lLngMaxIndex = 0 Then Exit Function 0 [4 z- Z$ O  L$ u  B
For lLngIndex = 1 To lLngMaxIndex
! R' H( U6 h6 G, J* jlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ! G1 x$ ?1 G0 E: g! D+ w
lLngEncrypted = Crypt(lBytAscii, PublicKey) 8 R5 Y, u' q+ e8 d1 m' D
Encode = Encode & NumberToHex(lLngEncrypted, 4)
1 Q0 b" ^, B' u- J0 NNext
. L& U. P( j( MEnd Function 4 L. U. L, `" Z2 e
Public Function Decode(ByVal pStrMessage) 9 E$ ]) i  [8 G6 C. o% Q
Dim lBytAscii # J/ ]8 Q& E& A: C1 [7 E/ f
Dim lLngIndex , R% A+ }4 w8 C+ O" k* J* T
Dim lLngMaxIndex * M: K+ x2 u- @) f+ U2 y) q
Dim lLngEncryptedData
: x( z+ D$ x7 bDecode = "" 9 n( z: b. L2 G3 l# i" U. u
lLngMaxIndex = Len(pStrMessage)
$ |" ]* ~& ~9 S6 q# hFor lLngIndex = 1 To lLngMaxIndex Step 4 " D! l$ P' e5 x: |, B
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
/ W' Q  `( E) M  L. DlBytAscii = Crypt(lLngEncryptedData, PrivateKey) " c: e# A0 h( M  J0 ]& A% H
Decode = Decode & Chr(lBytAscii) " E- T, j; L! i  E
Next * G# a1 [6 g: ]
End Function 2 d! f- S4 b7 A9 U% P% `
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) % C& N5 s( e$ y% k9 j
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
: O7 Q/ I4 j% J2 r* HEnd Function ' e1 f+ g. q4 l1 [
Private Function HexToNumber(ByRef pStrHex) 4 ~- |7 d$ G4 R5 R6 v( C. X
HexToNumber = CLng("&h" & pStrHex)
# Z- u* q% l8 u4 r- h/ T, [; LEnd Function
5 r* I* M& a, K" K  @, a) wEnd Class
; d2 R( o. l8 b$ w# g* ifunction Encryptstr(Message)
% D- L" r& I" l2 zDim LngKeyE 7 |3 C6 e1 A1 n! c) M
Dim LngKeyD
( n& [) X( Q2 `/ [Dim LngKeyN
8 }  T& y; t8 @  ~Dim StrMessage   I: N! ?8 ^$ c# A: n
Dim ObjRSA $ n! v5 I/ m9 ?2 j& I2 ^
LngKeyE = "32823" 8 F8 u" [" I' D' T/ u9 r2 o
LngKeyD = "20643"
2 E+ U* u  q5 O; }9 ILngKeyN = "29893" / A6 q7 {- K5 t2 W; Y5 e
StrMessage = Message * R9 c  ]# L. k# G6 |
Set ObjRSA = New clsRSA
) K* _! [# i/ {- _8 Y8 IObjRSA.PublicKey = LngKeyE
5 X6 w* L! L4 i3 `9 LObjRSA.Modulus = LngKeyN . E8 l& K# c, ?& f' m
Encryptstr = ObjRSA.Encode(StrMessage)
- |; F; E  H& t. a5 v  |6 X  JSet ObjRSA = Nothing " m7 W3 i! x* N6 ~" p7 r
end function9 }2 J7 _& b- Y7 k5 c1 W! o0 ?
Function Decryptstr(Message) ' U5 S: [8 b7 K
Dim LngKeyE
) Y* T3 A/ N% b' l' c% e; w% W2 ^; RDim LngKeyD 3 R/ \2 @  V' W+ L" }
Dim LngKeyN
6 ^  E4 V+ z9 }) e9 c( N1 }Dim StrMessage
6 e# v4 b# u9 S9 A" Z3 k' d" k8 g+ ^Dim ObjRSA
0 f$ z. V% s% R1 |( S. ]4 jLngKeyE = "32823" 6 l" z3 J' S7 j1 ~
LngKeyD = "20643" 8 e- _+ R! c7 J& e! g* p
LngKeyN = "29893"
+ s$ K# L3 e* K0 R5 g$ lStrMessage = Message
% ]4 K" y' v8 t7 N( fSet ObjRSA = New clsRSA 8 \4 y5 H9 R6 y# B
ObjRSA.PrivateKey =LngKeyD
+ a9 O1 v* q6 d1 \7 wObjRSA.Modulus=LngKeyN 2 Q6 M% l% e* q( W+ x' W
decryptstr=ObjRSA.Decode(StrMessage) ( I; y5 h# d9 R1 y# c2 \+ w/ e  {
Set ObjRSA = Nothing : I+ ]2 i+ \. i/ I: W6 K  Z5 A
end function 4 a. n! ]' K" C! |& J, d. M
%>
  H) X. O. m; \: ^% d; n! C===============================================5 `. d% I; `/ e: g$ D9 d$ A7 W

8 ?" a, n0 n1 W2 `" {3 S" h还有一个用于测试这段代码的test.asp
$ ^7 |2 ?  n  g( Z! k1 u: w4 f有兴趣的自己搭建个IIS测试下' U/ |/ D7 {6 U: x+ B! s; s' T
<!--#INCLUDE FILE="RSA.asp"--> # `$ X3 L9 q1 w) G2 J4 }3 v+ Y
<%
& D( _/ G% W/ g# Mfunction Encryptstr(Message)
( p: o. D( T$ N1 bDim LngKeyE * H) @  s  V& B3 u1 i0 Y2 d
Dim LngKeyD , |6 Z* m/ A/ W# H( H
Dim LngKeyN 1 _3 h  |8 U. H& q
Dim StrMessage ( u. H; {5 T/ ^" m
Dim ObjRSA
% S+ x' _' y- N  s% W# [LngKeyE = "32823" ; c% a3 ?% [. f7 I, K
LngKeyD = "20643"
/ c$ V% j. N! |1 g! j& GLngKeyN = "29893"
$ N, V; j- ^! |; r8 uStrMessage = Message $ `7 T$ Q( O1 G9 r9 S+ v$ L
Set ObjRSA = New clsRSA , f5 ~" p3 o6 |. o
ObjRSA.PublicKey = LngKeyE " F* q: u8 A0 }2 p& h
ObjRSA.Modulus = LngKeyN * v* x* h# G7 e/ k  t
Encryptstr = ObjRSA.Encode(StrMessage) % m& Y% S. V/ a
Set ObjRSA = Nothing
1 i1 J- z. _: v( r- J9 |end function
% X, C0 [* n/ P. tfunction decryptstr(Message)
1 |. E8 L+ D7 }4 d& \Dim LngKeyE
) b! s& e5 T9 s+ S6 GDim LngKeyD 3 z: g4 Z; R! K9 l: i! B4 l% h
Dim LngKeyN
$ U3 R$ t+ `$ f+ Q/ }" EDim StrMessage / K7 ~! t4 _+ a# R
Dim ObjRSA
4 F7 ?' o1 J% \' r& S: [6 Y" W$ ~. ?# iLngKeyE = "32823"
- z8 A5 W$ F% y# n! r" oLngKeyD = "20643"
7 B6 X& g" W0 ~# y# Y) nLngKeyN = "29893"
" z6 e$ h9 Q" e, G2 EStrMessage = Message " W" w% m+ z$ o5 I
Set ObjRSA = New clsRSA 3 l. q+ m# r" v; h8 {. r) v
ObjRSA.PrivateKey =LngKeyD
- l% T. W+ J; _ObjRSA.Modulus=LngKeyN 8 X1 m3 \' u  ?! M
decryptstr=ObjRSA.Decode(StrMessage) & b4 Q# O: Y8 |( `1 W, i" ?
Set ObjRSA = Nothing 6 U1 ]# r8 o5 O. H) K3 {$ X  V
end function * O. v; _" H+ w$ B) j4 K) A/ ^! K5 {
dim last,first 4 l3 V0 _4 n0 P1 x# K
first="!@#$%^&*()" 1 |' f+ p+ k0 p& e3 l0 |, u
Response.Write "加密前为:"&first
  r# C3 Y# A3 Y+ m" S% F& Mlast=Encryptstr(first)
1 A2 H4 N* V/ Y5 |Response.Write "加密后为"&last   V% B, d3 [, K* I1 j2 Z
Response.Write "解密后为" &decryptstr(last)
8 m# v. g' B1 ]8 L% ]# l! f%> ==============================================
' E7 {) p" @' K, ]3 G: H剩下的就是字符的对照表了4 E" B$ c3 T$ f
===================字符集================
7 I( t: u, S4 i" |& t. q1_____6EBB
& u/ `5 {5 k  i/ @4 z2_____5C1F+ [( ^9 ~! S  R/ }
3_____4D75
- Z" m* g9 o: O3 a+ O4 z- }4_____26CC* Z6 {; K8 F/ z" u0 Q, x( p, B
5_____4F889 v: A* [$ r7 P  U
6_____3F4E* o# E$ u% i  k# `" _1 S1 s
7_____0A9D6 W' P$ S: D# ]/ t
8_____1A1C  {* q9 C3 ~8 ?3 W
9_____6D20- O7 }5 y6 b3 [, g* Y7 a8 P) h$ g
0_____1089
/ C, F: {# E  qa_____0F3E. n0 \( X- p4 T/ m8 ?7 E
b_____31592 M% J( j* [4 M" j& `  b
c_____3517
; B4 J3 q* M5 [- Xd_____419C$ k4 P5 c( U  D% e- a# b( Q
e_____615C0 R! ~" T* `9 G7 r# q7 q
f_____556F. d- ?) H; [$ W5 w4 u# h
g_____2B7F
& c- A  w! _- Sh_____0F9C$ n+ X, d  @2 H8 l( e' g
i_____00FA
) S" a9 ?. o8 @" N9 q6 j0 Qj_____5A505 w3 |; ~9 _! d, y
k_____2850
4 k7 R, s! c# q7 q8 j1 N* Yl_____3E7B7 k7 n4 e6 a2 W3 ?
m_____71C58 |1 G+ e3 y3 u# Z. l1 m
n_____1FC8" v0 o: j& ^& o1 k3 [) U: k
o_____74C10 i' k+ |$ A" M3 O) u5 f4 t5 J
p_____5FB8  o" q% k- z) q' s( [" a2 O) |2 Y
q_____6085
/ S( y- O1 d4 y' J# z/ or_____3AC4) X& @' O8 V& y; a0 C# ]" a
s_____2F50; n4 R, K* _3 Z2 x
t_____36F8
, ~* L6 Q4 A" M* l' Q: ju_____7010
4 R( p+ q( H3 }  D$ ~# ev_____0B42
) D3 j+ F$ `0 k- g+ E% _9 Zw_____1C7A
0 N0 F3 U4 _8 i' D7 bx_____16F8' O  a, z5 ?( t% M
y_____2EE7& k) i4 X  s0 v6 m: ~0 m
z_____5CF38 G8 M" E9 |5 d3 z2 n
!_____6233" C$ E2 g1 J% C* t
@_____3A45
# V7 b. L1 E0 l, d) H2 j1 s#_____2291
. ?4 `5 V6 w, f1 K$_____5D5C
. Y9 C% e: z2 V8 `2 t) C- [%_____09B9% S6 u4 ~3 B3 e% v  t2 X
^_____43EA* c9 X( t9 C; i6 [) q
&_____62B9
. y7 M' ?7 r4 M0 ]*_____6301
5 L& ^* i# r6 a1 E* V7 k+ @9 ?% h0 f(_____4659- a* Y/ V; n# n
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表