返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
: Z! @" U0 p4 V/ _; M# m原始出处:http://www.3ast.com.cm3 Y! H8 G9 H# H+ V

) {9 b. e5 u/ a% \& [% x看不懂的直接绕过; E7 X! T# I4 t% z
加密前为:hwy123456
6 `0 l) r+ k, V5 j3 E, X. X; r加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E8 O6 W% B9 d+ l1 R' Z

( \; P! ?2 o: l9 x" O% A" y9 X============================================( ~5 m$ B* Z% X0 \' B
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
2 U' Y; J' S; a; W0 G也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
/ s2 C2 H% P; S3 d! p$ @0 X以下是RSA算法文件
. b6 `* W; R! C0 L! ?, L" k9 A$ _& Q
" K* f, S; J% A: i5 Y$ H0 _0 t文件名RSA.ASP3 Q2 ]3 N! n+ q6 ?2 f
===============================================) O4 D5 h8 s) @# p. Q
<%   Y. d' M7 c6 v
Class clsRSA 5 P" H. e+ U1 }
Public PrivateKey / I' M+ \' }  V8 p
Public PublicKey # K# q! Q0 c. D5 p
Public Modulus
7 X6 K! w& |* K2 w6 r$ w( y2 OPublic Function Crypt(pLngMessage, pLngKey)
5 ]9 L3 |7 V3 j! WOn Error Resume Next
. b. p1 ~4 F* R4 }+ }' ~Dim lLngMod ) D6 t0 b+ A" B$ l
Dim lLngResult
' g8 M6 q- t. I: [3 U! [+ H- @Dim lLngIndex
# B# x% g% U; h& kIf pLngKey Mod 2 = 0 Then
8 I4 w8 k( F! k6 N1 hlLngResult = 1 3 _( k  P9 j8 [9 }" i
For lLngIndex = 1 To pLngKey / 2 # S+ r: H1 C' a: Z5 R6 R
lLngMod = (pLngMessage ^ 2) Mod Modulus ! h1 s6 u! C: m8 q& P+ _( w
' Mod may error on key generation
& B2 f- B  O, f0 l" G* x! clLngResult = (lLngMod * lLngResult) Mod Modulus
% q, h* E6 z& t, n+ SIf Err Then Exit Function
0 y) f$ q7 b4 M2 K" oNext 8 D) j# O1 W: L1 [5 G
Else ; F) |- [1 D  X5 w' r% m
lLngResult = pLngMessage
8 ~! ]! @6 o; ]2 |For lLngIndex = 1 To pLngKey / 2 ) C' L0 ^, _- e2 _
lLngMod = (pLngMessage ^ 2) Mod Modulus
- {" _3 n3 ]5 `& l' YOn Error Resume Next / N  ]- `% w; }8 H: F. w6 o7 ?3 X
' Mod may error on key generation ! A( g8 }# ~9 t' ~. [
lLngResult = (lLngMod * lLngResult) Mod Modulus
9 ]9 v: c) Y5 t- ~9 O5 |8 T& gIf Err Then Exit Function
% p; v3 u& }- ~9 [5 W, L! ?9 B! _Next 5 t1 d( p# s' R7 \! b0 x& A
End If 7 B3 \* j& \0 I; M. u* o8 h* S
Crypt = lLngResult
$ ~8 b# x7 B% V3 V* B2 QEnd Function' V& x: e6 e- @, f+ i& T

, C- o( N1 k/ U, C1 s$ C5 ?Public Function Encode(ByVal pStrMessage)
; ^1 X( C/ m7 q  WDim lLngIndex
) m# e, o3 _& @# n( IDim lLngMaxIndex 4 X7 |, x8 U. m: r, w
Dim lBytAscii
- h9 k& H8 s8 `" S3 bDim lLngEncrypted
( A/ y. X, c% t' }- o3 f& XlLngMaxIndex = Len(pStrMessage)
) Y' O, d  O* h! X, p5 l0 |4 nIf lLngMaxIndex = 0 Then Exit Function   B2 s+ T) l) R% g/ V7 e, E
For lLngIndex = 1 To lLngMaxIndex 6 e% Y3 {7 D9 v  I: |. i4 Y' ?
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
" t+ \$ a. x0 M/ {& o  OlLngEncrypted = Crypt(lBytAscii, PublicKey) 9 d9 h5 w8 G$ _) E
Encode = Encode & NumberToHex(lLngEncrypted, 4)
$ h( U! s* n  j# k5 ]- oNext
2 a: _  m8 {/ l3 ?4 v  x7 H+ C$ |End Function 1 y; `( A/ j5 Y
Public Function Decode(ByVal pStrMessage) / y& W5 x2 S: f1 m. @9 |- u  l5 ?
Dim lBytAscii . T* B" W  c1 h4 }4 p/ B
Dim lLngIndex
/ q' K. m$ V" m( lDim lLngMaxIndex
7 m: Q, c8 Q# B/ @Dim lLngEncryptedData
: @1 M1 `% s* I: ?% P, v2 FDecode = "" - b+ M8 G! i- y) M& m
lLngMaxIndex = Len(pStrMessage)
) ?  i* y/ R0 I( z, B1 wFor lLngIndex = 1 To lLngMaxIndex Step 4
! I7 I- r+ X' n: Q1 W6 x  C6 olLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
9 I) w0 }2 e) k$ O/ n! V. y  n! MlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
+ w; D8 a% s" |4 DDecode = Decode & Chr(lBytAscii)
7 v2 p! W( ?& \" wNext 9 C# G$ d& |( s8 ]; h
End Function ' C$ Z% t+ p1 \: w: m
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
( N& L# d% \4 y1 u' L9 uNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 5 [$ L4 J$ L4 m* \
End Function ( g0 f2 J+ J8 X0 Z+ g, s( s
Private Function HexToNumber(ByRef pStrHex)
1 u0 r1 w  E. Z* S+ v0 AHexToNumber = CLng("&h" & pStrHex)
  m3 l- r7 |2 i  S4 w. cEnd Function
% y$ i8 X1 d/ o+ ^End Class # E. X% ?# M" N% K6 C# {5 l
function Encryptstr(Message)
( P* M* i) _0 l1 cDim LngKeyE & @3 L# {2 p) S
Dim LngKeyD   e2 ^$ P$ G6 ]7 ^
Dim LngKeyN ' v( F6 o0 O8 U
Dim StrMessage , q' E, O4 d% ~- \
Dim ObjRSA 9 H# e- _' C/ d3 R
LngKeyE = "32823"
) }' g. N' E1 ~  Y0 SLngKeyD = "20643"
3 ~% f! S8 v; X. r( ~LngKeyN = "29893"
0 o0 ?+ A% }" b, V$ W! m/ d3 d3 E  zStrMessage = Message
! w- `7 Y/ e; T( J# C- d  a+ XSet ObjRSA = New clsRSA
' W; J9 A" X3 z0 }% L0 x: kObjRSA.PublicKey = LngKeyE " N/ h3 A& y3 G
ObjRSA.Modulus = LngKeyN 0 Z  _8 l/ j+ o2 C9 f; x
Encryptstr = ObjRSA.Encode(StrMessage) ) \! k4 |0 r! q* ?& Y* [
Set ObjRSA = Nothing
, ~/ t" Y- g9 ?end function5 v* ?6 J5 j" }" K! R" R9 l
Function Decryptstr(Message) $ o3 ?5 t5 L0 P$ f" U9 {+ S- @
Dim LngKeyE ) J: y) {$ J* P6 T& B
Dim LngKeyD 9 ]$ D( S( t+ `! ^" q
Dim LngKeyN
2 P, V: K. Q. O* M! mDim StrMessage / S1 U4 L0 O% N! L) i
Dim ObjRSA 9 L" ]$ `0 ?1 W
LngKeyE = "32823"
) y$ Y* y* q( d' G% k% tLngKeyD = "20643"
0 V& \6 U6 c0 _6 N$ F5 mLngKeyN = "29893" 9 ?; ~: q3 M& J  z2 s* f0 [  w
StrMessage = Message 2 m  l1 t& E' A7 \. V
Set ObjRSA = New clsRSA
6 u! Z+ y7 J2 R( k: sObjRSA.PrivateKey =LngKeyD
7 D; r5 U. b2 SObjRSA.Modulus=LngKeyN
, {" L) r: L; y4 h, P4 i, r. v2 vdecryptstr=ObjRSA.Decode(StrMessage) % h7 H" Y6 ?7 _1 Q1 M
Set ObjRSA = Nothing
$ b: S- ?* {# V5 M% Zend function
: s. R9 Q9 r$ `! V( k8 Z, R, g* `+ d& X%>
0 I9 ]) ~7 |: M===============================================/ K0 O- F1 f3 u, l

& r$ {( D* q! i) S6 f2 p还有一个用于测试这段代码的test.asp
4 C. s3 T4 M; @& G& H; O, H! z7 T% G有兴趣的自己搭建个IIS测试下
, l% B9 S# M! o. J0 e<!--#INCLUDE FILE="RSA.asp"-->
# U% @+ ]% |, \8 g$ i<%) `* b: G/ Q- c# i8 f% W% D' E
function Encryptstr(Message) , T% {% x0 g+ R* S8 i
Dim LngKeyE
3 }) T6 E0 O  z9 ?Dim LngKeyD
) C* F7 F+ E. |/ l' x# _Dim LngKeyN
- w: E$ S( A: K5 ]Dim StrMessage 7 m. I9 c! u/ e0 E5 j8 C1 m
Dim ObjRSA
& o0 d% T6 {8 X+ m/ W- s% RLngKeyE = "32823"
) G7 ^3 S& S% _* |4 xLngKeyD = "20643"   R( G& q, W) m
LngKeyN = "29893"
$ j  W) n; x; c0 q/ kStrMessage = Message $ L: \2 [$ ?8 ]- C6 }  I
Set ObjRSA = New clsRSA ; d  O. R) ~" s" h
ObjRSA.PublicKey = LngKeyE ; X* j+ o4 i4 C1 O9 r2 N1 D
ObjRSA.Modulus = LngKeyN ' c' b' f1 z; N1 P
Encryptstr = ObjRSA.Encode(StrMessage)
0 b0 P% Z+ S/ o  `% JSet ObjRSA = Nothing 1 N  n+ c3 c# i' K3 C' C8 g+ |; M
end function
: y/ _3 h+ W5 h5 Cfunction decryptstr(Message) 9 u4 [8 P+ Q6 Y2 A$ n' x8 }
Dim LngKeyE 8 i: s) U# o5 I& F
Dim LngKeyD
  \/ z: L. _+ m9 XDim LngKeyN 3 m* Z" A- v' P) @: d) k  r6 d) r
Dim StrMessage 6 A* {- @* N' @, a4 _: D1 t
Dim ObjRSA . l- k6 v: j0 m8 }
LngKeyE = "32823"
+ O9 W) B6 K. h2 g2 xLngKeyD = "20643"
2 \9 _5 m0 Z) i' u2 ]2 DLngKeyN = "29893"
2 I/ `2 y5 _  h# C: I, MStrMessage = Message ; O: m8 X7 K0 ?3 G: }$ ]4 Z& S
Set ObjRSA = New clsRSA # j3 p7 g$ O9 I+ Y
ObjRSA.PrivateKey =LngKeyD . u. B' f# b; W, J7 l  F: Z
ObjRSA.Modulus=LngKeyN
" N. `' Y* V: {2 R! Q5 m7 {decryptstr=ObjRSA.Decode(StrMessage) . R5 i, ]. }5 ~/ p' s1 K
Set ObjRSA = Nothing % t9 z3 _6 d: S: ~
end function # _1 ^, J  m& U$ I; \; r
dim last,first
6 L9 \# Q/ `( ?9 v9 U% N- W/ Ofirst="!@#$%^&*()"
6 N2 }  [  r4 HResponse.Write "加密前为:"&first
; G% A2 [, ]; ?5 K) Llast=Encryptstr(first) ( R: v1 ^0 n8 w, \- O! Y; r) k
Response.Write "加密后为"&last
2 B$ u2 c% ~0 @9 N2 e7 G$ T8 cResponse.Write "解密后为" &decryptstr(last)
8 p: r2 \: |$ t* q6 i/ g' ^%> ==============================================& m# \8 {% S; d  T; e( L7 \- P
剩下的就是字符的对照表了
9 ]# j7 z3 d* f  f===================字符集================
" ~$ b, z+ m* }9 `: q9 `) t1_____6EBB- T/ S# v1 T. s7 h. t4 k
2_____5C1F+ U8 W8 D3 _& \& H% |
3_____4D75( T" A! s5 `5 M! _2 x  }. M
4_____26CC
2 ~. z5 x  Q& x/ U( k. b8 R2 U5_____4F88: m/ h7 t7 N8 M( j0 ^
6_____3F4E
) l+ n2 o/ G, f' U7 e% @3 z, g7_____0A9D
& Y% ]7 a% F( ^* r) f0 {' j8_____1A1C' E6 o/ `$ o. z+ u
9_____6D20
3 @7 h% U2 d" I$ }. h0_____1089
$ Q' M8 t' f/ [a_____0F3E
' B& g9 j# t' {b_____3159) h7 ?& r7 D" b1 Z8 M5 @$ Z( f$ m' u
c_____3517. `% }1 e4 f! w  @; k
d_____419C
1 F) l( n& z. f2 G& k3 ^e_____615C/ J! F% e5 J/ T  J( {
f_____556F
! X; E/ f3 e4 p. wg_____2B7F( {( A! m5 W; s/ d
h_____0F9C; L" h  _2 t  _; Y  ~0 l' L9 t
i_____00FA1 e9 c8 u) V/ \$ B6 m' ~
j_____5A50: S6 u( B; I0 l9 L. k# c/ p
k_____2850
2 x! \: G' T* r- }4 \( x: ~l_____3E7B
' I' b" [/ l  i5 i3 \$ y( Tm_____71C5) i5 p  M. e1 w/ H* M# E
n_____1FC8" r  q! r; ~0 \' W
o_____74C1' Y% \% k* _' W! S, g  I6 W9 r
p_____5FB8
& Q9 V! y( x6 K- Wq_____6085
" z0 D+ R& K# w  n' X5 @% fr_____3AC4
1 v' o. P3 ]: i+ U2 Ts_____2F50
& n" w! _7 f6 P3 kt_____36F8
# W  C( h* i$ e' p+ I- Uu_____70109 ^. \& @) Y, y0 D9 @
v_____0B42$ _& k8 r- @+ H5 l+ T/ x
w_____1C7A
( z( x  `) G, F* I6 ~& Qx_____16F8
$ _4 p4 R$ k. R5 k6 \y_____2EE7
0 r+ H( c0 X* z7 b7 vz_____5CF37 A+ z, u' G; F% R. B% A9 h
!_____6233* z- H! X" W) @% o7 Y$ V
@_____3A45% m5 q6 d9 E; V
#_____2291
/ F6 P6 r1 D" t3 O1 D$_____5D5C
- v6 k. e* y2 r% m' I/ |%_____09B9
7 x, }/ |- p, {/ R) D) {3 b^_____43EA" V9 r& A! `9 J/ @, k
&_____62B9& B- T; ?* f8 b8 \, z$ p1 L
*_____6301
+ {  v. m& Q/ p: O' z$ t(_____4659
$ M9 U+ o4 M$ a# c( i; e)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表