返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
. m5 E9 c4 X- X' g6 E原始出处:http://www.3ast.com.cm
( m( {5 W- [/ a% s  z5 U
+ h+ B4 |5 {+ p- O7 w9 P看不懂的直接绕过
: ^. z% _8 h9 X' o加密前为:hwy123456
% Z6 `/ o  j/ v5 N( T  L% u加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
7 r: U  ]9 h: F9 h7 e7 {! H, p# Z6 R! ?9 f- y
============================================! e6 x9 ?# u. f8 _* R8 d
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
" h: v, B' c, |9 L# _3 |# b也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法! g5 y# j1 k: z( n; j# z6 c2 `% {
以下是RSA算法文件
$ H6 }( @  b5 i" _5 U8 a, P! ^* d. V! h) |
文件名RSA.ASP
) r+ v0 B: O0 K===============================================& b% P, J7 X4 y6 l1 j# |5 @. k4 e( @
<%
# S& [5 `1 q+ zClass clsRSA
$ U  a$ T6 p4 D' j# Q5 m/ f! wPublic PrivateKey 5 g' r/ N! W1 r
Public PublicKey , |- x7 s  Y6 K' o; A0 [$ ?
Public Modulus 1 w& D9 M8 R& R% z6 U5 C
Public Function Crypt(pLngMessage, pLngKey) 6 W; q2 c  s3 }1 j
On Error Resume Next
1 s% z( D- k, [1 [$ LDim lLngMod 7 \  `% L  w; k3 I
Dim lLngResult : @5 ~) D* I4 \; V' H
Dim lLngIndex   W* V, Q- I/ F4 J: z# ^6 m  c0 P/ }; e
If pLngKey Mod 2 = 0 Then
0 b3 w# z# x0 Y! i2 [0 glLngResult = 1 - j, V3 V+ A" R/ @0 q6 q, e1 K
For lLngIndex = 1 To pLngKey / 2
& N7 F! v9 @' s2 k* [lLngMod = (pLngMessage ^ 2) Mod Modulus ( Q& a* B) v9 ]) a, s' t0 L
' Mod may error on key generation
# ]3 ?+ w% z7 g2 ~  @. g- JlLngResult = (lLngMod * lLngResult) Mod Modulus
* p( }+ u" o4 @( g3 x8 ?If Err Then Exit Function * ]2 \9 n, }* q$ N6 }' j( }- w4 F
Next 5 p5 t. r, N' ~; n, J1 T
Else 9 T( ]5 L1 S* v/ r3 l9 d! h. T
lLngResult = pLngMessage
0 n6 @3 _8 e# pFor lLngIndex = 1 To pLngKey / 2 # e3 c3 t! o- z& O9 V% @
lLngMod = (pLngMessage ^ 2) Mod Modulus / k9 q8 X7 O. \- t
On Error Resume Next
' n5 l4 k# j4 t' Mod may error on key generation 1 b6 w- D# Z2 ^) ^7 h" ~
lLngResult = (lLngMod * lLngResult) Mod Modulus
6 M/ k: P" k4 G* i3 {If Err Then Exit Function 7 H. g& m  i9 w. J+ [2 Y' G9 w
Next
' e- Z5 q& K2 w- R- rEnd If
5 M% Q4 n+ g- l/ m' t4 E3 t* aCrypt = lLngResult
# B- `% @0 r# \( U8 B: U  EEnd Function
1 n0 F7 e4 [6 j7 ^# m9 [+ j) u7 ^# B7 O# @& J
Public Function Encode(ByVal pStrMessage)
; o0 f2 w8 p# J3 I( GDim lLngIndex " d6 j! ~% h( Z2 h' ]+ n6 _
Dim lLngMaxIndex 3 K* a6 H4 K6 W# ?/ a- S6 T
Dim lBytAscii # g7 K0 J8 W+ M5 c& [  i# i
Dim lLngEncrypted # I5 a& s0 x9 _, h/ n( c; Y5 o
lLngMaxIndex = Len(pStrMessage)
% U" M& p( N1 a( `* E( c; u% oIf lLngMaxIndex = 0 Then Exit Function
) T& t$ }" _: Z. g; HFor lLngIndex = 1 To lLngMaxIndex ' P: s1 ^, c' L7 A, Q) w
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
& m6 W7 m6 I0 [2 Z- klLngEncrypted = Crypt(lBytAscii, PublicKey) ( F7 J/ n/ J; J/ r: h
Encode = Encode & NumberToHex(lLngEncrypted, 4)
* E8 E7 `. Q- l2 h2 ^4 v% h3 a6 TNext 5 p" X0 D$ u5 U, p* v( g+ n1 ^$ U
End Function ' \4 V; o$ K% |, ^4 K, K
Public Function Decode(ByVal pStrMessage)
5 F, m4 q3 _+ t7 l! BDim lBytAscii / B* T) q# ~7 [
Dim lLngIndex
: z4 \6 L! _, {3 b3 BDim lLngMaxIndex
, s0 E+ ^3 G1 u: [; v. ~Dim lLngEncryptedData
0 X! p/ k7 s% g& U7 u% v9 d6 W/ H- ZDecode = "" 8 L7 ~8 h' w+ k3 Q/ I& x/ n
lLngMaxIndex = Len(pStrMessage) 4 |" P+ k/ W1 [0 _0 m8 Q
For lLngIndex = 1 To lLngMaxIndex Step 4
) ~4 v! Q$ I7 E+ H/ alLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) . _7 X& a( G$ u  y
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
8 I0 m# _8 K; ]! eDecode = Decode & Chr(lBytAscii)
5 T. }, W1 z  U* N) v4 T0 dNext $ }2 r7 V2 T6 f
End Function
2 F# l5 r6 v! s9 m7 iPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 7 W/ G  j5 ]+ ~7 v
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
1 O' D" L8 K7 N* e7 b1 {+ d, G% g# oEnd Function
- u7 Q5 F1 X/ ^5 [Private Function HexToNumber(ByRef pStrHex) 1 e$ |! }' U% Z; C# m6 P* l2 ~( T& U
HexToNumber = CLng("&h" & pStrHex) ! y1 J" m# T0 `) [5 G5 K
End Function ) U* ?4 b" k$ @$ P
End Class ) X9 t  _. K. |
function Encryptstr(Message)
8 G9 O& U! d9 k" r& |* eDim LngKeyE ; h3 X8 O' |# e5 d4 S, `* W
Dim LngKeyD 7 B3 Z0 x7 @! [* h9 f
Dim LngKeyN
+ Y$ i+ o/ }7 K7 f  l8 M/ o! xDim StrMessage
9 }5 z$ t3 V" m- R, t5 N! fDim ObjRSA
$ P1 X$ m3 F. W# PLngKeyE = "32823" " w8 |' J5 _' r: s
LngKeyD = "20643"
' x' Z! N4 {. U- M1 i8 e' qLngKeyN = "29893"
! L) w! S  Z$ L5 m: N/ Y" XStrMessage = Message
7 Y: _4 }+ K3 VSet ObjRSA = New clsRSA
. z& O+ Z# e; G- w  F/ A' u' NObjRSA.PublicKey = LngKeyE " h* j/ Z8 L$ k
ObjRSA.Modulus = LngKeyN 0 I; d8 x; B/ y' P4 n7 t
Encryptstr = ObjRSA.Encode(StrMessage) # M7 f5 \, r1 `& p4 X, u  B
Set ObjRSA = Nothing
) o5 q( q3 V( c' e# ^: Dend function
% i+ v* T! _5 E0 J. tFunction Decryptstr(Message) , G' N! A& n0 d8 C& n2 L/ T$ ^
Dim LngKeyE $ M% L: T& U: g0 [; d1 G
Dim LngKeyD
) z0 u$ q- h& `& D6 H( T6 r( d- XDim LngKeyN
* l+ b. G+ X" d7 v$ u) cDim StrMessage
* V, x  W9 B1 W8 d5 l. ?3 EDim ObjRSA
, y, r; d. i, t/ g$ R4 _LngKeyE = "32823" * z4 U0 l! @$ j* Q0 {
LngKeyD = "20643"
. g$ Z4 h* P6 }2 d- d# nLngKeyN = "29893" # `" |4 X- h4 u5 a
StrMessage = Message
6 F6 \0 t' F0 l# x% m: c* U- ySet ObjRSA = New clsRSA . }+ n6 n7 Z- w
ObjRSA.PrivateKey =LngKeyD ! W1 U1 ?' b- p
ObjRSA.Modulus=LngKeyN
' r) G3 |7 {' `8 g7 u! H! odecryptstr=ObjRSA.Decode(StrMessage)
- l7 Y+ R: f. P' O% w$ |9 Y: m6 p  oSet ObjRSA = Nothing 7 b- q0 |% T( A9 S) f2 r6 m' Z: C
end function
2 _9 a% @* E: ]4 l. o' @0 r%>
  T9 I) T0 O$ R===============================================" E0 {8 W6 n, ^) p: w, ]& `

' `8 Z5 [2 {9 y还有一个用于测试这段代码的test.asp% O& F0 @- t2 u
有兴趣的自己搭建个IIS测试下
8 n& B2 ]) F) c4 P+ y<!--#INCLUDE FILE="RSA.asp"-->
2 ]1 x3 m" F2 p6 P6 ^) y+ P3 V<%
2 f: Y' \, S4 f+ w$ Hfunction Encryptstr(Message)
; D! G8 v; X2 a7 @! rDim LngKeyE 7 \% e" F! K4 v. m1 c6 S' b
Dim LngKeyD : P- j- A0 j  i% Y
Dim LngKeyN 7 p: z3 y& Q$ u& _
Dim StrMessage ' z/ _0 @9 q8 F% P+ k5 ]1 s
Dim ObjRSA 0 }; N0 p/ e: @( l& @! i9 @
LngKeyE = "32823" 0 p1 M$ V3 Y: a* c$ w  ~
LngKeyD = "20643" ' v" |& v% F7 H& g' u5 E" i
LngKeyN = "29893"
  j1 [# ^' o- C1 _StrMessage = Message   z. \* x7 |: j& U
Set ObjRSA = New clsRSA
, o8 \' a0 K9 b1 bObjRSA.PublicKey = LngKeyE
' W, H1 ~. M& ]7 x6 d# |! m" pObjRSA.Modulus = LngKeyN
! _4 A! _1 r; i  n( F3 v# Z$ OEncryptstr = ObjRSA.Encode(StrMessage) * U/ M9 W! G& s9 f5 m
Set ObjRSA = Nothing
. ?% @; Y9 [5 ?; }end function
. K- t2 A+ T& F( B" k" Nfunction decryptstr(Message)
& N7 ?9 y1 T& |Dim LngKeyE - W. C3 @( I! M, n" g1 \+ A
Dim LngKeyD
6 j6 f) `, q& d  Z' ^9 ODim LngKeyN ' j- R6 H8 m; B: L' R+ a
Dim StrMessage ' A8 D, k4 H9 p9 b+ @+ S: F' |8 [. p
Dim ObjRSA 3 j+ O' k$ S. Y+ p, O: t
LngKeyE = "32823"
, ~! J1 O5 A( y& m. K+ t4 o; uLngKeyD = "20643" " d# B3 l9 F8 `8 a
LngKeyN = "29893" 0 \; q" E6 ?2 u% e4 H& x* `7 \* I
StrMessage = Message & @: r$ z' k- O7 x
Set ObjRSA = New clsRSA
7 f+ S/ b7 X" T$ j2 A, u4 bObjRSA.PrivateKey =LngKeyD
& K3 s0 t" _8 lObjRSA.Modulus=LngKeyN 2 S/ h, p2 z, }! j
decryptstr=ObjRSA.Decode(StrMessage)
8 ~2 y# q5 ?: y% K& \' o, cSet ObjRSA = Nothing
- V( o/ b0 T( L$ T5 l4 D! Hend function - e+ i# R' d: h: T
dim last,first 5 _2 y! {3 f4 u
first="!@#$%^&*()" ' B" Z) [1 S6 ]2 r# }9 \3 R! b
Response.Write "加密前为:"&first
& n! N! W: r/ alast=Encryptstr(first)
& u; a( {& J1 f0 IResponse.Write "加密后为"&last
$ s% f9 k( S5 |3 @Response.Write "解密后为" &decryptstr(last)
" A% y9 }! g  M2 f" k$ l. k%> ==============================================. E) G1 r9 [7 w! s: J) _% |
剩下的就是字符的对照表了' N8 O- w* t+ ^9 R" l9 L4 R
===================字符集================
. c2 \0 h9 T5 d" t4 R- e1_____6EBB# v5 `7 w  f2 U& I# R1 E/ N3 ~
2_____5C1F
! m' w8 W  N8 o' C3_____4D75
) n. s1 X& f/ e1 @0 A6 i# v1 a4_____26CC
3 C' z% [$ Z/ Q/ {0 S5_____4F88+ ~0 t) B- e% z9 {
6_____3F4E
/ W' X' h) F" N# t8 m7_____0A9D
/ j9 W( d2 B+ c$ o5 [8_____1A1C; m9 _5 O) f3 }
9_____6D20: S9 q  b5 S! O2 ]0 B2 i
0_____1089
* {- n7 M0 t# }/ m) Za_____0F3E: h/ N2 }$ R5 {# L$ F8 ~, Q2 N, Y
b_____3159( ]& Q5 v3 w: u/ N$ X3 B
c_____35177 c; g+ i! K1 S$ Q0 H3 T7 o$ @
d_____419C
/ p9 C! u! q1 W. m9 b' P( ~e_____615C7 m- t9 @( ~" S
f_____556F
( N. q& a; L+ I: lg_____2B7F
- h: _9 d) r3 K1 H/ Z# s# \$ [h_____0F9C" x6 P# F1 h) X  M; Q
i_____00FA
; S( E/ m3 b7 Xj_____5A50
, k5 J9 p9 H. b$ O1 I) e7 tk_____2850
8 H, s" D& B1 E0 bl_____3E7B9 z+ U* w% ^0 u8 _. |
m_____71C5
; k$ J4 E' w  V: b; D- N" |n_____1FC8# Z* q% q8 e! q. }) I
o_____74C1# G1 e: c! [% T
p_____5FB8# e$ U6 M! g/ S( m8 s" a, m
q_____6085. h4 `+ Q, ?1 M" N% P$ v+ E
r_____3AC4
7 [7 p& J/ U0 M2 |: r8 v! A3 ps_____2F50
6 U, o" a  [5 ]' _9 A  j8 at_____36F83 W  O* t, P. m- W9 @2 ?
u_____7010" f- ?! n) ^+ |* n9 W0 ]) G
v_____0B421 W. E8 J0 i' k5 }7 ~" b/ R/ D6 }
w_____1C7A
3 y! O* f% x1 k: w& B5 lx_____16F8
2 T2 n9 j* V% ly_____2EE7
) `0 V" e* u- f; q2 o: Zz_____5CF3+ T" L# {* @0 r
!_____6233
" x- ?# ~( N4 F" p/ _  \- z@_____3A45& e3 y. H- X+ p/ a1 Y4 V6 {, J4 c$ k
#_____22913 E" T% ^6 b9 a: Y, L" v& ]' R/ x
$_____5D5C
" j( D8 J$ |# @  ]%_____09B92 w7 K4 i$ p6 C9 U7 v, c& S" j5 Y% v
^_____43EA
( u% e* @1 d. j&_____62B9
- c) J* r# O  `' B1 E6 p*_____6301  @5 L7 {  \) J! q- J
(_____4659; G7 T$ f6 m" K. |6 ~; l4 z$ K" ~
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表