返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm3 e* }9 ^+ Z; C5 I( A. v1 E% C5 t
原始出处:http://www.3ast.com.cm
0 p7 S7 N  v4 d6 ?* h% Z! H
; q& O  l! N( \2 q' S  |! Y看不懂的直接绕过
' ^% q. u, }. J! C# }加密前为:hwy123456; B$ i1 R6 Y; v9 {* O) u, T# N
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& d, `7 Q4 l: W5 ]* k, v

' I5 c4 a& z: V4 c) i============================================! e9 ], u& W/ X+ ^
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ \# j. s: r  }! r) _- \3 ^% f) _也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
" q2 w) r. K, l, I" `以下是RSA算法文件# R  j, `1 P7 K8 U. v
2 m  _& y$ V) x4 l' q
文件名RSA.ASP
0 d0 V' Z1 U8 h. S===============================================4 M( o. s0 L, U4 _0 g) f# v/ I) H: s
<%
/ I2 n, N7 z+ v) A$ S5 W$ uClass clsRSA
1 p8 r0 A4 `8 j& IPublic PrivateKey   `' G- Q& r1 e# e
Public PublicKey
* z1 [$ J5 N! T6 Q. TPublic Modulus
8 z* b" U( P5 ~8 k# JPublic Function Crypt(pLngMessage, pLngKey) ) {5 H+ ~) ~5 c7 |
On Error Resume Next & A& N- e5 m8 \0 S7 O
Dim lLngMod , n) r/ n; X% s1 M
Dim lLngResult ; K; G7 W8 _( l
Dim lLngIndex 3 D, |; K3 t, D) ~
If pLngKey Mod 2 = 0 Then , t0 a; q% Q( X
lLngResult = 1
6 V  R, l% Z  s. u4 S  R) m: jFor lLngIndex = 1 To pLngKey / 2 ( x# D4 l. Y1 m2 u# o/ w% t* N! y
lLngMod = (pLngMessage ^ 2) Mod Modulus 3 }; H- l' `5 v: M/ x
' Mod may error on key generation 7 Q/ D! ~! r" o" k3 N1 ]
lLngResult = (lLngMod * lLngResult) Mod Modulus
) p3 c3 Y7 }% O3 CIf Err Then Exit Function 2 O% g2 z  T" n% N& ?
Next
5 z. M; G- I" D% k: B  x- y# cElse 8 d& x& d; c% I$ J1 D
lLngResult = pLngMessage
) r4 b" J9 J% k4 A- {For lLngIndex = 1 To pLngKey / 2
, N2 Z- P3 n0 r1 {+ E# z3 g2 B9 _3 ElLngMod = (pLngMessage ^ 2) Mod Modulus 2 ~3 i0 O& H- A: g" m: P
On Error Resume Next 3 c/ O/ d& p; @5 i
' Mod may error on key generation 9 z2 o" p: S+ N/ c4 }1 Z
lLngResult = (lLngMod * lLngResult) Mod Modulus & r; t1 v. o/ I+ H; n3 F1 y
If Err Then Exit Function
, Q: [& {! o, x7 N* Z2 v, PNext $ B2 D5 E/ B7 J
End If , U% I* B9 G% ~6 K: o% D
Crypt = lLngResult
, D% s% ?, I0 T$ @3 f+ M% KEnd Function+ X; c  L8 ~9 Z. c3 L- a+ n

& v) n* m% a5 W7 y- A. z% gPublic Function Encode(ByVal pStrMessage) * H. Y  w& a/ s0 Q. Z) S5 V6 D
Dim lLngIndex   M# `) n# ]& K8 h
Dim lLngMaxIndex
, V0 W5 G5 a& eDim lBytAscii
- H: q8 [6 c2 S! mDim lLngEncrypted ! S$ I& Y9 ?% l
lLngMaxIndex = Len(pStrMessage) 3 R) o7 ^# R# l6 K0 J
If lLngMaxIndex = 0 Then Exit Function ! s1 B4 b3 X. ^5 n( @* b  K
For lLngIndex = 1 To lLngMaxIndex
! K9 l6 G, p; ?: }# T2 DlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ) y5 t& ~. Q6 W! L) x: n
lLngEncrypted = Crypt(lBytAscii, PublicKey)
& L! C3 J; w* w; p& wEncode = Encode & NumberToHex(lLngEncrypted, 4) 6 N$ Q( V' [+ i; H2 e4 }' H
Next
  |0 K. G! J. T8 |9 qEnd Function
2 R3 {& s1 |) l. c1 k: NPublic Function Decode(ByVal pStrMessage) 1 S5 i/ B- C+ r* ?
Dim lBytAscii . O& |% r3 ~# p2 C
Dim lLngIndex
: @% s2 R2 K* }2 jDim lLngMaxIndex
' x& N4 P( b5 J4 O+ w3 F8 E7 tDim lLngEncryptedData 4 U1 f/ I& E. |2 m- y* Y
Decode = ""
( |  R" R* _6 K6 U+ z2 `% H; j6 f* c8 qlLngMaxIndex = Len(pStrMessage)
3 j4 u) ]9 X' R- o* W$ `For lLngIndex = 1 To lLngMaxIndex Step 4
$ f- E( `1 u7 v/ _( `7 ]lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
6 W/ p' N. O, b1 G: olBytAscii = Crypt(lLngEncryptedData, PrivateKey) * ~+ [. H$ z' j0 E2 w8 X
Decode = Decode & Chr(lBytAscii) - N3 J1 M% l8 n8 |% B
Next
3 ~1 m# ?/ u1 d( f9 s# l9 sEnd Function
9 J3 R' I. ~1 I" n( EPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) $ V8 b9 M+ X, l! ?3 O3 W+ Q
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
! o* `% j; z, D, R" F& o8 iEnd Function 6 O  U" f5 \# [+ U- _; N
Private Function HexToNumber(ByRef pStrHex)
- c1 a; c  I% d( D8 ~HexToNumber = CLng("&h" & pStrHex) " L, Z4 h6 l* Y  n* F/ ^7 m- B
End Function 2 \  t& A5 `$ u- B0 T! Q" E
End Class , n# W/ U' N% \
function Encryptstr(Message) ( p1 ]1 c$ Z/ x' z5 M
Dim LngKeyE 7 \' j7 o& N: u% j- h+ l# B; z
Dim LngKeyD ; @# s5 x- z& T- s1 c3 q9 S) g' v
Dim LngKeyN   o4 E$ C  w& D
Dim StrMessage
0 G' I; P* c; r* U5 \. _3 nDim ObjRSA
. k9 j% w) M& T8 U( Q6 ^LngKeyE = "32823" ; M7 t5 m$ {5 B, V  b5 U
LngKeyD = "20643" - Q* p6 {; w* i8 w. V
LngKeyN = "29893" ! _. z3 {- y/ R3 Y
StrMessage = Message 2 m$ W5 n3 R5 g3 y6 T% ?
Set ObjRSA = New clsRSA
, P2 g5 ~+ ?& @1 EObjRSA.PublicKey = LngKeyE " e" P/ Q7 f  d& _; T6 `( z( s
ObjRSA.Modulus = LngKeyN
# G9 m9 ]3 c5 BEncryptstr = ObjRSA.Encode(StrMessage)
8 {% e3 x) F& P& O4 OSet ObjRSA = Nothing
) |+ e+ T2 {8 Iend function1 u, @0 h6 V; H1 w& M' ]- @* C
Function Decryptstr(Message) 7 N3 ~: {# ?. `! a) ]" j
Dim LngKeyE
( w* |9 o8 W$ H1 V8 l& l! b2 X, KDim LngKeyD / c, j4 J! F4 g) e
Dim LngKeyN
0 ^, F3 g. p6 T# P- {Dim StrMessage
! r4 B( \! r/ KDim ObjRSA 5 {* Z9 R. M% A3 l. [6 \
LngKeyE = "32823"
  P/ L9 V4 K$ e% M1 v/ \5 x) sLngKeyD = "20643"
! p/ u/ b* k6 K. }: R3 O4 Q0 pLngKeyN = "29893" 8 G8 W& m+ N1 K3 S0 Y2 A5 Z- [
StrMessage = Message
7 {' {" f% ]; s" c; @+ }2 ZSet ObjRSA = New clsRSA
2 M, i/ ]0 W, t) Z3 n) jObjRSA.PrivateKey =LngKeyD 8 S  N2 y% z$ H9 L) [) o/ V
ObjRSA.Modulus=LngKeyN $ F/ m* m0 ?8 S3 E) u4 K
decryptstr=ObjRSA.Decode(StrMessage)
5 b! z8 t# W! }- w1 g4 B+ v7 NSet ObjRSA = Nothing
& g* Q. J* ]- U& [# L7 mend function # s! D3 |- ~7 r+ R6 s$ M, k( C7 R
%>! l  Z8 a3 e! E1 ~
===============================================. }& W" h8 u7 f1 w# |7 I
( A5 Y+ a2 v( E0 l
还有一个用于测试这段代码的test.asp
- e% M1 s" W: Y7 Q: L* x% M有兴趣的自己搭建个IIS测试下
6 [' s1 {9 m' N+ |4 y3 }<!--#INCLUDE FILE="RSA.asp"--> & N; q$ a! r9 ^, g8 g, P% H3 Y7 U
<%
  v' O; h. k- h$ \function Encryptstr(Message)
, T* n0 X' a" @Dim LngKeyE " A2 `; G/ i4 ?- W5 m4 i% R
Dim LngKeyD
' n! M" S4 p9 \- O' h. iDim LngKeyN
6 |& ]! U2 b+ L1 ODim StrMessage
' B2 ^" k. A) g* v; u& YDim ObjRSA
# L2 I% h* N! i, W4 o7 ELngKeyE = "32823"
0 C" V5 Q" ~* ]9 v) H$ \3 cLngKeyD = "20643" % s( N+ J9 X# N( `3 u( N
LngKeyN = "29893" 3 B% t/ D! S; U  \7 M: C
StrMessage = Message ) s! B( i4 `) Y; T: A9 C
Set ObjRSA = New clsRSA 6 R- _: H$ ]; a: I1 |
ObjRSA.PublicKey = LngKeyE & |% e) t5 @! ?( ?3 ~
ObjRSA.Modulus = LngKeyN & P( M! P3 Q; p6 _
Encryptstr = ObjRSA.Encode(StrMessage) 7 O3 x" m0 `3 P7 z4 q" |+ o2 R8 @
Set ObjRSA = Nothing
; n+ R  s4 Y. O6 o$ nend function # `2 Y) }2 c6 c/ w8 b! b( ~
function decryptstr(Message) & D6 s3 ]0 d4 M
Dim LngKeyE ) w, ~7 e2 O1 D; y/ k1 M) ?! G4 V0 P
Dim LngKeyD , M' t; D, y  a# o3 p1 r
Dim LngKeyN : u# q/ i/ l  U
Dim StrMessage ! [& U0 z# \) L9 M0 K: k% k
Dim ObjRSA
+ m; D, N9 R9 Z8 i8 ~- ALngKeyE = "32823"
  F' ~; `/ |+ w% \: `+ MLngKeyD = "20643"
/ N! _) R* A% wLngKeyN = "29893" 0 R; F) A8 X5 i0 d4 x
StrMessage = Message 4 ~8 E0 U0 t# ^+ r
Set ObjRSA = New clsRSA
+ |  {, x7 w( k' E2 Z4 k$ C) `ObjRSA.PrivateKey =LngKeyD
$ S4 _4 N. n/ a3 V- iObjRSA.Modulus=LngKeyN
# c1 ^# U2 V9 k3 B/ z* n9 e; B) @decryptstr=ObjRSA.Decode(StrMessage) ( C$ g2 }8 P0 q- U9 [7 N
Set ObjRSA = Nothing $ ^. {! A; N/ ]: W1 h3 ?7 \
end function - z8 c) c" l! a9 t. M  [. j2 o
dim last,first ! r. j2 {% @; e$ \  D6 N- m, x
first="!@#$%^&*()"
9 {5 E" l2 h* o) \2 K0 ]Response.Write "加密前为:"&first ! a  t2 ?# n8 @! [  o
last=Encryptstr(first) , ]! R' f& o+ N6 P. ^" {* C$ ^
Response.Write "加密后为"&last
. v5 N# f7 k+ l# wResponse.Write "解密后为" &decryptstr(last)
. u/ Y' ]- T: u%> ==============================================
  I, Y5 q+ i- r2 F& @( [剩下的就是字符的对照表了
& a0 N. T5 X; F$ C& |  u0 L===================字符集================0 p4 E5 O; K. a" F
1_____6EBB" b& J3 H$ q! G1 Q
2_____5C1F  A6 A) f: [+ V2 X: p' p" P' t8 T7 T
3_____4D75
; }3 y& r5 u# Q& v, x4_____26CC# w% y8 c9 m, ^* ^* U" C! n
5_____4F88+ }/ V3 M  E$ g% i( ~! q' r0 v
6_____3F4E
' N% f# Z' G! \$ }3 E0 a7_____0A9D
- A. H5 j, A0 k8_____1A1C
# L$ Q* G7 L) y9_____6D20
: f9 u3 H% S6 N. v- C0_____1089
* f8 ^! Z% h" G3 Z: G+ C" z+ r9 Ua_____0F3E3 [, }; D1 K$ l# }6 S2 H# K2 t/ V
b_____3159( v( Y7 s4 q7 ^& A+ m
c_____3517
: d' b! Z; L9 y( @$ jd_____419C
: z# H/ D' o* }% _7 X5 Je_____615C
) e0 `( x; v5 {4 p$ j' Z* S0 h: I  I/ hf_____556F
, i8 \1 x3 F, F* i/ b2 f6 W6 sg_____2B7F
( A9 x, i  Q4 E" @! I" r' dh_____0F9C% p3 C  t" O! I! h, P' @1 n* A/ |
i_____00FA
5 o8 r! s7 S+ J/ d* g  W) vj_____5A50* A5 L0 _9 _0 d" k9 i# W  A
k_____28501 |5 e+ k' j6 a7 c( Q
l_____3E7B/ f9 ~2 t+ ?& x$ i
m_____71C5/ x4 n! w9 f4 l2 a
n_____1FC8
$ Z, y$ ^0 E2 w! R8 }0 |- F; o4 Yo_____74C1
$ Q# m8 g5 c& Np_____5FB8
/ x4 W: U9 c+ ^, P# Jq_____6085
, H" Z% k' ^  F% [r_____3AC4
  F: B0 K9 k; P7 |" r. t) b5 |/ D/ is_____2F50
. W  z8 W! q* q5 y. k& Et_____36F8
, ~5 s6 {0 U! z4 p% F' ~( h1 }u_____7010. j# ^$ y( l5 A' \8 Z+ c
v_____0B42+ t$ M6 F1 c& `
w_____1C7A$ ~# k8 _. W' R5 v' b
x_____16F8
/ o) x" c9 o# [y_____2EE7( N& m: k/ l$ [, j  ]% B5 ~
z_____5CF3( e; C6 a" U% C% C+ a8 [" _
!_____6233
  ^, L& N+ h/ v2 p2 J9 B8 c@_____3A45) e* i! T/ k8 G, v: U% a; d0 ?
#_____2291
$ @9 h$ }# O/ \8 y' ]! w/ @$_____5D5C
! A7 n# E* Y3 `5 V) p/ h9 A: a%_____09B9: \* {+ c  q: \1 L
^_____43EA
( v# [9 y9 Z" U&_____62B9' ~: V. N# w! N+ z- A
*_____6301
3 P. j5 F2 g5 @1 [1 {+ _(_____4659' B- ?( l4 D5 L$ I. Z) B) x
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表