返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm. E% G$ D) ^# l$ x
原始出处:http://www.3ast.com.cm
# u- h2 v2 c! C9 v& }0 q
( [' }" Z3 m" v看不懂的直接绕过
( D$ f. @9 P6 P/ q加密前为:hwy123456
7 O6 ^/ E  L( Q& W加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
0 f3 W: y% D7 @* q% M" j1 _6 T4 q/ V* {, E
============================================7 G- _) O+ B* D. {
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
& a- U, ~4 W% S( H2 }也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
" x0 [" r/ m& N) X/ X& ^以下是RSA算法文件
3 o$ r& J6 K  z" w. H& \7 ], @7 ~% ^0 m
" g0 E9 n. K+ }/ p0 U文件名RSA.ASP7 Q4 f& W9 A" o/ D2 ]8 Q
===============================================8 r/ i( u1 D: }& g
<% . }; T- s, N; s: z) `: i6 x7 ^
Class clsRSA 8 a0 X+ T/ y8 ?) w# _6 C8 R
Public PrivateKey & v3 W+ `4 h4 s- c/ w
Public PublicKey 2 V! F, N, X+ q
Public Modulus & a9 \/ s. X9 G; X3 r) c5 D2 o
Public Function Crypt(pLngMessage, pLngKey)
+ T& t9 |9 f. k6 P+ l# _On Error Resume Next
1 w- w7 O4 Y( M( D" \8 gDim lLngMod
1 K$ H$ h4 H) E' pDim lLngResult 4 ^, m- O$ @, l* e/ E, W" F
Dim lLngIndex ( M4 N. d0 I: {! j, Q
If pLngKey Mod 2 = 0 Then ; @" c$ W% R0 K5 i% k+ S
lLngResult = 1 # Z( V! O: {  V. S  Q( H( h) A4 M) K
For lLngIndex = 1 To pLngKey / 2 . @' d5 e- [! `, P1 B9 t/ t4 S
lLngMod = (pLngMessage ^ 2) Mod Modulus ; e4 y6 i) F% d6 ]- S
' Mod may error on key generation 5 z& j1 z1 q! j3 G2 ]9 J8 l
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 [- d7 t% U, sIf Err Then Exit Function
( V+ _+ b4 s; |. I9 @( C: eNext 0 h9 Q4 {' \" ^1 ~7 S" e6 N! l& K
Else
( P/ C1 J- @: \" wlLngResult = pLngMessage   h$ \& R7 t' U7 M6 D0 b3 F  J
For lLngIndex = 1 To pLngKey / 2 ( g: n8 J4 x7 ]. l/ C3 z: v
lLngMod = (pLngMessage ^ 2) Mod Modulus
) G0 F  ?. @0 v( n! COn Error Resume Next 8 Z( T! `8 J9 Y) T: n
' Mod may error on key generation
- W# K' [4 E: m5 [lLngResult = (lLngMod * lLngResult) Mod Modulus 8 [7 a' c0 E5 [3 r( s( i
If Err Then Exit Function
# }' L: ^# U+ X& qNext
+ R, h: `6 \! U$ O3 P5 i) ZEnd If * G  W3 W% ~, B( A0 O
Crypt = lLngResult
- v/ A6 ~6 `* j7 eEnd Function$ V% I1 t: }. D& a5 C
) [7 Z) a3 D. M& M7 Y8 S
Public Function Encode(ByVal pStrMessage) * B5 E: @& m" {2 D8 U( K" ]( {% `3 H+ }
Dim lLngIndex
, Z0 X" _- T4 n# ?Dim lLngMaxIndex - Z' z* K/ A$ O  z! @2 _. j
Dim lBytAscii ; f) a& W4 }( g2 O
Dim lLngEncrypted 2 _$ ~! I" |4 U1 t% Q$ P
lLngMaxIndex = Len(pStrMessage)
1 G5 J9 R9 E" d$ m. O  MIf lLngMaxIndex = 0 Then Exit Function
, x; \- f1 Z  G8 C0 C4 rFor lLngIndex = 1 To lLngMaxIndex * W( O5 S! w1 n6 K
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))   L. n+ o! r3 A" k
lLngEncrypted = Crypt(lBytAscii, PublicKey)
8 H0 R7 q) O8 I( s; ~Encode = Encode & NumberToHex(lLngEncrypted, 4) : d3 \' `) @9 g
Next
" Q. c7 t6 T2 A2 P/ ^End Function ' K: ^5 ^/ o! B7 p
Public Function Decode(ByVal pStrMessage) % r9 R3 C' B" S* W
Dim lBytAscii / V3 D: n+ L. @- }0 D
Dim lLngIndex & s2 w* @& M: `0 F9 m  s9 `: ^" v
Dim lLngMaxIndex
: `) w7 P. \; T% A. S" o% l0 a/ h/ WDim lLngEncryptedData
, D6 v: G2 E/ j& h& YDecode = "" % ^0 i, L% S& V. k6 v: J
lLngMaxIndex = Len(pStrMessage) 3 k. m4 Q& P0 t5 Q: z. m' R
For lLngIndex = 1 To lLngMaxIndex Step 4
) c  H0 h+ [; plLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 2 G& y5 R$ V: n. p6 C( C
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) % I1 w% E0 i% b3 e! ?( y( S: D: t
Decode = Decode & Chr(lBytAscii)
( p' n: A* r4 H% b. ~; q7 }Next
7 r: l, f" j! u8 X3 ?' A+ ~" |) L! aEnd Function
6 [! j. B4 k* k' h7 iPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) - D) l4 |! J4 }$ Y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 G! h1 E7 f3 ~, H/ ]6 t
End Function ' O, {1 Y8 t- W! B7 ~
Private Function HexToNumber(ByRef pStrHex) . [. N+ Y, j. A5 E) q& N
HexToNumber = CLng("&h" & pStrHex)
  {$ B2 R, b( p' C% JEnd Function ! K: p$ J: B  Q  B! F
End Class 0 V. D2 u1 N3 L) u, ^
function Encryptstr(Message) ' H! V, D0 }2 ]# X; l' ~* ?0 q% K
Dim LngKeyE
2 d! Y# M( o& {& JDim LngKeyD 6 E' v5 [: U: Z* |# K0 y
Dim LngKeyN 2 _9 y# i5 B0 C" S
Dim StrMessage
! v4 A& a; u0 F2 k  Y% b$ JDim ObjRSA # }* ?* H/ q/ a7 g5 V6 V
LngKeyE = "32823" ; S  k5 X7 \% ]9 \) }6 s( W
LngKeyD = "20643" 1 K8 K" @) S1 d7 z0 L$ ^
LngKeyN = "29893" 6 M& x- r) [4 {$ `( U: {
StrMessage = Message
3 U$ b# t, r. ~# @; MSet ObjRSA = New clsRSA - |+ @: K/ D6 E  @
ObjRSA.PublicKey = LngKeyE + a; M1 c1 J1 C8 A# b; u
ObjRSA.Modulus = LngKeyN $ f( p3 A4 f" J; r7 O
Encryptstr = ObjRSA.Encode(StrMessage)
: k/ c2 M- V- l# s: U6 ?Set ObjRSA = Nothing & m$ u  Z  ]# x, e; m
end function
- k, T$ u" q& z6 ?$ l/ N9 }$ OFunction Decryptstr(Message)
  V% d* ^) m/ _2 m' `Dim LngKeyE
+ M+ c6 v7 C6 A8 |! kDim LngKeyD - D% p- g; E; w2 l! Y
Dim LngKeyN
6 }  k+ B; e0 @7 u' c; v; [Dim StrMessage 7 Q" N$ j0 V( H: q" t6 U
Dim ObjRSA % ?6 D2 C! |9 u- L& _  Y
LngKeyE = "32823" / _6 o% \0 I$ g7 ?% q9 ]3 i
LngKeyD = "20643"
  R, @) C  `, ^& M* w5 z! {LngKeyN = "29893"
- u' d( W# `( AStrMessage = Message   M0 L  I4 _7 I1 [2 ~2 V' ]7 y
Set ObjRSA = New clsRSA 5 C% q6 A1 A* I  H
ObjRSA.PrivateKey =LngKeyD
1 ]: v' [6 Q* m$ g3 TObjRSA.Modulus=LngKeyN
' {8 g+ U7 Q7 g; F5 P; K5 T+ Tdecryptstr=ObjRSA.Decode(StrMessage) / b3 b  Q$ E& O9 @- C
Set ObjRSA = Nothing : [  H: H! X8 q
end function
, Q6 s2 L' ?( e' S& J  B. }%>
3 r  b2 X3 Y1 ]* t2 t===============================================
' w- p( T9 I. ]  z3 z+ }
4 i+ J( V: W, Z2 o- l2 F还有一个用于测试这段代码的test.asp. R, B4 D; {" T4 |2 o2 M! l5 U7 F1 t8 f
有兴趣的自己搭建个IIS测试下
% u  i, D$ i9 u$ l<!--#INCLUDE FILE="RSA.asp"--> ) w# N9 E7 a0 e' Y+ H
<%) h; g4 m. O" t, c# m+ }9 _+ k3 t
function Encryptstr(Message)
0 ~* ~. r$ B! s% e  t8 ]& G0 ]9 KDim LngKeyE - h# T8 L6 Q9 v( I3 r: Q! t
Dim LngKeyD
% S( Y3 Y9 h3 h7 bDim LngKeyN , V' @" V& J" ^
Dim StrMessage
9 ^! i0 x; \$ g- Q$ V3 c/ xDim ObjRSA
. W( Z, d; [2 t7 H# kLngKeyE = "32823" 8 A" j+ [1 k: C2 x0 s  e8 ^0 B
LngKeyD = "20643"
9 H! ^" d9 j- t: [* L' oLngKeyN = "29893" : z9 Y& e( x4 O' C) W
StrMessage = Message 9 }  b5 c  r1 P8 i2 s, S
Set ObjRSA = New clsRSA
8 R4 F! z1 N5 H% aObjRSA.PublicKey = LngKeyE
  _5 t$ j. o/ ]% v* _( {: AObjRSA.Modulus = LngKeyN
' l9 m# u2 i" Q$ V0 m0 g3 aEncryptstr = ObjRSA.Encode(StrMessage) 5 `5 o: w, x& ~* q% S" a
Set ObjRSA = Nothing $ \/ x/ j& u$ F. K8 R: u
end function
7 D0 Z$ `9 _" |# V) _function decryptstr(Message) ; m! ~! g) z5 K' A- [
Dim LngKeyE
$ Y7 _% z. o8 oDim LngKeyD 9 l) O' G$ J$ Z) x7 F3 {7 v1 f
Dim LngKeyN : O& D& Z: i5 G: U
Dim StrMessage + \) F+ r6 g  a7 x9 p' t
Dim ObjRSA
8 _( o4 q. B) W3 F( b+ mLngKeyE = "32823"
3 x/ r, Y6 l/ O( i% f( f; U" i3 bLngKeyD = "20643"
8 W: L# L+ K9 ^# W  M+ H7 s; eLngKeyN = "29893" 7 z! y+ G& k! V$ E$ k& x
StrMessage = Message , p* n; G0 U' C( Y
Set ObjRSA = New clsRSA
* a$ I7 x4 o) E. Q" @: FObjRSA.PrivateKey =LngKeyD : z/ I4 w2 @* k# x% T8 ~
ObjRSA.Modulus=LngKeyN
# A  ~' ^& f9 P9 ~* b& _1 ndecryptstr=ObjRSA.Decode(StrMessage) ! n. X1 }) U2 R: c1 N' c: f
Set ObjRSA = Nothing 3 k7 f# r6 }9 H  j$ g
end function : r! b, ^! [% P" l
dim last,first
8 t/ c% j- G# F' f0 afirst="!@#$%^&*()"
2 p; z# i* O1 e) e% B' h- bResponse.Write "加密前为:"&first
4 Y0 a5 Z7 }' U; I! {! Klast=Encryptstr(first)
: i+ P6 ^6 F  A8 k0 X8 ^& U1 j, ^Response.Write "加密后为"&last
: Y4 `+ r; N7 Y0 s6 H8 uResponse.Write "解密后为" &decryptstr(last)
. c5 K" x9 Q  s% I, m3 w  ]: J%> ==============================================
" u4 D. N3 I. Y* a% ?: |; s2 y+ n剩下的就是字符的对照表了
2 ?; l2 [& N" X7 }7 i% `% s===================字符集================. ^" r9 x9 A. v. R: f) E$ C
1_____6EBB$ N  Z! V& R( y. X8 @4 N
2_____5C1F  v( z, ~$ v, j2 t. @  o
3_____4D75
3 s: @5 W! E5 ?! U: x4_____26CC. Q# p- K' N5 ~1 `5 B6 O- ^
5_____4F88% p: {7 k" I, E
6_____3F4E. R/ d$ }, s. ]* s; d. q
7_____0A9D0 N6 l# }6 A. [1 S% s- ~
8_____1A1C$ ~/ H' V9 i) K4 G0 S) c0 y/ @
9_____6D20
  s; E2 M2 [5 Y- `  i" r" a0_____1089
( P& s! F  z; }. m0 sa_____0F3E9 ?) D+ X0 ~5 t, B# [
b_____3159
3 ?: s! e8 q8 n7 ac_____3517
+ c# r1 [9 W$ a# \4 _d_____419C: W7 Z  j8 _4 F6 J
e_____615C
% g: x- Y1 A! Q, ^% _0 I: a7 Nf_____556F/ g' I! O0 k4 _" N7 S
g_____2B7F
1 c' `# X' [: ?3 l$ z4 Nh_____0F9C
7 l: i' b) T3 {4 T; ?$ N) p( S! Ti_____00FA
% A/ q( P$ d1 `. x" S( z7 x2 ij_____5A50
6 W3 z: f* v& M3 y" U% Q- |* Y* G5 ^k_____2850( K& @' E3 q. B# ]& \. n+ Q, i2 H
l_____3E7B& [+ ?6 q# A2 l
m_____71C5! o# _$ H; T! J- k$ S5 n* w
n_____1FC8* l4 ]6 V4 a# T* T5 V
o_____74C13 R, x) A* \; I3 G) c: ~
p_____5FB8) y$ x- O) ]3 T& s- I$ V
q_____6085
  B8 t7 F! s0 G  b6 cr_____3AC48 a7 o5 @& @& [2 K% J, S- c
s_____2F50
1 k  w0 z" P% Gt_____36F8
3 A' r! ]  F% yu_____7010. Z  a/ W6 z, M% T& m: ^4 D
v_____0B42, q$ b6 r7 Q( I% @1 m; M3 q
w_____1C7A
: Y7 a6 U9 Z5 T8 d3 Mx_____16F89 ?9 Q9 ?; S- ?! s' @- P
y_____2EE7' m( P- s# Q4 r8 Y$ X5 Y+ L
z_____5CF3
# S: a+ a7 A: U!_____6233
2 |  I- h- s" q! ~2 k& w@_____3A45
5 G, J; k, Q$ ?! k" X- E#_____2291* I( ^8 G; J3 }# R6 ^' ^. X
$_____5D5C
* K: ^2 X, Z) V, U: Y! W: y%_____09B9
; Q  A! t/ f/ g. O8 q- O: ]0 K^_____43EA- ~8 l: A$ X9 d
&_____62B9
2 N9 x) @' l* S: d. k4 ~*_____6301
. L( f( P8 |2 M- \: ]6 U(_____46599 w: }6 U. @) {, b3 [& B- F
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表