返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm/ D& |2 `3 {9 s6 u
原始出处:http://www.3ast.com.cm/ v1 b% ^9 L( }3 ]# e  h& v. `: Z

/ a; [, ?; y, U- k; G: `看不懂的直接绕过
# C! x: X  ^) {: H/ H# }加密前为:hwy123456
8 f2 p2 X: s3 V- e加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
/ m* I! r1 i) x, P; R
" b% ^- }8 X$ L& X' S============================================
# ]2 C. w3 m  d& U7 n. K  R上面是当时自己校内的心情。现在已经解破出来了,分享给大家$ p' D$ t7 Q1 L& w2 R: J# l9 i
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
6 b# F0 q" x) B以下是RSA算法文件" N, ?3 N* {- |* v. ^7 N
2 g# h, \3 U) s0 N
文件名RSA.ASP
) a; t. |: j8 n1 s1 ?/ j===============================================$ k9 G/ e5 S! G! E3 Z4 T6 u7 M$ f
<% # p7 ~% Q1 y9 v. P
Class clsRSA * B/ n# D3 r0 s" U% j: Y) N7 T
Public PrivateKey
/ B* b! ]; H6 e5 x) ^$ T7 `Public PublicKey
! n7 l) j% C. z# e3 ~- FPublic Modulus
4 u" v/ Z0 ?9 O  R+ xPublic Function Crypt(pLngMessage, pLngKey)
  i; B% |' i& i4 ZOn Error Resume Next
