返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm+ K/ A, F4 T  j
原始出处:http://www.3ast.com.cm
, Y! ^' o! y7 D
7 K7 _* c: H1 A# [5 G% X5 v看不懂的直接绕过5 n; Q! s1 A+ I; }
加密前为:hwy123456& B6 ?* E3 b4 H
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% \( R( ?8 p% r( e; j% I& a4 M1 j% W7 {) z
============================================  [/ v* O1 t1 ]4 S7 C
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
$ V$ z! _, I  I, T( }也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: E. J7 S2 Z3 Y8 h% ~# ~以下是RSA算法文件
5 Z3 B3 Q0 _" H. N0 s9 i, t/ ?: n% y: p; C2 o: ]# S; W! f- f0 n+ Z
文件名RSA.ASP
- v. c+ a8 [0 u5 \. o" |===============================================
" a8 V: i1 t4 B4 b! T$ E2 [<%
, O: o( a. |( |2 k/ X( j  vClass clsRSA   v: E' F0 U+ S2 n9 L. v
Public PrivateKey
. z' M/ h7 t: r8 N6 s( Z6 `- fPublic PublicKey   k5 N) _3 m8 y4 |' v. L) l8 y
Public Modulus
0 K* }' N5 m/ F' _' FPublic Function Crypt(pLngMessage, pLngKey) # e& P2 M+ S" q2 g. y
On Error Resume Next * `8 m8 ~" r6 ]+ z" v. S7 B2 e# E! b
Dim lLngMod % B" c: j2 i% z/ P; k
Dim lLngResult + d. x# s( U2 c& w  V+ Y
Dim lLngIndex 9 j& U, g/ `4 I. x1 V
If pLngKey Mod 2 = 0 Then 1 a* O; {: V6 Z3 _
lLngResult = 1
, P) {5 Z6 f# D8 f! k5 TFor lLngIndex = 1 To pLngKey / 2 , V9 i: E1 w- C& ^. i
lLngMod = (pLngMessage ^ 2) Mod Modulus
( {0 Z0 N9 j7 s4 J2 }; f, _' Mod may error on key generation
# B9 H4 g$ K! K. W* glLngResult = (lLngMod * lLngResult) Mod Modulus $ H5 b0 s& L  x% K0 ^: G
If Err Then Exit Function
/ ], k' C& U5 d4 q" J1 Q/ }Next
/ G' f: A! ^; P( J( ^Else ! ?0 x8 U6 b* H' Y0 F" @8 H
lLngResult = pLngMessage ' f: y4 k/ x7 R. o" U" j/ d
For lLngIndex = 1 To pLngKey / 2
/ r# h8 v3 c$ {3 m+ ElLngMod = (pLngMessage ^ 2) Mod Modulus . R/ ~" Q3 b" |4 l
On Error Resume Next $ D" q" l0 e  k3 [# K
' Mod may error on key generation ! C- T4 E" `$ r
lLngResult = (lLngMod * lLngResult) Mod Modulus
/ H9 q$ A  {/ OIf Err Then Exit Function " U/ H- F  t) ~  v
Next " r+ G( R" B# U5 b& ?: {! ]
End If 3 y4 `- ^. x1 l$ ?
Crypt = lLngResult $ ]' X+ Y; ~: g! c0 A2 W
End Function
, n' d  w; k* s% y$ b
9 b0 _, K2 z7 f6 @* s% e: xPublic Function Encode(ByVal pStrMessage)
( d$ ^, A" Z( J& b) b' k  q  \Dim lLngIndex
2 \$ `  e) `" Z" _4 W6 nDim lLngMaxIndex   v% R: d4 z8 @7 C
Dim lBytAscii
; e; J1 _  Q+ O# Y: ]- W8 M, M4 ADim lLngEncrypted ! _4 S4 n; g- I( P# r8 L
lLngMaxIndex = Len(pStrMessage) 8 T; P' ^* f! y3 w
If lLngMaxIndex = 0 Then Exit Function 4 q  X5 _  D8 H/ S
For lLngIndex = 1 To lLngMaxIndex + X+ k9 \0 J  r$ N* |% W, F( r( n
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ U: L) H; r  G8 JlLngEncrypted = Crypt(lBytAscii, PublicKey) 4 p4 f- d* v1 Q5 Q3 @
Encode = Encode & NumberToHex(lLngEncrypted, 4) # G  P$ v+ {5 _
Next
! j$ J! u5 Y# o1 B& B( U$ PEnd Function $ B' S0 U  j+ F% i, a
Public Function Decode(ByVal pStrMessage) / L6 p3 H& K+ N+ a# m
Dim lBytAscii
! Z+ b9 l+ m9 @8 r& c( Z; LDim lLngIndex - _" _8 {7 D2 u
Dim lLngMaxIndex
( n# {5 Y5 B7 B2 o: ODim lLngEncryptedData 9 ]. y& a! ?: E
Decode = "" 0 @: }9 q0 Z7 A! P/ g& M
lLngMaxIndex = Len(pStrMessage) : l" `, c$ Y7 ]2 u
For lLngIndex = 1 To lLngMaxIndex Step 4
) j0 k9 o% a1 J$ P! TlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ W- p1 ?" r, Y) V9 O9 vlBytAscii = Crypt(lLngEncryptedData, PrivateKey) : w4 h  Z+ {8 O# y
Decode = Decode & Chr(lBytAscii) + a, c8 y! G: N
Next 6 E$ v# V" y! X2 @4 v4 I
End Function
  w; ]# v2 ^+ f1 Y6 ]+ Q; L0 l9 p5 c" IPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
5 a2 K" ^/ U1 {5 TNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
5 Z# q( `" ]* k8 _End Function
: n2 N! S3 }" k/ Z8 S# @3 KPrivate Function HexToNumber(ByRef pStrHex)
( `* @3 i1 n6 I: p" t. _8 b- y+ \HexToNumber = CLng("&h" & pStrHex)
. G4 U) z5 L% _6 G7 x) lEnd Function
" r6 f4 C. ^( z' B& i" q+ g# |) AEnd Class
3 O6 ~4 f# B: U  {function Encryptstr(Message)
) ~- f( Y6 ^: J" NDim LngKeyE
5 i2 W0 d; ~* x& W5 |Dim LngKeyD
7 h) W9 X/ y1 PDim LngKeyN % q: g0 K( |- T% @
Dim StrMessage
/ B/ N8 i0 J2 b2 B5 |8 yDim ObjRSA
; m, V5 p* a$ fLngKeyE = "32823"
6 p' Z: w6 X4 ]+ @0 x* X/ dLngKeyD = "20643" ) k7 U/ q* v$ ~- O
LngKeyN = "29893"
+ z0 v: y! L3 I1 q" ^5 h- p% g2 SStrMessage = Message
+ @; \0 {& T. y/ N: t& ?! @( V1 I& o8 Z( uSet ObjRSA = New clsRSA 6 H, |6 h! S+ B, {. ~
ObjRSA.PublicKey = LngKeyE
  M4 r  T0 u- EObjRSA.Modulus = LngKeyN
4 F% D4 q9 q4 d8 e3 l6 ZEncryptstr = ObjRSA.Encode(StrMessage)
- p8 \4 m3 ?+ a" gSet ObjRSA = Nothing
5 i8 v. m8 N, R+ `$ [end function
- |4 G0 h" D+ oFunction Decryptstr(Message)
/ w% X+ W: S- T- k/ ~# ZDim LngKeyE
& R; D9 i% X5 x8 `Dim LngKeyD 8 z- A3 g$ \4 H+ p7 M" c3 Q# n
Dim LngKeyN
% W9 |! s3 G. e9 HDim StrMessage 3 z: a) \. J# {# q1 n6 t
Dim ObjRSA
0 m* \, K) A. vLngKeyE = "32823" / f% _$ m, P0 w- H9 y; p
LngKeyD = "20643"
& T: S' @' R, MLngKeyN = "29893" 0 C+ I; i3 k6 J( A4 {4 j% T
StrMessage = Message " L( L# W5 v8 A* q3 ^
Set ObjRSA = New clsRSA
$ {9 Y8 i- {+ D- |ObjRSA.PrivateKey =LngKeyD * i9 H0 \0 S3 ?0 M
ObjRSA.Modulus=LngKeyN
! d* o$ W) M; ]decryptstr=ObjRSA.Decode(StrMessage)
& H; @, U8 @' O5 uSet ObjRSA = Nothing
) g; w' u% V1 yend function : ~$ t7 U- N8 a& K  C4 }* H
%>
/ `3 w7 |8 w. s- c: q===============================================5 `- a7 v+ Y) e6 N: U

* F0 x! R- E3 Y, W8 b. y还有一个用于测试这段代码的test.asp/ d# |/ x8 M. n3 Q* ]
有兴趣的自己搭建个IIS测试下
! P7 S6 y' g/ |7 n<!--#INCLUDE FILE="RSA.asp"--> ; B/ t6 ?- g: p1 r1 R) B  I$ A8 ?7 G
<%
; Q& O  b# M% K; f( v8 Cfunction Encryptstr(Message)
/ o2 c0 k+ J0 |Dim LngKeyE 7 Y& z; U) A4 S- d
Dim LngKeyD   d- \, h/ B$ G3 P
Dim LngKeyN
5 I  b5 k$ ^  D3 D' [& gDim StrMessage 1 [1 ?6 |) e/ @  W) I8 M; Z# a
Dim ObjRSA
2 y9 L4 ~* j+ w  N" ^  G# ?LngKeyE = "32823" 7 V  x% {' t" W/ z1 y8 |) N/ n
LngKeyD = "20643"
: U0 p+ k: K0 w0 I  qLngKeyN = "29893" 2 b7 G% R0 s4 }& H9 W" K3 g. J3 z
StrMessage = Message
* B# R4 e% O& U: [# |' mSet ObjRSA = New clsRSA . w1 L$ ]& K1 P8 o( t' Z
ObjRSA.PublicKey = LngKeyE ; C( I" ]* G) j( V4 T. s. E
ObjRSA.Modulus = LngKeyN   P/ |) G9 U' ], O, q6 N
Encryptstr = ObjRSA.Encode(StrMessage) : w8 L' R5 S2 ~1 j
Set ObjRSA = Nothing $ q4 L& a( U1 [. z# m3 C
end function
- c9 p+ O4 u( Afunction decryptstr(Message)
' c8 O! \+ L( N- l0 R9 RDim LngKeyE
! ?: R+ e! W3 K! m5 I  W. b, b  oDim LngKeyD
; ]1 r9 E$ `0 S( C9 m/ ?# Y, iDim LngKeyN 9 Q; h# ~  a, d, D9 F
Dim StrMessage 6 m0 n+ j- e1 C* w# ]  H7 q/ B
Dim ObjRSA
" M* X$ n! v" _, \7 F# cLngKeyE = "32823"
# K- |' F0 c0 n8 |/ A, KLngKeyD = "20643" % \! U7 m# j' e
LngKeyN = "29893" 2 @! A# [* p* j( M$ I
StrMessage = Message
! d9 r" E  m' I7 b# HSet ObjRSA = New clsRSA
. D2 a0 \$ v% Y2 sObjRSA.PrivateKey =LngKeyD
0 f* k; v- v, o+ AObjRSA.Modulus=LngKeyN   T2 T& f) c/ q! _9 A! k, Q" G: L
decryptstr=ObjRSA.Decode(StrMessage)
* w1 C  t8 k/ M" }1 p5 tSet ObjRSA = Nothing # k$ E* d+ {. e1 |
end function - O7 z" A6 n, d
dim last,first
# z9 g# Y, M9 q. _' dfirst="!@#$%^&*()" 9 Z* _; W" t7 Y) {/ {/ J. f
Response.Write "加密前为:"&first
: u( k) ~5 G8 k" Alast=Encryptstr(first)
' t4 j, A$ Z1 Z8 c2 L* T" AResponse.Write "加密后为"&last
5 G( c) D6 h9 N! o6 k3 N! C$ iResponse.Write "解密后为" &decryptstr(last) 0 e+ ?  P% {- F4 W. n, W2 g- a* q* T; t
%> ==============================================
, ?8 S; i# k; {4 J1 z4 Q剩下的就是字符的对照表了
  h4 l8 K1 r' ?/ @4 Q: U8 m+ h===================字符集================
; L) Q( _1 E. p6 D, f' C8 Y1_____6EBB/ [- K% n# v  [: y
2_____5C1F  ~) o$ V$ V! a" v
3_____4D75
" K3 x, a5 C: t8 T: [, T5 ]! h4_____26CC/ o- d- m, B% G) S
5_____4F88: S$ h" w; q2 Z+ @3 B
6_____3F4E% ~  B$ V6 j& |1 G- U
7_____0A9D
: I9 ^* v& [$ Z8_____1A1C) L1 E4 v3 Z+ z+ P; Z/ j
9_____6D20& i8 V$ d* D# e4 X5 \
0_____1089
1 W) d9 P7 E% @6 G1 `2 Ya_____0F3E& `. x& x3 k6 S: z
b_____3159" N6 l1 z4 x7 ~! x& h) n
c_____3517
- X" V+ k2 }7 R. C6 h  wd_____419C+ g, S  g, J7 ~9 D6 g( m2 f
e_____615C: \  V) V0 g/ [; t# w
f_____556F
2 [. u5 o3 c! G* L: |/ O. Fg_____2B7F
3 M. C/ e( a1 _, ]( Uh_____0F9C8 P7 F) q2 e& u- L4 M2 P
i_____00FA) p# Z$ `+ Q& s+ D7 y! z: [
j_____5A50
( e+ ^3 N/ @8 o: P4 ~+ w, Wk_____2850) a2 t; w# q7 B' _* s% _# b
l_____3E7B
. s9 s$ n: I5 Z, E. X" v) {m_____71C5
- |5 O+ g% P) l5 wn_____1FC8
' c5 s3 a, z+ a/ ho_____74C1# \6 i! b! @! f( b- J6 O, J
p_____5FB8
. }6 N! ], Y3 ^1 Lq_____6085
/ u' y- n3 t& cr_____3AC4
( q+ H7 h; y2 H' v( I" ^s_____2F50
" p. h' F+ T: U5 ^1 Ht_____36F8
1 X- {9 s5 h$ \3 f3 ru_____7010) Z' L9 G$ X; g2 b) m# j8 ~
v_____0B42
9 \) N# e' x* _( `0 s' E0 H( Zw_____1C7A+ ?' Q) A- U& |* i8 j$ A& C: {& ]' _
x_____16F8
  y7 ~- H2 \1 a8 o+ I" ?( ]5 Cy_____2EE7
9 u, J3 e) P6 s, Ez_____5CF3
+ B3 N. {0 Y$ Q. S7 W( w!_____6233! w1 r6 a# j4 f! ^0 f- @+ z
@_____3A45
1 j7 m: V1 l- `8 A. k6 {/ M) K#_____2291
  [* O2 D! H, U$_____5D5C
; a* o8 ^2 t  q) Z9 Z5 @$ S% ~' L! x%_____09B96 ]6 l, t& U% o( X
^_____43EA
; D) }$ u: b$ {4 {&_____62B94 d6 K8 m7 u5 y# v" X
*_____63010 N# f8 e7 B8 |2 N- L
(_____4659
% [% D9 z1 D+ r* r& q8 t)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表