返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
; L" V0 L3 ?& J, I" K$ H原始出处:http://www.3ast.com.cm
: K5 [0 h5 n# ?& I5 t) M' W% L! ?3 z) h
看不懂的直接绕过
& _6 {2 g) @: c; h' O+ |. c加密前为:hwy123456. x4 a  W, e* I: }
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
& D# q) \! v1 U% a- _+ C% S& h* x! e8 }3 ~4 H
============================================  C3 k: Q& @" {, ^) U4 V
上面是当时自己校内的心情。现在已经解破出来了,分享给大家' W, u  \0 Q1 _) W2 @, o/ x$ j  K
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法' B- I9 r8 y" s- T$ P9 P7 m/ C
以下是RSA算法文件
2 A' C# V! f! }& F, z( b' T# x. p
' @1 l3 T5 O5 K5 M' s6 \文件名RSA.ASP0 L  d1 c! T$ B9 G/ {! K# C& m4 |
===============================================+ h4 i# r1 Q3 [/ {6 S5 Y6 W) v
<%
/ \) H' K. p* Z6 o! D1 n  y$ n  vClass clsRSA
5 l5 P: M+ X' [' R1 q6 a1 o. X. GPublic PrivateKey
3 z/ L( k7 r3 T' b* u, ]/ \Public PublicKey
" v' h) |$ i3 N; F* X9 [0 R$ FPublic Modulus 6 }! t$ V) b( a# A8 s8 Q( k
Public Function Crypt(pLngMessage, pLngKey)
$ \% K  \$ o  p, @- rOn Error Resume Next ( G- p$ d" a- M. s3 _' z: d
Dim lLngMod . j" L: j2 H6 l. K2 b& \
Dim lLngResult
4 J5 s5 y. U, |  j: yDim lLngIndex
$ K" N1 e7 S) k! o: Y7 [. a* r1 {If pLngKey Mod 2 = 0 Then
) _0 t) P6 u" AlLngResult = 1
- s3 T% x: Y: j& b7 pFor lLngIndex = 1 To pLngKey / 2 $ |9 @3 f( G% L# X# L
lLngMod = (pLngMessage ^ 2) Mod Modulus - m$ }# ~; h9 f2 {' Q
' Mod may error on key generation
' j$ G1 I+ s2 glLngResult = (lLngMod * lLngResult) Mod Modulus 4 z: L* f7 _# O! ]( l8 M5 {
If Err Then Exit Function ; k) f" {' o0 S& W0 N1 j% i" P
Next
  c( J% i) Q- W, `' ?  G7 NElse " m# r* ^/ \% k( @
lLngResult = pLngMessage
- K% m9 X" n6 dFor lLngIndex = 1 To pLngKey / 2 & @! K' b8 L6 Y: ~, y
lLngMod = (pLngMessage ^ 2) Mod Modulus 6 x5 `, ~3 B, @  d
On Error Resume Next
/ p8 _% j- c1 [& p7 T2 ~: i8 x( B$ p; g' Mod may error on key generation 1 ^! Y) \: A" V0 r: O
lLngResult = (lLngMod * lLngResult) Mod Modulus
7 _9 t( K2 `: G% ^7 ]8 l, v9 rIf Err Then Exit Function
* B1 g) {6 @. I/ J7 T) nNext
# Q. {: [+ s0 g& m$ p. s- AEnd If
. U( J1 A, m' F5 U- h7 NCrypt = lLngResult 1 O/ `4 r, Y# B+ y/ B5 u7 a
End Function
/ O& v- r; u; {1 Y( J% a+ D& d+ T$ c: A+ J  Q' i* I) t
Public Function Encode(ByVal pStrMessage)   d% c. D' B/ d; N2 C
Dim lLngIndex : j# D, d  l/ B6 j/ l
Dim lLngMaxIndex - a  m3 S3 t/ \) T. ]7 L
Dim lBytAscii . o# O% o9 Z4 \- }# g
Dim lLngEncrypted
0 ?5 R0 w  v, ?: d, c% r9 e, [* P/ SlLngMaxIndex = Len(pStrMessage) 9 d! ~$ D/ {7 j! }
If lLngMaxIndex = 0 Then Exit Function
* T( Q" C8 ^# QFor lLngIndex = 1 To lLngMaxIndex
% R% `/ A/ k; r; P" i+ Q4 klBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # u0 d3 e$ d& E8 u: I! \
lLngEncrypted = Crypt(lBytAscii, PublicKey)
4 V, X2 Y5 U7 l9 e# h$ cEncode = Encode & NumberToHex(lLngEncrypted, 4) * i9 k3 t& V# l. g, q+ f4 G
Next " @" k6 {" \; x1 W9 o* T6 N9 \
End Function 4 A9 k/ e5 y2 H% {! B9 W2 v
Public Function Decode(ByVal pStrMessage) ' U: V8 K" I0 C! G" D9 E' {7 m
Dim lBytAscii 2 Z( B0 j' o- L, o$ ~
Dim lLngIndex
' S! M8 g9 {8 h* O2 b; y" ?Dim lLngMaxIndex ! j5 u0 b, x9 B2 O9 z/ J+ [
Dim lLngEncryptedData / X0 G' k7 o2 Q  a
Decode = ""
' z8 ?2 l/ X) ]+ k  flLngMaxIndex = Len(pStrMessage)
% h/ t% l/ P4 n, v, ~7 yFor lLngIndex = 1 To lLngMaxIndex Step 4
) M! K5 p# d7 FlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
' Q+ I7 \- ^2 ZlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 8 b) b. B. z; ^9 }$ Z
Decode = Decode & Chr(lBytAscii)
5 {6 w* a  _8 ?Next ! B; Z/ V- g+ I6 i/ r
End Function
/ @6 [& a' g6 ~  lPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 7 k  n0 v; F; j" P5 y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) % j2 }- W, a; n' m+ {
End Function - V3 G; c7 r& S. L4 q8 J
Private Function HexToNumber(ByRef pStrHex)
3 o) e4 x0 N: ^; ?  K2 THexToNumber = CLng("&h" & pStrHex) 9 H# Y) N5 }+ \" ]! S5 j
End Function % X, c& |6 ]3 @# z9 z
End Class
# ^4 G; B: n. v/ p) ^function Encryptstr(Message) 6 o0 i" |/ D) c
Dim LngKeyE * W# `7 L# R; S
Dim LngKeyD
9 q# j' |7 W- h, W" EDim LngKeyN * Z, _7 t5 X: h' l
Dim StrMessage
9 f4 j; s. @6 t, kDim ObjRSA
0 |: {$ O9 M% H# F& P, TLngKeyE = "32823" * Y! k" ~0 i0 L8 a5 z4 \5 m( u
LngKeyD = "20643"
9 t$ W: ^8 K3 Q/ [LngKeyN = "29893"
5 D2 L/ i) d5 vStrMessage = Message   z1 P3 h: b+ g
Set ObjRSA = New clsRSA 3 V- B, J  o- X- X' L7 o: |9 v; `
ObjRSA.PublicKey = LngKeyE $ S- m; V" Y3 V
ObjRSA.Modulus = LngKeyN 3 z4 H3 C) N; K+ W+ S
Encryptstr = ObjRSA.Encode(StrMessage) 0 H  ^; V( A5 E4 K
Set ObjRSA = Nothing , K5 [& v2 z+ K) F2 i( C
end function
& F6 V  g1 ?7 ?7 GFunction Decryptstr(Message) * r- {" a# M  ?) B0 Y5 i% A
Dim LngKeyE
) O' M& B  S7 s  [4 O: xDim LngKeyD / c& a$ p4 Z1 ^0 Z) ?/ |
Dim LngKeyN
) M  H4 g6 l1 d# y- fDim StrMessage - ]) n4 J6 G, K9 k6 M
Dim ObjRSA
$ i' Q- ^" ~! Z" K* g0 j6 ^& ?5 ~LngKeyE = "32823" ( N! i  L+ [$ x1 B8 Q4 C
LngKeyD = "20643" 9 L8 i* H' x# Q# ]. A% Q
LngKeyN = "29893" . s% x: e- c/ g0 ~+ g, {( n) b
StrMessage = Message
3 F0 V1 j3 Y5 P, @. KSet ObjRSA = New clsRSA ! s8 d: _8 P& o. @7 g+ [+ x4 M" a
ObjRSA.PrivateKey =LngKeyD / }( Q* _* v/ d  p
ObjRSA.Modulus=LngKeyN
4 ]5 V" u/ [7 G2 \# Udecryptstr=ObjRSA.Decode(StrMessage) 3 Q& t- q5 i2 i4 t# K
Set ObjRSA = Nothing
/ a/ G, @9 j; T( N- {+ o& Vend function . |2 K( \; x* j# i& f! C7 g
%>. e: p" J% u( O0 D# O- Q
===============================================
% a8 F$ \& i1 E. p7 @" Q  b9 _& s4 i
: t; v, n8 M8 I& [2 k" X8 U还有一个用于测试这段代码的test.asp
6 O9 a1 q" n; O( o& j/ d有兴趣的自己搭建个IIS测试下2 q% E3 W$ ~# x0 v5 a5 ]
<!--#INCLUDE FILE="RSA.asp"-->
, _5 @, U$ F( E" l1 T6 L0 H<%
; @5 P$ i( I% zfunction Encryptstr(Message) * ~5 i# A" c- D9 A# `
Dim LngKeyE
1 d6 `6 n: I. |8 G0 X2 @Dim LngKeyD . n3 H) P# g; w/ ?6 I6 ^$ [
Dim LngKeyN
# U! S) e0 Y# y2 \, b2 }' y7 BDim StrMessage 2 a# m! E( p; M3 A1 B- \
Dim ObjRSA + h' g/ s4 y4 z* g% D" `% j
LngKeyE = "32823" 8 F. Z' Z4 f$ J/ B8 ^
LngKeyD = "20643"
/ g! a( Y8 V4 I+ zLngKeyN = "29893"
. C8 N9 D- u: Y9 f& @" M/ AStrMessage = Message : N! c, ?, m1 |& }$ `
Set ObjRSA = New clsRSA
( Q, A0 C& k* _ObjRSA.PublicKey = LngKeyE
- F% s5 J7 k- KObjRSA.Modulus = LngKeyN
1 f! y$ d5 V8 Z5 j" O/ IEncryptstr = ObjRSA.Encode(StrMessage)
/ @+ W/ j% A2 W* J5 aSet ObjRSA = Nothing
  G* q3 s4 X$ s* x4 X9 Fend function
9 u% h. E* J( ofunction decryptstr(Message)
4 T* `; D8 \# Y. Z& i; yDim LngKeyE
7 G( ]- r  p, M( e2 V$ V8 c# GDim LngKeyD
( ?5 I- e6 V  i- n( m: S# z8 x% X+ uDim LngKeyN
1 V5 ?/ [# e; m  Q. e0 J. e) a) cDim StrMessage 8 [; X# D$ R) F6 x' E
Dim ObjRSA
5 H" ]1 _" Q% iLngKeyE = "32823" " m% P' ^8 i+ y/ h9 H# Y' g
LngKeyD = "20643" 9 \; Z+ m! u  T: }) U/ L
LngKeyN = "29893" 2 |# z# [+ l: P
StrMessage = Message : g4 a  S2 y- w; I4 Y
Set ObjRSA = New clsRSA 3 ?9 ~- h) T8 w$ q2 Q/ y) U
ObjRSA.PrivateKey =LngKeyD
$ y# `; K  G, @; s- j/ z% WObjRSA.Modulus=LngKeyN 5 o5 J; \9 @0 ~) D% T
decryptstr=ObjRSA.Decode(StrMessage) , ~% e3 N% H# R* m% V# x$ N  m. h
Set ObjRSA = Nothing
/ P& f3 q: e5 ~' L4 T$ qend function
) W. N) v& e$ _% hdim last,first 0 T- b4 {) n6 Y
first="!@#$%^&*()" 7 i$ z) g0 d& ^5 _& c$ s
Response.Write "加密前为:"&first $ s  V# l5 O3 e/ m2 d9 |: \1 q
last=Encryptstr(first) 0 L* f+ z5 J4 ~9 k& \# a% z* e
Response.Write "加密后为"&last , @: Y$ A' h0 }) ]
Response.Write "解密后为" &decryptstr(last)
9 E8 w% |" Y9 @. h%> ==============================================
. ?5 e7 z" K' q- Y; L- ?剩下的就是字符的对照表了" b% `8 N! ?( Q7 z
===================字符集================, `# S0 P& O5 p9 M& D- E
1_____6EBB
0 J+ X: ?- h7 U  j) y2 l' ^4 U2_____5C1F2 p0 B& i/ f( g8 W9 s& e0 S
3_____4D75  t" {7 `4 e. x6 F
4_____26CC& O- _7 [" h& B8 [) M2 g7 i
5_____4F88' @% y9 F: H! q  `7 s6 ~3 N, ~
6_____3F4E
* v, L, N% `( p9 E7 U7_____0A9D
; B1 H# t; J  o1 l* f8_____1A1C. ?3 \* L- |) `
9_____6D20* p: I3 d* h# W4 ?6 x
0_____1089
9 m* l' ?4 m& ha_____0F3E
( N  N6 C+ [6 G6 ob_____3159( p( i- z5 z- t8 `; ]
c_____3517( z( ?1 `% E# R( P8 _
d_____419C
  N  d) L0 {% p  O) Ee_____615C
. f3 H/ O7 `' g- f0 g$ ~f_____556F  n+ X. r& E; h) y6 A9 J; M- i/ k7 y3 l; W
g_____2B7F
* Q  n/ \& n( Eh_____0F9C2 Z/ t* c$ _% H* ^
i_____00FA
5 c# s% E1 D; {9 S) bj_____5A506 Y7 i0 Y: Z$ A9 x7 d2 {
k_____2850
0 g/ E+ P- }) `, Q" `2 pl_____3E7B2 Z' F$ ?0 k2 j( F+ o3 m% X; @- D' P/ k
m_____71C5
$ r0 a7 U. j: Z- E% [: ~& ^3 [n_____1FC8
: |; w% I0 P1 L5 wo_____74C1
( r! ?1 F$ u9 r. T& @p_____5FB88 P3 B2 D: R/ d% J) d
q_____6085
; n" x2 B2 z, O! lr_____3AC4
) R3 U& Z( ?0 \% Y& P% gs_____2F50% Y9 x. _% t$ b) r
t_____36F8
* v; Z( N: _8 s, h# k2 @3 ^$ Cu_____7010+ x; \* L2 H* h; b3 w$ Y! F
v_____0B42& H' P' Y+ ^# ^8 f! L% T
w_____1C7A
* D1 W/ q/ l9 Px_____16F84 k7 j3 [$ d; Y+ x. I' V' r
y_____2EE7+ z, n. Y' o! W8 x  q
z_____5CF3
; f4 d& c& O4 z!_____6233
' i! [$ p* C' S# s' v@_____3A45
9 q" ?3 D) q% ?% p6 i#_____2291; d9 j+ s, b  I
$_____5D5C8 i! f% y  q2 K% r
%_____09B9, E6 v3 @1 L8 t0 _( B
^_____43EA
# K. }5 h5 [1 \6 L+ O" {&_____62B9
0 ]2 Q- i0 N) d*_____6301) |( R% m4 W' d: T6 u
(_____46596 T5 h# _% n" r9 S1 h3 g
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表