2 V7 e/ c- J; IDim lLngMod + S4 ^: G6 {* a3 C' C  g
Dim lLngResult 6 V) F1 O5 S2 e& v$ q% a
Dim lLngIndex
. I* O6 Y( Z; J! b5 OIf pLngKey Mod 2 = 0 Then ' Y$ S- A) Y% |
lLngResult = 1
2 z! l0 D: S+ g$ P) [For lLngIndex = 1 To pLngKey / 2
* t7 H; s5 n5 TlLngMod = (pLngMessage ^ 2) Mod Modulus
% I; y2 V$ @# l& q' Mod may error on key generation 5 r& B0 }* W& N' a& k
lLngResult = (lLngMod * lLngResult) Mod Modulus ( _0 J" N- o0 R4 i
If Err Then Exit Function
& |9 U. r& f  N4 @1 ZNext
9 @4 _* O6 _) U; nElse 6 `% c1 {  I# E6 J% U9 e7 w5 n& `
lLngResult = pLngMessage % R3 S. w# Z  d' W
For lLngIndex = 1 To pLngKey / 2 - z% [& `# R3 N1 C
lLngMod = (pLngMessage ^ 2) Mod Modulus , j. e% T+ I0 M8 K( }& s& d
On Error Resume Next
4 a. C) A3 L, r- H# C+ L' Mod may error on key generation
% ~2 W3 V* o8 X! {! a5 t% F" z5 b% f" jlLngResult = (lLngMod * lLngResult) Mod Modulus 6 L; E+ V" R3 u
If Err Then Exit Function ( d7 x: W* V" x( I0 X
Next
( d  A# T; q, \) MEnd If
1 h6 b9 T) e3 O  E7 Z/ r" |Crypt = lLngResult   q: V. g) A( C8 l2 l1 B
End Function
- R4 W% o. }- P9 E; |0 a6 I$ Q
9 M5 S8 x/ F- i/ z! T0 P. C7 sPublic Function Encode(ByVal pStrMessage)
' R$ Q" M& w& t# V* {, WDim lLngIndex 1 z7 R2 X; u5 R1 K& Z
Dim lLngMaxIndex
3 J& U8 j+ Q  n7 eDim lBytAscii ) P1 `8 N: x. N0 B3 t3 E
Dim lLngEncrypted " Q+ K9 Q& O  A3 q
lLngMaxIndex = Len(pStrMessage)
/ l, t3 R6 b% r8 `( l5 [If lLngMaxIndex = 0 Then Exit Function ; K( r; z* }6 N* b: S
For lLngIndex = 1 To lLngMaxIndex
6 x6 _6 M% S7 o8 t8 `lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) % X6 N: S/ i0 W5 l
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 }: ^* [! c. n+ X) b
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' X* D2 s" l; P/ H+ Z. A7 wNext & Q7 N, A1 H, L: P5 G3 b
End Function
: {: G9 N. n6 ?& T6 d! x; D9 b5 K0 x2 {8 YPublic Function Decode(ByVal pStrMessage)
4 C, j! V: u' N# VDim lBytAscii 2 k9 h" l, G* Z7 ]- T! h' C
Dim lLngIndex ) o0 y0 L" Y- m& l* ]7 k. F0 Q3 |8 d
Dim lLngMaxIndex
9 K# d* E9 n! {: R3 o2 E8 h9 IDim lLngEncryptedData
6 S% G# t2 E. g, k- C6 U5 }Decode = ""
6 j; G3 \* o+ ^lLngMaxIndex = Len(pStrMessage) 5 T8 @" i. [8 X9 u; P, F$ m+ R! K
For lLngIndex = 1 To lLngMaxIndex Step 4 5 }- Q1 ~3 S: L5 c  A, ~3 W
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
0 J- p; |' e. |6 i  O/ ylBytAscii = Crypt(lLngEncryptedData, PrivateKey) 5 O3 i. U) c# K) f/ V. [0 j6 ~0 g
Decode = Decode & Chr(lBytAscii)
1 X2 E1 P$ M8 Y+ V1 K- B% K9 ^Next
' s. U8 l% r1 N/ h6 xEnd Function ; Y$ l8 w% s4 c5 ^
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! G$ i! o+ s( d% }  h
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
# G/ u( I! N5 bEnd Function - M" u! F9 l9 V, g* Q
Private Function HexToNumber(ByRef pStrHex)
1 q  ~% g- }8 A! q0 j8 m" N0 L' n4 @HexToNumber = CLng("&h" & pStrHex) # P7 u- o8 }+ z4 H
End Function
! X8 m  T8 x9 HEnd Class 8 ?% X# A% |: B" N( l8 @+ N- b" e
function Encryptstr(Message)
; C, I9 H5 m! O" \5 Q* l; j6 T' p) aDim LngKeyE
% K# M" J( L( a( ~, x( \Dim LngKeyD
8 p  ~/ K2 Z5 c0 ADim LngKeyN
3 w0 W$ |1 Q- t- GDim StrMessage
( a  K# A( i5 E! n7 VDim ObjRSA $ X$ f% r/ s; D* ]5 ]! a
LngKeyE = "32823" $ u( y- C* W, C+ H$ v
LngKeyD = "20643" 2 [) X9 a& y4 i4 b
LngKeyN = "29893" 8 Y! w/ v$ f/ b
StrMessage = Message
! p) Q5 U* \& T: m5 ^1 VSet ObjRSA = New clsRSA
# n# X: Z( l: c$ }ObjRSA.PublicKey = LngKeyE ; b0 u4 F9 C& R! z1 O% a
ObjRSA.Modulus = LngKeyN ( `  [8 @; N" B6 ?
Encryptstr = ObjRSA.Encode(StrMessage)
8 z& M! T' F9 @1 m+ e% nSet ObjRSA = Nothing + p% |. j7 m; l) x+ P$ D3 Y
end function
' ^  c  ^% }/ A& W+ h2 OFunction Decryptstr(Message) ; F* U- H/ }( I2 s. E
Dim LngKeyE 2 M1 n, s, A$ D* d, C0 ~, i7 q
Dim LngKeyD 9 q+ j8 p6 N9 C& @
Dim LngKeyN . i$ J7 U9 t, j0 F& s' H* O
Dim StrMessage
! R5 b, v& Z  ?$ [) V7 E( WDim ObjRSA 3 `/ {! H0 E5 D7 V" H, y6 }5 b) y% \8 [
LngKeyE = "32823" : R7 _& U: V: }
LngKeyD = "20643" 0 n9 ^" C' i  l% j* o
LngKeyN = "29893" 7 t2 I1 G$ }% h3 k5 d; p' J: _) ]
StrMessage = Message
0 {* T" T% a: ?4 ^, D# gSet ObjRSA = New clsRSA 2 P% ?0 N3 f5 ]& Z4 f8 x, o
ObjRSA.PrivateKey =LngKeyD
& |3 n+ O1 P7 z" l3 nObjRSA.Modulus=LngKeyN 0 H" e; w) o# O* J6 n: j
decryptstr=ObjRSA.Decode(StrMessage)
" H% Y6 s3 Y1 I# f' Y" k0 RSet ObjRSA = Nothing
% K1 q; E( \% L7 |9 `" k( iend function
" b1 k/ }0 R' d5 x( J9 ^/ p' ?0 J%>
6 A6 _5 Z0 `+ C===============================================! G" t6 j2 N( M: H& t2 M9 s

( g' H/ K* E$ v( {' Q7 Y( J, a还有一个用于测试这段代码的test.asp
# U2 w' u2 \6 y! S0 R. ?6 P) B  U有兴趣的自己搭建个IIS测试下! c+ H0 V% Z5 w0 I/ [; I! m
<!--#INCLUDE FILE="RSA.asp"-->   P  R4 Y2 }" J. m
<%
& V6 I/ V, w1 Kfunction Encryptstr(Message) " e7 T4 W) Q+ v0 b
Dim LngKeyE % b/ \0 p- w* d; r
Dim LngKeyD
: R$ Z' {; [* t# i( ^Dim LngKeyN 3 r3 ~' v% j9 [7 O4 e6 G8 n
Dim StrMessage
: q" t3 A6 v$ q/ G8 [7 fDim ObjRSA ; |/ O; @2 ~9 y0 Q/ N) g: l
LngKeyE = "32823"
" j& E1 `- l9 w' HLngKeyD = "20643"
4 @4 l. F& M2 G9 P" o  L5 X& h7 SLngKeyN = "29893" 1 H- ]/ m0 D9 V3 b2 f0 _
StrMessage = Message
  R: ~4 M% P4 \Set ObjRSA = New clsRSA ' s$ z* X. y. `2 }' M
ObjRSA.PublicKey = LngKeyE ! r% V, E& B4 P+ m/ o$ ^3 V
ObjRSA.Modulus = LngKeyN
+ j& a$ @$ L4 K; w* \. aEncryptstr = ObjRSA.Encode(StrMessage)
/ ]7 x* D! `! Y' @/ _Set ObjRSA = Nothing
& x. B3 Y4 ?/ vend function . {4 n* ?7 K4 G& u4 C
function decryptstr(Message)
) h+ I4 j( ]% r  [Dim LngKeyE 4 P/ f9 b6 W' [2 n3 l
Dim LngKeyD
- n' x2 v2 d& K8 I6 XDim LngKeyN
- a5 Q+ D+ S: Q- y3 ]; M- SDim StrMessage / a# @5 D. M6 g  }! f# e! |
Dim ObjRSA 2 C+ \* z/ O3 L# i- R
LngKeyE = "32823"
2 |3 l8 i/ M, z& X8 x2 kLngKeyD = "20643" ; i8 `5 Q; {  @- ]4 X. f
LngKeyN = "29893" 9 K) r4 x) c$ W* L0 V
StrMessage = Message
5 K4 \* ~( X" j* c4 V* N/ \% q, dSet ObjRSA = New clsRSA
' a+ ]! _( `& }. N9 x! f) yObjRSA.PrivateKey =LngKeyD
1 ^4 i% ^' Q. J% o1 LObjRSA.Modulus=LngKeyN % y* P& _- D% E5 F& ^& {6 v
decryptstr=ObjRSA.Decode(StrMessage) 4 b9 b. Q. `5 m2 t7 X2 b  r" E
Set ObjRSA = Nothing + G) _5 r  ^3 N7 E3 J$ n3 }
end function 1 C7 j: l& O! T' Q0 X6 S
dim last,first + N0 a+ R; j6 e$ C1 l
first="!@#$%^&*()" 7 c. t$ Q4 S5 A/ s6 C$ X0 d/ p
Response.Write "加密前为:"&first
8 W! `" I* h# f5 Klast=Encryptstr(first)
" f; N1 L) k1 n8 H1 `Response.Write "加密后为"&last   [/ o5 \% N" L
Response.Write "解密后为" &decryptstr(last)
) t9 s4 t( A* H4 T' _/ `1 l( B* ]1 ]. s%> ==============================================
. j: z+ y# }0 G' C, K) s剩下的就是字符的对照表了
9 T$ s1 M7 u, j  G% Y3 P===================字符集================
3 T9 C% e9 p' c2 Y9 P$ Y% B1_____6EBB
, J3 }: i: D* v/ k2_____5C1F6 M$ _. ]: d. W# ~: z; ]' C
3_____4D75+ v3 G+ Z! F" H) V4 U1 T
4_____26CC
1 t6 W' c& B3 `" P5_____4F881 l* O  \& v) g, x( s! d3 T' {  ?! i
6_____3F4E
- X2 L/ ]: y9 i4 X7_____0A9D
9 Z# J3 b- a  x5 |$ W  [8_____1A1C
8 y1 o2 H: O0 S0 u9_____6D20- }) W& X6 F) X$ j) q/ _
0_____1089" \. e: P7 V$ _  o" e
a_____0F3E
1 v- X7 k* B8 t/ pb_____3159$ b+ z" h: c0 {# h6 h6 X- b
c_____3517
* {  y. Z+ G& qd_____419C/ x. c( O6 ]+ O) d2 M" Q
e_____615C
5 R) w$ @* \0 ?0 T, M- ?- _4 Sf_____556F
- b- z  M3 L4 ?7 `0 zg_____2B7F1 H/ x* y' X* H0 X$ [% J
h_____0F9C
2 U. |% }& ~  x; wi_____00FA- w$ S$ K2 f  _6 {* p; O7 H
j_____5A50. G8 }& E( g" q+ M& U( d
k_____2850/ y$ D8 E7 S, t3 t# f; j
l_____3E7B
( w( m  @, `+ x$ Wm_____71C53 w+ Q; }  G. C- {
n_____1FC89 ^+ Z1 h+ Z0 ^# \) s
o_____74C1; ]$ P3 a( S5 t6 H, \$ G0 N
p_____5FB8
, S' a1 u; ]) W: `) T: [0 [q_____6085" h# b, @; k* d
r_____3AC4
  V2 s1 E1 B2 \2 V4 t# n9 Hs_____2F50  J6 B$ o- B$ i3 S
t_____36F8
2 b3 R# S  t: [. R9 g( Q$ L" i1 Ou_____7010# [; b# |$ N! T& a
v_____0B42" g* ]* W0 E0 Q( w
w_____1C7A8 Z8 J  F2 W. b
x_____16F8
  m' v" |4 M1 \+ [( i1 R$ \3 g! zy_____2EE7  B1 M; d6 w4 w9 Q' w
z_____5CF39 ~7 v/ H7 v& M3 \5 l3 D# ]
!_____6233; J' @4 ^5 z& X, c3 C4 u1 Z
@_____3A45: q# r% V+ x1 J; _( s
#_____2291
/ H. h; c' i8 f$_____5D5C
$ u' Z+ W- W+ i' ?%_____09B9) u* z# Q, L1 C4 r; z: ~
^_____43EA1 j% \9 w! G/ {
&_____62B9( \  e( h* _+ g
*_____6301' C2 I' ^8 q( P- _8 M
(_____4659! h" D/ f! B+ h' b9 H# P4 g
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表