返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm" i, \& ?/ D, Y) {  _3 e; V2 i6 T
原始出处:http://www.3ast.com.cm8 _3 y0 j) [$ a7 O3 L; d' D! p
! x/ s) w  g" b+ T- k
看不懂的直接绕过
4 Z' Q& |4 `6 T) N加密前为:hwy123456- R9 U% }( G0 i" w: Y+ h( ^/ d
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  d" N3 h$ \7 M# q* q4 l/ D
- c8 e. L$ _* D/ a3 i4 M============================================
3 j- v: g" l( D/ O' h! F2 ?$ P+ t6 |上面是当时自己校内的心情。现在已经解破出来了,分享给大家$ }+ \( w/ o5 t! y- m& a* Y
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
, H  A1 F; S+ t2 h以下是RSA算法文件0 H" [9 _1 Z$ Y0 Q. z- w1 a4 R
5 w$ J; x: x* O& k% [  v
文件名RSA.ASP
6 p; C6 H) v7 u+ A+ A# o5 J5 ^===============================================
! b5 o; U# G  q2 O( f2 x, P2 o<%
. L# O% {3 g0 T1 D" _0 h1 |) [Class clsRSA & p3 b# G' r* ~2 o2 ?0 x
Public PrivateKey
/ n' {% F3 x$ _Public PublicKey 3 C; P0 R2 p1 e, n' X. F
Public Modulus
3 W' @; w9 x& kPublic Function Crypt(pLngMessage, pLngKey) 0 u  H+ ]1 n' Z" ~8 \! v  D
On Error Resume Next
+ ~, l5 }7 Y# H0 \$ D9 \5 bDim lLngMod ( R- k& ?% K+ A7 h5 m- d
Dim lLngResult
6 T3 I8 i9 ^  G' qDim lLngIndex ( L" Y5 u$ Y( w8 Q# V) \# D* @
If pLngKey Mod 2 = 0 Then
, w  y: h8 U( O% k& i# TlLngResult = 1 1 |# d) J' G. `4 L$ X0 I
For lLngIndex = 1 To pLngKey / 2
3 z$ y# i4 K! i! u" ZlLngMod = (pLngMessage ^ 2) Mod Modulus 1 D  U8 J( i. M
' Mod may error on key generation 1 ~4 @8 L, ~6 K3 j0 V. [& @3 u
lLngResult = (lLngMod * lLngResult) Mod Modulus - J8 l6 y/ P' s9 }( d
If Err Then Exit Function
( q' R- y6 i. b5 |1 h. xNext / V- r# B" C8 w6 Z
Else 8 j3 H. m! m% p9 W6 ^
lLngResult = pLngMessage 0 y) G3 j/ R: m9 m' x) x
For lLngIndex = 1 To pLngKey / 2
, Q: |( s( U! S" d$ I+ XlLngMod = (pLngMessage ^ 2) Mod Modulus
& @# Z5 {  s# \On Error Resume Next
$ O/ T- c' U  q5 Z. ~' Mod may error on key generation 2 M$ D2 K: {5 M+ \% Q
lLngResult = (lLngMod * lLngResult) Mod Modulus + V7 t8 \, }( w6 I& A, m
If Err Then Exit Function 7 U7 [' b4 Z# i0 [$ o/ Y( P
Next 6 i: n/ k0 V5 c; {4 I" x: F
End If
! u2 E( c* I+ U& l7 yCrypt = lLngResult : ?1 s, n! r. j" e4 t) Y6 f0 c1 m8 r
End Function3 E, f0 k" Y2 `' P% K/ ~

+ d) o% s7 l  o! y3 f8 dPublic Function Encode(ByVal pStrMessage)
2 }; a; [7 o& j$ PDim lLngIndex / u$ B/ @# V8 `5 y
Dim lLngMaxIndex
* F2 M0 Z5 ~1 x! JDim lBytAscii
7 ?/ S/ O6 f5 `( k6 wDim lLngEncrypted   q& v1 R* p, y  C
lLngMaxIndex = Len(pStrMessage)
2 b3 N9 h4 ~/ e+ l3 Y7 BIf lLngMaxIndex = 0 Then Exit Function + |9 v$ D, ~0 U& R1 p2 J8 a0 i
For lLngIndex = 1 To lLngMaxIndex 8 u0 ~2 p: p$ |
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 M) b* x- J" [  ?* A3 t
lLngEncrypted = Crypt(lBytAscii, PublicKey)
8 A% s( T' v0 ^" TEncode = Encode & NumberToHex(lLngEncrypted, 4)
" @" g1 \" ~! |# {Next 0 k! Z2 S$ ]) H+ J
End Function
: @1 R8 A! w7 Y7 RPublic Function Decode(ByVal pStrMessage) + Y8 u5 v, W' R  w( [: S
Dim lBytAscii ! S$ T8 @6 Y% M
Dim lLngIndex & a$ ]4 C  Y! }7 W
Dim lLngMaxIndex
% m4 T0 n9 L/ a8 WDim lLngEncryptedData 8 |- z) h; M2 W9 e3 {# Y3 Z) g- ]( Y0 O
Decode = ""
. Y/ b- L, y3 P/ GlLngMaxIndex = Len(pStrMessage)
; o  K$ K  P" T5 \0 T- m9 XFor lLngIndex = 1 To lLngMaxIndex Step 4 7 M6 Q  z4 d5 z6 H- _8 {
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) * a& P9 T  m/ t% E" D; s9 F( C; u
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ o( H/ `' m% wDecode = Decode & Chr(lBytAscii)
! C3 X. n7 E2 Z/ ~) |3 bNext 2 i9 W/ Q! R) ?. |6 \3 |* p" \" V  Q
End Function 0 T( L& H: _5 {* L; S
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) - D( V( z- e( g) R: ^! @) ^4 m+ P
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& [" F! D; R% Q: l& T8 F. m' YEnd Function / @4 j( Q0 D$ i  F+ U* @
Private Function HexToNumber(ByRef pStrHex) 7 ]2 }- R* j4 L1 l+ M8 i
HexToNumber = CLng("&h" & pStrHex)
# Z; p; S; h  p* Q; \9 M  {; ]End Function
1 }. C  V/ }; S& TEnd Class ' w4 c. H3 Y4 K: s7 ~1 o
function Encryptstr(Message)
8 O) ?* S$ k, vDim LngKeyE 8 z, D8 P2 |2 f6 b
Dim LngKeyD
$ n! D, v& g6 YDim LngKeyN
0 [) Z6 l3 {7 L. _3 ~9 L" ~Dim StrMessage
, w( W  G4 G5 F0 @3 H" ]0 qDim ObjRSA 5 g2 r9 F/ h; h1 x
LngKeyE = "32823"
+ U; }1 p! ~2 f+ y* CLngKeyD = "20643" ( G4 C5 K, P! N' _2 f
LngKeyN = "29893"
! `, ?! q7 N% P2 G  LStrMessage = Message 4 G) u- t3 n# \: B8 b* A' O9 U6 `
Set ObjRSA = New clsRSA   P2 J- {- E% |" x! C
ObjRSA.PublicKey = LngKeyE
, `' H; g0 e3 w  G: e# VObjRSA.Modulus = LngKeyN
1 M6 O! z3 [& l/ N6 OEncryptstr = ObjRSA.Encode(StrMessage) . I+ `0 W, H6 l+ Q( I8 M; u: }
Set ObjRSA = Nothing 6 X7 u2 @1 C0 h% t( N1 z& i: b
end function/ P7 [! Q- w# e3 _. g1 U
Function Decryptstr(Message)
/ \, Z# k* v1 w6 T- t3 z" m" \Dim LngKeyE 5 @% H5 ?3 i: f3 x
Dim LngKeyD - o" r1 e. |7 _, T
Dim LngKeyN 5 A; o, C( i9 B+ g" D: O
Dim StrMessage
( @; U9 C; n3 i0 H9 w  w/ q7 DDim ObjRSA
: s4 S' _. w3 o6 F% L" yLngKeyE = "32823" . a! P" k, {, [/ u9 W# K# S
LngKeyD = "20643"
: t( c) t% F+ L3 S" p0 ILngKeyN = "29893"
) P2 m, W& C8 m- `" E$ @9 TStrMessage = Message
6 ?; u# o4 \' l) ISet ObjRSA = New clsRSA / i& z# M; p. n$ ~5 A: h
ObjRSA.PrivateKey =LngKeyD
: ^# S1 x% W, R* a) I' W3 {/ UObjRSA.Modulus=LngKeyN - u2 _. G# |3 h) n; \
decryptstr=ObjRSA.Decode(StrMessage) . i  C1 @0 J& D. {( `: P9 P: W
Set ObjRSA = Nothing 4 W1 `  G1 m4 U# f2 ^$ i1 W" {9 u8 V
end function
/ z. J/ ^4 t6 _" Q' c; @%>' A: S# h: j7 h0 V) H
===============================================7 K) j5 P- I: g' s$ K: A/ W5 z

8 |$ Z) K- {  A; X还有一个用于测试这段代码的test.asp
) Y" Z# _. i' j4 k6 }/ I- s有兴趣的自己搭建个IIS测试下
$ b# C  }! j/ _) S<!--#INCLUDE FILE="RSA.asp"--> 7 i# Q- W3 a4 d; n6 Q. Y' j) }
<%# J4 b3 D+ t# O, A
function Encryptstr(Message) 4 Q/ |- l8 p$ h5 |
Dim LngKeyE
9 Y0 k6 b8 E7 r) i1 Q5 _  I- WDim LngKeyD
* F! u! s5 x/ G: M1 k* fDim LngKeyN
% |; D: X3 p& RDim StrMessage " e1 y& f' M+ W; ?5 C6 b& I
Dim ObjRSA 9 h. s: |" {, j) S
LngKeyE = "32823" 8 |" X# M* X: Z/ o' z  _
LngKeyD = "20643"
9 O* N3 y* M9 l8 BLngKeyN = "29893" 3 V4 A7 B( j2 ^1 T
StrMessage = Message
  w) H# J6 Y9 Z  g5 lSet ObjRSA = New clsRSA
# t( Y2 q0 O( Z, z; aObjRSA.PublicKey = LngKeyE
! K4 `3 M0 I9 ~% T" y% j+ uObjRSA.Modulus = LngKeyN
/ @" w2 g2 O% s: }! f+ k: z/ E3 eEncryptstr = ObjRSA.Encode(StrMessage) $ s! C% F; }9 C# ^
Set ObjRSA = Nothing
) N5 R( y' V$ }end function ! _8 m$ A! P/ D. E4 t" M# \
function decryptstr(Message) ! N1 J0 z% E& ?0 t: f+ D8 m
Dim LngKeyE
0 K) d3 r5 M6 {, _, c% ODim LngKeyD + [% D7 e: W8 J3 A. \
Dim LngKeyN
& s/ _  Q" z0 o: e" pDim StrMessage
. a' ~) s3 |4 Q* I1 ?9 }Dim ObjRSA
4 ]  I) b3 `2 x) F) |# {) wLngKeyE = "32823" - b0 A- f0 N" `; Y0 y( y
LngKeyD = "20643"
2 C6 C4 T3 `' T0 C. dLngKeyN = "29893"
9 }6 `4 g' G4 t  c0 d7 m9 cStrMessage = Message
3 H# s# {" a$ U* l1 p% ~4 t0 d0 }Set ObjRSA = New clsRSA 6 B2 ?: z4 k: `% i7 J
ObjRSA.PrivateKey =LngKeyD
  E3 S5 J; D" O; G% g  qObjRSA.Modulus=LngKeyN
6 B1 y6 h* f, o8 G; w4 z* kdecryptstr=ObjRSA.Decode(StrMessage)
! |9 g$ h  F8 w; W/ S. mSet ObjRSA = Nothing
- w% d2 Q% }1 |$ k- ?0 Y/ T8 Dend function
) J: |$ e" I' X- W! @; j3 y- Wdim last,first
+ f3 m# D* ?* G" u) L! ufirst="!@#$%^&*()"
5 b" c* o+ g. Z1 Y; S# eResponse.Write "加密前为:"&first
5 N7 I& {" w& _+ Y4 V. S. E9 olast=Encryptstr(first)
, e+ F7 ?9 L$ n4 r. F$ lResponse.Write "加密后为"&last
7 b1 F; \0 }  h: J/ X; RResponse.Write "解密后为" &decryptstr(last) + g/ _+ m  ]% F
%> ==============================================
- r5 ~  l( X6 S" g) H' S剩下的就是字符的对照表了) E4 c* i! g. B4 {' P6 l
===================字符集================
; ~: K# v' _% a! g; M& r; [1_____6EBB
( D( a/ V% Y( b2_____5C1F; J2 b# I/ F5 j& \) P2 c& e! D) L
3_____4D75
% _5 t' k1 |1 [4_____26CC
) @7 Y3 y; L6 L3 l" X; M5 I- T1 h5_____4F88
, d- I. C- d  _) ?5 \6_____3F4E
  S& C6 {& D" h; o! S7_____0A9D7 X7 V0 ]: [& N+ W, f% w% f9 }
8_____1A1C( W7 m8 l  L3 ~7 z- `4 y
9_____6D20
' x! }3 R6 `* _) Q9 o0_____1089* j% d' {0 P; K" G. j9 g5 l: o
a_____0F3E
+ l* @9 O, d7 M- l( L6 nb_____3159
8 C4 E/ Q  G% o/ H+ v8 K  \c_____3517) ]4 `3 x5 ?! {+ ?+ E* {' L; O
d_____419C3 |6 I, J9 U7 e8 o& O- v1 U+ }
e_____615C
6 x0 \. z( B! _6 A  {8 K, ?4 Cf_____556F
, _: j/ y$ l7 k) L# ]6 o+ bg_____2B7F
' w: h7 b5 W0 L8 T7 {4 H" ]/ L+ Eh_____0F9C
3 J7 j" Y3 ^* |8 V* g  H+ @, Ri_____00FA
" p) r+ c: c! @2 c% p  bj_____5A50
  p) L4 r% P4 J- L" T' @8 zk_____2850
/ w: u' h, Y: G' e- l! d& A0 el_____3E7B% f" u4 ^) y8 _# D! z  J
m_____71C5- {3 v0 y' s4 q, F2 G5 X
n_____1FC8
0 |0 \1 t4 J2 d  N* Z( _o_____74C1% B( A9 s& Q, h2 x2 r( _4 }9 f& @
p_____5FB8, C3 j1 Z1 _, t% w! T
q_____6085
% N/ y" M0 P. R" {( y* m# M+ L9 Ar_____3AC4! D+ o0 R! t# p' _5 {6 v3 ~
s_____2F50% |8 v1 Z- t% ]' C2 _1 F
t_____36F8
& F# Q# X6 T& Z8 y4 n! R8 eu_____70101 J1 h' S* H/ G7 Z+ Q4 b* n
v_____0B42
8 Q7 A$ f0 O  c- u. U5 pw_____1C7A
4 W0 z& d2 U/ E! Dx_____16F81 ]( `" Z! z' Y6 W7 h
y_____2EE7
) r5 e4 b1 [/ `* n% m! |z_____5CF3) Z/ K) L. R5 j8 V) R" x
!_____6233) C! [7 P5 H) Q
@_____3A45' L" `  Z# a* ^1 T! \5 B8 ]
#_____22917 b' X$ b# z6 @
$_____5D5C& W* K) G3 g2 w. l6 g
%_____09B9
. L7 ?# W# p6 T+ M^_____43EA
$ J" ^' T- M/ |5 @&_____62B9  Q5 S3 a2 m: ~0 h
*_____6301$ f- U+ ~5 @* B9 U' t' t
(_____46592 v8 c9 N+ p' u$ Z% a1 E
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表