返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 N4 G, x9 w. F7 P; ~/ h
原始出处:http://www.3ast.com.cm
, e0 W+ K$ r$ H8 \  j1 v  B- A0 w9 H' q
看不懂的直接绕过# O' \8 K4 m  @, [
加密前为:hwy1234563 M& W$ n9 z6 o" V
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E+ t( L6 m% u" {8 \! k9 j" y

7 j+ v1 x+ M  D. b/ y============================================
* d* E6 N! _9 I8 W2 P上面是当时自己校内的心情。现在已经解破出来了,分享给大家
5 O3 U9 B4 n4 w! w; X也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
  P+ X0 e( O8 m. |0 N/ c: Y以下是RSA算法文件0 ]% @7 b0 n, d  T+ O6 Y
: N: a) K) U# f  d
文件名RSA.ASP
; T$ I5 n& l: G9 ]5 f+ O. J===============================================, A( p/ f3 j, m+ Q/ z6 I1 M$ A& j
<% . e/ F# U2 h* Z: {4 y
Class clsRSA
# ^$ m( l1 q, ^& V! l) o1 IPublic PrivateKey
  N9 p% [! Q8 O$ K; g$ K" G, aPublic PublicKey 2 o/ v- \' T9 |  t- v0 g
Public Modulus 4 z1 g: I% Z; r0 V; u+ w: y5 T
Public Function Crypt(pLngMessage, pLngKey) " f! v: \/ l0 I# h6 T3 W
On Error Resume Next " l5 G, d" m# O
Dim lLngMod % q2 O5 L  ^; U- S+ H* M
Dim lLngResult 6 ~8 Q+ `2 |+ }" G; I2 m4 G3 C
Dim lLngIndex
  r0 a8 ~/ g; L. E  C: vIf pLngKey Mod 2 = 0 Then - Z# `0 }6 h* u9 v
lLngResult = 1 1 O/ O" F# _1 W& O0 O
For lLngIndex = 1 To pLngKey / 2 2 K* J7 [* b$ ]% {7 F% ^
lLngMod = (pLngMessage ^ 2) Mod Modulus 7 B3 @( f+ M( Q! R) P
' Mod may error on key generation
7 J- Z. W8 X; p6 W/ flLngResult = (lLngMod * lLngResult) Mod Modulus
. q' G" t' f" q; ?8 y/ ~( \. aIf Err Then Exit Function
7 f$ W$ Q: H+ i% hNext # i: g0 y5 K) m5 }) {
Else # q3 b1 N0 G+ }' w1 M
lLngResult = pLngMessage 1 V% s/ j! a  V6 g% [, \
For lLngIndex = 1 To pLngKey / 2
0 l) b( R( B' _# WlLngMod = (pLngMessage ^ 2) Mod Modulus . `2 N/ d) w2 B0 v, V7 \* t
On Error Resume Next 7 A4 y! i, U( Y% B! B
' Mod may error on key generation
& W7 L' ^. p- {+ ylLngResult = (lLngMod * lLngResult) Mod Modulus
  V" N2 }  x9 ?* ]If Err Then Exit Function
# b& ?! @- C  g" ]% Y) p+ MNext
6 I% L: S! p" D) m9 lEnd If
) m: X+ T9 c' b( Z" pCrypt = lLngResult
% e+ A& k, ]( G! u1 GEnd Function
: u/ k( k# c5 s. Q  q5 r; p; ^3 c3 M* P7 b" d
Public Function Encode(ByVal pStrMessage) 0 M6 E: M. G. L$ c: G: n
Dim lLngIndex
) S2 O1 C2 Y' I5 mDim lLngMaxIndex
  N; ?) t4 `' I5 `& Q7 N0 K) WDim lBytAscii * N9 ^. m; s& h! o8 j& [
Dim lLngEncrypted + C( {- I8 H0 w1 Q; ]+ {
lLngMaxIndex = Len(pStrMessage) ! q5 F, }8 x/ v4 q7 v
If lLngMaxIndex = 0 Then Exit Function 0 R6 |! C& U+ n# Z
For lLngIndex = 1 To lLngMaxIndex 8 M/ O* D* d4 ~
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) + F  {; }$ n% d& N3 H+ i1 v
lLngEncrypted = Crypt(lBytAscii, PublicKey)
7 a4 z  F% R( Y: DEncode = Encode & NumberToHex(lLngEncrypted, 4)
+ D% g/ ]% t2 BNext . z$ d# {2 P5 G
End Function
# u1 @: r: ~' x8 e+ ~% ~Public Function Decode(ByVal pStrMessage) 2 e/ A9 d. H# T8 Z. e( |
Dim lBytAscii
' y8 _1 n3 v+ F% \3 ]3 v. S. p6 wDim lLngIndex
0 g1 H9 j/ O0 p/ j0 ]* dDim lLngMaxIndex 6 ^' q0 g, e) o! {( ?. I
Dim lLngEncryptedData 9 j/ I- N0 ~6 z* c. Q( C4 P
Decode = ""
4 H  S5 N% N4 K% Y. m. `  [) olLngMaxIndex = Len(pStrMessage)
) p$ @/ b" D$ _$ ?1 V6 {& iFor lLngIndex = 1 To lLngMaxIndex Step 4 6 \% ~- g3 f8 {6 Q( W9 k3 X! b0 x3 P
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ) ^) ]) \( k: z) c+ H6 U
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ F) Q6 J* n3 j7 l  z% e. DDecode = Decode & Chr(lBytAscii)
% L$ X8 {4 d1 D' c0 xNext
* U) K$ m  a( u. p% b9 @End Function
; z/ }: s2 h. j/ }7 tPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
1 z+ v7 p/ k5 n& yNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
  C6 v/ x2 O0 ]( W" [0 t2 W1 GEnd Function
% E4 G; p' x; w. Q7 F: G4 pPrivate Function HexToNumber(ByRef pStrHex) , u8 j( P6 s+ d3 Y6 E; b$ t
HexToNumber = CLng("&h" & pStrHex) 5 n) H. Y% j8 C0 ^
End Function
1 ~1 @' T& N3 |3 o# B  t6 R$ LEnd Class
" x9 C  w3 p9 c" Nfunction Encryptstr(Message)
" p- n, ~1 `( ~* p( `Dim LngKeyE
9 f3 W( a- W8 J. HDim LngKeyD $ H/ C6 q* a4 T" F% d$ E8 K: N
Dim LngKeyN 0 J2 K% \9 }. c
Dim StrMessage
9 D, Z% ]2 B, J  d) N0 K1 A: VDim ObjRSA 2 a, V( ?, a, F
LngKeyE = "32823"
& j$ i( _* ~9 R2 C1 c+ NLngKeyD = "20643" + t) T. x3 J. b/ Z
LngKeyN = "29893"
3 p7 H" v  Q8 x# q+ W! MStrMessage = Message
5 [- h5 c' R+ M$ @: k3 OSet ObjRSA = New clsRSA % B  \  c8 D5 Y7 r/ o: n4 A
ObjRSA.PublicKey = LngKeyE - f: _% v( Y+ ?/ p$ T* z1 y
ObjRSA.Modulus = LngKeyN
; c$ [( p3 k* EEncryptstr = ObjRSA.Encode(StrMessage)
( F9 d8 z+ x% a# ?Set ObjRSA = Nothing
/ I' w7 x+ i) w3 Z. L" w+ H& dend function
  K3 C. |! D0 t" dFunction Decryptstr(Message) . T9 K& g* E; G3 i* ?# R' N
Dim LngKeyE
; L- c0 i/ ^% b& n5 }Dim LngKeyD 4 v5 N. d) H2 k* {; d
Dim LngKeyN
9 D1 T6 P- X% l/ ODim StrMessage 2 U# O7 m; o* E# ]9 J
Dim ObjRSA
$ t) Q4 @6 x, \( i6 V: cLngKeyE = "32823"
) B: d! t% V" X2 WLngKeyD = "20643" ) ^" A) B$ O( b9 G$ L
LngKeyN = "29893"
* s0 g/ n: q/ u. B# t6 f) zStrMessage = Message % g7 R+ l7 `  y, m
Set ObjRSA = New clsRSA ( I% s+ }. b3 i$ O% T4 P
ObjRSA.PrivateKey =LngKeyD
) }" m% w5 e$ A, L8 mObjRSA.Modulus=LngKeyN 6 V/ a# A+ c. H: U7 Y
decryptstr=ObjRSA.Decode(StrMessage) . Y9 x$ ~- M& V# W8 F. |+ J
Set ObjRSA = Nothing
! N4 V' k5 Q9 dend function
! L. I, ?6 W( R%>
; G, e8 d- ^) a===============================================6 \. n4 i# k; [! d

: X1 V% t6 o9 [/ p+ C* g9 }还有一个用于测试这段代码的test.asp0 W& i2 A) b3 d% k3 ]. `1 P% b4 Z! J
有兴趣的自己搭建个IIS测试下( a# L+ ~/ H0 v- f1 X$ M: L
<!--#INCLUDE FILE="RSA.asp"-->
4 L$ _& q% c7 n. I+ K, w. M<%
& Z5 s6 G- h# m$ {4 q- C" w( }function Encryptstr(Message) ! V1 ]3 f( A9 n/ d
Dim LngKeyE
  {: ^8 k5 w. B8 A5 H! k7 Q. @/ bDim LngKeyD ! r, y6 q% H& V7 Z3 C3 z: I. H0 i
Dim LngKeyN $ [$ _0 r1 ]; k$ I3 m/ I
Dim StrMessage " T8 a6 h! ^; ?, S# ~; `
Dim ObjRSA
! f$ j% ~7 |7 s9 ~7 ~LngKeyE = "32823"
  P1 p/ @: Y( c# C0 {3 GLngKeyD = "20643" ) d& X# _8 Z% Y
LngKeyN = "29893" : _/ f1 S, Y- b9 k6 q+ d
StrMessage = Message
; E2 ?1 L) h+ B. K5 b5 wSet ObjRSA = New clsRSA ) J& B7 k# d7 D2 l" q  y5 H$ y1 Z
ObjRSA.PublicKey = LngKeyE # C! u# o8 D0 |2 q, b% O. J
ObjRSA.Modulus = LngKeyN 2 [. V& h4 n0 Y( I
Encryptstr = ObjRSA.Encode(StrMessage) ; G. C: M  m) u4 @1 p8 W( I
Set ObjRSA = Nothing
7 U4 K  i. u/ M# q3 O3 W1 i/ wend function 0 S. z4 _" E4 s
function decryptstr(Message) 7 s5 t; _$ G8 u& \" l; e' F" Y1 i
Dim LngKeyE
8 {, a0 q- ]7 u6 e( v; dDim LngKeyD
5 o4 ]( O( Z  h8 J0 C, kDim LngKeyN
7 }% t8 y' l( q* L+ G( e4 y9 \7 YDim StrMessage ( _& T: b! H. N& d/ u
Dim ObjRSA
* e; Q/ J8 Q5 A! Y, }) {) P) qLngKeyE = "32823"
7 S; j6 u  W$ Y3 q& D, oLngKeyD = "20643"
* @: y; Q1 Y6 Z1 ^! \8 z0 LLngKeyN = "29893"
! Z: l& W) u% [, h2 MStrMessage = Message 7 C& @7 w/ w% j' u/ X" d
Set ObjRSA = New clsRSA
5 B9 Y3 @+ N$ n" Z6 z# X% IObjRSA.PrivateKey =LngKeyD 0 i1 G6 D5 A2 V+ n! ~; o
ObjRSA.Modulus=LngKeyN : b/ p( X4 a3 D/ m" h+ A
decryptstr=ObjRSA.Decode(StrMessage)
( p1 d5 v1 r6 N# r8 \2 cSet ObjRSA = Nothing
( A/ q5 y! k2 U" a# M! Yend function
2 e$ K: c) @0 p1 Z$ X' ~- F5 Wdim last,first ; L( h7 p, ^- s% R0 \! E
first="!@#$%^&*()" $ L- a5 p( X( g) C; I: ]* R; {9 `
Response.Write "加密前为:"&first " e! l' Q$ X8 }8 M0 t
last=Encryptstr(first)   I0 s0 Q  F/ G2 ]
Response.Write "加密后为"&last
! [" ~- `5 y6 c- A5 G0 oResponse.Write "解密后为" &decryptstr(last) 2 `$ V. P9 T* Q# a" n' b8 ?% h/ X
%> ==============================================
" u! [- Y% G. R& Q. r2 u# o1 h剩下的就是字符的对照表了# [/ Y2 d2 v; Z! e0 [8 {9 o
===================字符集================
# r6 T1 y$ @# U+ h1_____6EBB
7 e: s4 E4 z5 u. s- [2_____5C1F
+ |$ T: J+ f5 m5 ^3_____4D75
- ^- s# l' r: {- S* f4_____26CC
4 {6 p& U: }5 _1 s6 S5_____4F88
) S. L# Q% z$ G, S9 ?3 s! n+ L6_____3F4E
( g+ \9 D# d, w5 l# q! t7_____0A9D
3 _  [6 s9 k4 d5 f& K6 |6 \8_____1A1C9 V, T- M- n& y# l
9_____6D20& N, C+ ?: C# n8 S
0_____1089* c9 P4 d# Q' V2 C- O& q
a_____0F3E
' ^7 {6 _6 A) C  T; D$ G- X7 ]b_____3159
6 c1 h, _& G9 K) n8 P1 Cc_____3517. {4 j1 z, ]' c) G) V, o# J9 G0 q
d_____419C
, G+ b' n5 A3 V7 |- [9 |: ge_____615C
# _! H4 R5 \- {, |+ Nf_____556F$ u5 D; }( q, k5 [! D$ E
g_____2B7F
3 }  \$ R- T& p. Lh_____0F9C
, f& B( `- D/ s* l; ~4 r8 \i_____00FA/ y; d( u* j; X, d- a1 T
j_____5A50
9 }4 M' k" c# U  i' O3 a6 bk_____2850. U1 |- `$ f& ~
l_____3E7B
+ ?( \, _: \5 i9 a( ]; Pm_____71C5" c; c- q$ X! A( L4 D& O
n_____1FC8
, M4 L9 V0 U- q- [o_____74C1
; r8 _3 P( `) M: vp_____5FB8: o! u( V+ x3 }% [: t  [: r$ C
q_____6085
. R0 n  n5 @& i, Y+ X* ^2 B9 Er_____3AC4( {4 ]7 a; q" v" I" {; J! P0 Y
s_____2F50# Z, ]2 j. l: r2 }" s
t_____36F8
- z* U2 v! W1 o, n) X  |8 vu_____7010
7 H: Y1 o: j6 D6 N& Vv_____0B42
( N4 b: u, m: K+ Qw_____1C7A5 g6 B& O$ w6 |8 X( u( Y
x_____16F8
. P: |) e' W8 E1 W/ Py_____2EE7  w" g, J, Z* B
z_____5CF33 U! e3 P3 ^" a- m9 H, {0 `' u
!_____6233
% ~# y0 ^' Y6 e- N  l* C@_____3A45
! q  ?& a1 m& U; z. M& `#_____2291
" R9 p! u" v3 n2 z8 \' j5 u, x$_____5D5C
7 i7 s9 \: D# T2 e, \7 A9 l%_____09B9
  L8 O. `- s4 X8 t: ^/ B3 E- b^_____43EA. [3 s9 M1 O; Y9 v3 x/ X" a# J
&_____62B9* y; b, A! `2 C3 k' x6 c
*_____6301
1 P2 O( y% h& N9 ~(_____4659
, {) o, Q8 ?, z; C)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表