返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm* a) A* K# e# B, s
原始出处:http://www.3ast.com.cm
. N  p- Z0 J, j( J, [$ s  }5 U$ R, q+ X" b, y1 [
看不懂的直接绕过
9 k) R2 W# A! }& I加密前为:hwy123456( q. j& {& h, T0 K
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% p/ g2 u8 F0 \1 g6 ^$ C/ r1 d9 C1 E# `
============================================
( V7 N) m0 O" e4 H- o! j" O( u上面是当时自己校内的心情。现在已经解破出来了,分享给大家# e- \  t* D5 k- M0 N
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法' R2 k, N7 h- I7 L% w. a
以下是RSA算法文件0 G4 A& u- Z' K8 t/ c( z3 P

# ]& {. R2 B* P文件名RSA.ASP( J' p, ~! M5 U  M6 i
===============================================( O- z) G: Q# \( s; X1 ?4 v# E
<% 0 v8 p' N7 G/ |8 n5 a+ ^/ d/ a
Class clsRSA
: g& M; E& r: ?& S; YPublic PrivateKey ' l# p6 |- ?5 _, k+ A0 U
Public PublicKey % P, n3 o. Y* Z
Public Modulus
1 j' i( K% ^% \. T0 F, m, A! V3 v/ \Public Function Crypt(pLngMessage, pLngKey)
1 _. G7 F3 E! M# \1 tOn Error Resume Next
; S1 U4 L! S' M! U1 S! |; T) xDim lLngMod
2 g7 r7 Z" M# O7 ODim lLngResult 9 l2 O- D" ]( I  _5 E5 P+ R! F
Dim lLngIndex
8 D8 k* u7 t8 ^  y  wIf pLngKey Mod 2 = 0 Then 7 z! b. x9 t. c4 o+ d
lLngResult = 1 , E  V1 \8 _, {4 y* g- o
For lLngIndex = 1 To pLngKey / 2
! O2 F: Z  C! z/ clLngMod = (pLngMessage ^ 2) Mod Modulus 4 f8 m% j' o" E' _
' Mod may error on key generation $ g' @) t1 E# V
lLngResult = (lLngMod * lLngResult) Mod Modulus
" |2 e0 w1 ]; p% n7 O# SIf Err Then Exit Function
  A+ N, d/ G: X# V1 P9 Z; ~Next 1 O" c% q+ J0 ?. d, L0 z$ d
Else 7 S1 W0 R- |: U& l
lLngResult = pLngMessage - b& J) F* ^- h6 D
For lLngIndex = 1 To pLngKey / 2 3 }+ ~1 _3 O! K2 v, B( H8 V. q
lLngMod = (pLngMessage ^ 2) Mod Modulus ! _* U3 z2 k7 a3 c/ R2 _
On Error Resume Next & V: m2 L& o  f( h% N6 W
' Mod may error on key generation ' Z2 I9 w4 N7 R: o; ^& m0 ^& I2 P
lLngResult = (lLngMod * lLngResult) Mod Modulus
6 h5 D7 [: ~! t( ZIf Err Then Exit Function 9 W8 R$ c% F$ m" H& c* O$ p" @' i
Next + O% S+ }% j1 o, Q/ G6 Q& L& [
End If
4 s) k* u9 G- K+ C, R$ ECrypt = lLngResult
1 z' U& B. m& ZEnd Function3 v% u2 P& \6 ~- R7 E/ b! U9 t

. _1 p: f/ {: qPublic Function Encode(ByVal pStrMessage)
0 F7 w- |( J( f# X4 T! _Dim lLngIndex " s5 O* ~* u$ G* W$ }! C
Dim lLngMaxIndex 5 I8 p9 Z+ q% G
Dim lBytAscii
$ X  V7 Z9 S9 x; [. vDim lLngEncrypted 0 ^  ]3 a  C$ o* Q8 p$ h
lLngMaxIndex = Len(pStrMessage) * @5 A" A( ]7 ~5 I4 ^4 ?& Q
If lLngMaxIndex = 0 Then Exit Function
7 y6 a- b; l: ]3 o2 J( ]1 LFor lLngIndex = 1 To lLngMaxIndex
' p( u9 e$ S% |lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ) ?4 x9 w5 q# X7 d: a$ H* L# f
lLngEncrypted = Crypt(lBytAscii, PublicKey)
/ k$ R' q& i( y: {  fEncode = Encode & NumberToHex(lLngEncrypted, 4)
. `9 W, S0 I% t& p* d+ {6 v7 g2 XNext
" M# ^; K- _" @5 q" b9 r5 s* HEnd Function # u& F2 N7 p! X; `, B) h' m
Public Function Decode(ByVal pStrMessage) ( `8 k* e8 H, v  ?: o4 w2 Z+ i
Dim lBytAscii
0 X6 @0 Y) ?# W2 }) P' i) gDim lLngIndex
( r  d0 q6 p+ Q" {4 MDim lLngMaxIndex . e. H( L1 U& a, a6 d
Dim lLngEncryptedData
; E) W, d$ t/ J9 `( ]% Y& B# ?Decode = "" . p1 Y! U$ |* a0 y8 y8 p4 U9 |
lLngMaxIndex = Len(pStrMessage)
: G. v& k) r; WFor lLngIndex = 1 To lLngMaxIndex Step 4 + p8 p9 D. X; Z
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
# w( J8 e( O6 J* FlBytAscii = Crypt(lLngEncryptedData, PrivateKey) + q2 a: C8 c1 Y2 E7 f
Decode = Decode & Chr(lBytAscii)
* H. ^0 l6 C3 f+ x" CNext
3 v/ i# H2 {- W0 J! HEnd Function
# x( I' F6 E9 O$ f9 TPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
; P: g; b5 ]. D- U& ENumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) % A3 W4 p% j9 H$ J* M! y' J+ p9 s
End Function . `4 C9 ^+ H0 ]! R
Private Function HexToNumber(ByRef pStrHex) " d4 X! @2 Y( U; r3 W
HexToNumber = CLng("&h" & pStrHex) 4 Y9 n* [$ m1 x" e. G1 l$ u7 A# |
End Function
, G2 [& L# u5 U" q! A+ rEnd Class
- W4 W4 ^/ n! [function Encryptstr(Message)
. q4 U1 N# j$ }7 C1 |7 W- yDim LngKeyE
2 j( V0 O8 G; R. o! F0 EDim LngKeyD
) I7 q' J7 ]+ D4 ODim LngKeyN
) D$ U  e4 r% c, ]" K# k& ~+ j+ YDim StrMessage
& R5 [: I3 t" e6 \  a! I1 y0 b. tDim ObjRSA
* Q. c& l0 _# ?LngKeyE = "32823" ; _2 o4 W& N. v2 A' {* ~/ T" r% B
LngKeyD = "20643" 9 J9 k3 ~$ H5 w" n# r( e2 l6 z
LngKeyN = "29893"
2 R8 B% ~" i; D& ZStrMessage = Message
) B. ]' q# l' ^# o* D9 v0 OSet ObjRSA = New clsRSA 7 p6 E% D. J& R0 }8 @
ObjRSA.PublicKey = LngKeyE
5 [7 K5 l3 T3 M4 n/ }/ VObjRSA.Modulus = LngKeyN $ X  ~& s' B; @' y2 H- L
Encryptstr = ObjRSA.Encode(StrMessage)
" u) ?8 j1 u8 K" F' ?Set ObjRSA = Nothing 4 `9 {: D$ a8 h
end function
# f( `! q6 k* z' }2 o, E- ]Function Decryptstr(Message) ! B6 m: y+ N1 E# |: c
Dim LngKeyE
; d; j( }% q; |# P# M2 W  HDim LngKeyD 4 F. t9 \. _3 n+ `& X8 I
Dim LngKeyN ' R- t; V2 Q; l+ w7 r* V- T- h
Dim StrMessage 3 L& c5 z  c3 s0 i5 t( C
Dim ObjRSA 4 Z+ A8 Y6 l8 E6 h6 v1 _, v
LngKeyE = "32823" 6 N7 b3 k# p# H  B' U
LngKeyD = "20643"
  C8 R/ C" a9 q2 lLngKeyN = "29893"
1 W9 f% Z) M) E, fStrMessage = Message ' G9 V* y& X+ i& ]! p! m
Set ObjRSA = New clsRSA ) S9 @  ^2 {  b/ ^" S
ObjRSA.PrivateKey =LngKeyD 3 S& M0 @( c5 x! I% x
ObjRSA.Modulus=LngKeyN . E6 g  N1 M4 e& r
decryptstr=ObjRSA.Decode(StrMessage)
2 h" M, S$ W# BSet ObjRSA = Nothing " F$ J0 L  V* @5 E% u" J
end function
' B) i1 q3 }; a9 j* o%>/ a7 V5 k. G$ O% b: r
===============================================' h, p9 V$ v" Y: @: G9 r
/ i# F" P$ P) W
还有一个用于测试这段代码的test.asp4 b# k, M6 t! Y
有兴趣的自己搭建个IIS测试下
1 m: [7 K8 \8 U4 g<!--#INCLUDE FILE="RSA.asp"-->
4 Q+ O# @$ ^3 {; X9 G: N& @<%
: \: O5 p# V8 |) U* Z9 B3 Bfunction Encryptstr(Message) ; L1 X* t" f2 R( a: }' s5 o
Dim LngKeyE 2 [/ c" D1 x' j$ X
Dim LngKeyD
, `6 y+ B* d4 k7 X- v+ {( _) o- Z1 ODim LngKeyN
$ ^2 `, k" X* |  o" ?; j7 o: @Dim StrMessage
; b. s# X3 S4 ]  V2 y+ zDim ObjRSA + `5 d; Z2 r, ?1 _/ Q- w3 h- \
LngKeyE = "32823"
" ~" H' P) X+ D. jLngKeyD = "20643" : s7 W  h' m* D7 W/ h1 u# p
LngKeyN = "29893" 4 `7 P: b3 k9 j5 G% I* F7 E& ]4 |
StrMessage = Message
- `6 s- a; O+ @& USet ObjRSA = New clsRSA
6 F: n4 F+ [- S! ]ObjRSA.PublicKey = LngKeyE & |1 h8 p8 n3 W8 y8 _0 _, u
ObjRSA.Modulus = LngKeyN
4 L/ ^; L0 D2 mEncryptstr = ObjRSA.Encode(StrMessage)
8 K7 ^5 I: [# G& N& {5 _& {$ x  USet ObjRSA = Nothing
6 K/ g! Y# J* y# a- Fend function 7 Q5 g$ k5 Z5 G( Q! S
function decryptstr(Message)
1 s( g3 Q6 b: b, j' vDim LngKeyE / r+ m1 T1 k2 ^( j
Dim LngKeyD ! h: C6 W1 a/ E% x' |
Dim LngKeyN & l5 T1 J3 ~- N5 D' k: ?
Dim StrMessage 1 m4 v* R: l( F' ?
Dim ObjRSA : z4 \% o% W" d; Q8 \, I; h& X' q7 B
LngKeyE = "32823"
' V3 T4 A/ q0 ZLngKeyD = "20643"
9 x/ J5 k9 Z4 XLngKeyN = "29893"
7 y: R7 k, W! c: ZStrMessage = Message
2 |" y: V0 C' d; V/ F# @: {- uSet ObjRSA = New clsRSA ! P) U% N8 M2 ?# R2 J4 V* m, y
ObjRSA.PrivateKey =LngKeyD 9 F6 ]  d# \# n4 I/ n% r6 r  k, X
ObjRSA.Modulus=LngKeyN
2 x# k' F% i  G2 {+ v. C0 O( mdecryptstr=ObjRSA.Decode(StrMessage) 8 ~- X  D/ \( m" s9 t
Set ObjRSA = Nothing
2 [! [6 o0 C6 x" I# yend function 0 M3 u/ D: v. w0 S7 U
dim last,first
5 K2 ?% G3 ]  n) }9 A, K; U# wfirst="!@#$%^&*()" % |6 r/ k$ l' ^7 G+ Y
Response.Write "加密前为:"&first ( h8 f& O$ r/ c4 z5 u: K
last=Encryptstr(first)
% K1 z4 M! _/ J: b; NResponse.Write "加密后为"&last
/ g7 ^' O: [- N# F5 @/ ], `Response.Write "解密后为" &decryptstr(last) . F# h4 Z) b) J* U7 a9 J
%> ==============================================
2 L4 \1 s* K, K  J/ j2 n4 J剩下的就是字符的对照表了% F( K2 S& G0 C5 k$ m2 M0 g0 a
===================字符集================
: P( \/ t9 A3 _, \4 O, U3 P1_____6EBB, t% R/ r; T+ z! q! Q# C1 }5 A8 \
2_____5C1F
2 o; P6 Y( I& q9 ^3_____4D75
4 ^* N, `3 k3 t4_____26CC5 {! B. U; S! U& A: x
5_____4F88
/ L; Y. d: j8 h+ Y2 k6_____3F4E
, W( ?7 w( G/ D: I$ r4 j7 h  _7_____0A9D3 Y! n2 W/ d  Z) M! e4 V( \
8_____1A1C5 R: B( z  |0 O
9_____6D205 t3 X' {1 U5 r, g9 t4 g
0_____10898 |1 H: Q' ~, c6 }! T& ~
a_____0F3E# B  ]& g- |7 |. V
b_____3159
2 U3 i3 r* @# [; Z( n7 `) K) K# ?c_____3517
# m& z. r7 B( r1 U8 `d_____419C
, T* ]1 }6 O7 ^: y1 `' l$ d8 ]e_____615C4 f; A: S* g0 P
f_____556F
' ~! p/ B# X" M( l0 {, e* V& ^g_____2B7F) G/ W# L$ F/ ?  E" P8 P3 e0 }! ^. w
h_____0F9C
8 \; }; M( `; q0 S  Ci_____00FA
) N  s% \2 Z, W( ej_____5A50
$ c, q+ |% q$ x) g1 N' `k_____2850
; J: v$ X0 ?# F$ ll_____3E7B9 W  Y) z+ {( I% w1 y2 x, n9 E
m_____71C5+ q$ w0 k- J& g: q$ J3 D
n_____1FC8$ E6 {8 c1 C5 u0 `2 f2 r
o_____74C1
4 U4 n6 i' V" F. o1 Jp_____5FB8& Z- I; C6 [7 [9 e  F3 b
q_____6085( l% ~$ E6 c5 T. g# ^
r_____3AC49 C; y! H% z* F$ |' _6 ^
s_____2F50( _3 `  Z2 {1 e" g4 ]
t_____36F82 p" j) s2 U& C8 M$ @; ~* `
u_____7010  a4 f; \+ s6 ?2 p/ s/ k  ?1 R/ Z  B4 b
v_____0B42* s# t, s& ]! O8 r! t* j# p
w_____1C7A
$ H. d' a9 a% Z% [9 A) S8 yx_____16F8
9 A: j8 B+ I4 w5 qy_____2EE7
+ h. n- t' f7 qz_____5CF3$ S  V( E7 w$ a$ d' ?5 m
!_____6233& B% b, B  N2 h# o3 [% [( C
@_____3A454 G+ p5 {5 e0 C
#_____2291
8 b5 ]' J' }2 a. X' v$_____5D5C) Z# l& d' x. {. O9 ?! W, O
%_____09B90 a3 x" O( z/ F' P
^_____43EA
5 P2 L( L! u3 j1 m6 ^&_____62B9) ]- w' _$ z' I( o
*_____6301
6 A* e. X# S* V! r6 C(_____46590 O7 d8 G. G2 R5 J/ T) b4 w' S
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表