返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
8 E# J6 u/ n& `/ \原始出处:http://www.3ast.com.cm. r' {- i* m# }

9 }& v! d4 S* l8 s, C* J& i看不懂的直接绕过
; Z/ L; Z" F! z, f加密前为:hwy123456( t6 y9 Y- L2 M2 o; v
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E; S( T6 t4 [$ ^7 s1 i' Y# x! z
( P  }8 P. H0 F, f8 L! C
============================================1 d; J1 _5 O" T6 [
上面是当时自己校内的心情。现在已经解破出来了,分享给大家0 A% e: H+ b  w2 w: D! ?* [
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
) t% f: |# v* \0 ]" b1 C以下是RSA算法文件" X/ Z0 U0 h# L5 C

  p! `% h5 X/ X, a文件名RSA.ASP+ k$ e4 x# f6 u/ o. I
===============================================
7 A6 `7 B  s; }% s9 e8 |<%
" F+ o$ K- s6 x( {8 @# nClass clsRSA , b4 a! f+ @8 }3 u( {0 o! L  f
Public PrivateKey
6 i- F- l3 g) ?2 F3 b8 VPublic PublicKey   l7 B4 k* ?4 |# }& d/ d
Public Modulus
" Q  \- C& d1 o, i+ `& EPublic Function Crypt(pLngMessage, pLngKey) ) i# l& m: E; M8 S, T% Q
On Error Resume Next ; |# ^9 P& g4 B' H5 c+ ~
Dim lLngMod " r7 s7 |5 |! v/ G$ z" R
Dim lLngResult
7 I. u" H+ [# YDim lLngIndex $ Y! k! m; U2 y0 L5 I. {! M
If pLngKey Mod 2 = 0 Then
- V# s: {2 E( B' O% ?, _3 t# JlLngResult = 1 1 v1 i6 m! x  }1 m
For lLngIndex = 1 To pLngKey / 2 ! A) b* P8 _& T, Y& k' `
lLngMod = (pLngMessage ^ 2) Mod Modulus
7 [" J" C; Y7 n$ e5 d' Mod may error on key generation 0 {. h( V  |! u& s( O; [
lLngResult = (lLngMod * lLngResult) Mod Modulus
, ?. @6 G+ Z7 yIf Err Then Exit Function
6 ~0 c% x0 m& qNext 9 K9 O3 x* v5 u" s
Else ' a) j7 j4 z9 x) A2 |0 d9 k
lLngResult = pLngMessage " z0 d7 n) x3 r# ~* h. |, M
For lLngIndex = 1 To pLngKey / 2 1 l2 V2 X' T+ X! k
lLngMod = (pLngMessage ^ 2) Mod Modulus
; u3 |7 F* M, O" u3 \On Error Resume Next   d$ g' t0 t2 A* b3 [
' Mod may error on key generation
# n3 F6 e/ G' X7 _3 l' N2 h5 FlLngResult = (lLngMod * lLngResult) Mod Modulus
. {% ]& N2 B' d5 ^9 d" AIf Err Then Exit Function 6 f; Z/ v  L5 i$ E% K* r
Next
6 U1 O8 C# F8 s+ h6 u1 P7 FEnd If 9 a8 y+ q7 }! o" S9 i+ k
Crypt = lLngResult 4 |8 H- f4 s5 x2 I3 R3 b" z
End Function, O* \) |$ q% [2 z

  N5 Q& J7 o2 w" Z4 a& B) C* [7 `) LPublic Function Encode(ByVal pStrMessage)
, N8 y5 Y  c: ]. X7 eDim lLngIndex
. l& R% z/ W# S( BDim lLngMaxIndex
4 h: s6 n9 _0 `Dim lBytAscii / ~8 a. Z3 ^  S, X" T
Dim lLngEncrypted 1 W' g5 R2 ?5 |; q
lLngMaxIndex = Len(pStrMessage)
4 h) L5 K: d" _( ?* e/ YIf lLngMaxIndex = 0 Then Exit Function 2 h. F) n, e/ D3 S
For lLngIndex = 1 To lLngMaxIndex - D8 N1 d1 a: q' _: ?7 D
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
5 V/ E6 t6 r) H5 K6 D* g& w& GlLngEncrypted = Crypt(lBytAscii, PublicKey)
3 z. _/ m6 _  n2 t5 T! bEncode = Encode & NumberToHex(lLngEncrypted, 4) 0 _2 \4 o  l6 D7 G
Next
, d+ L; x. E8 m0 f- VEnd Function 1 V1 W6 R) K8 ]! ]
Public Function Decode(ByVal pStrMessage)
& r% z0 [$ a3 Q2 g" H6 D( xDim lBytAscii
; P! K' w/ E$ r: C$ `% L5 BDim lLngIndex
5 Z/ b' K4 J; F0 r  k5 hDim lLngMaxIndex
/ W* j) N9 u3 g) ^% o' gDim lLngEncryptedData 4 D' X2 W% v( E
Decode = "" , ^+ o; o; |9 ^7 J, [
lLngMaxIndex = Len(pStrMessage)
; b  i/ }: w. z/ U* y4 ~1 DFor lLngIndex = 1 To lLngMaxIndex Step 4
4 z) I0 R- o& ^lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
7 {$ t2 X( o2 o4 clBytAscii = Crypt(lLngEncryptedData, PrivateKey) 0 @. H% N- X9 k: _
Decode = Decode & Chr(lBytAscii)
6 ?8 t1 e" D+ s: F+ j: hNext
* a/ X8 X/ i" x' cEnd Function
; @$ z- \! W" ?$ |# dPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ) ]' L, d: ~2 h
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   W* X+ N" Y7 S' G7 W" Z0 m
End Function
6 e; E2 b, j8 D- aPrivate Function HexToNumber(ByRef pStrHex) ! L# v  o# I, `& l' ~* m  x8 A9 B; K
HexToNumber = CLng("&h" & pStrHex)
/ ^7 l0 \( w6 |) A1 N6 B& uEnd Function
# g/ i5 l; G+ m4 v, [# i9 \End Class
4 t1 h. k2 Z) I/ u, W5 e% E+ j" vfunction Encryptstr(Message) ) D0 [  A! A4 f7 T8 p$ f
Dim LngKeyE
8 p7 l3 t4 i& KDim LngKeyD
- q  `1 e; i/ O, p: z8 z2 _Dim LngKeyN
/ Q1 U% L6 }, \( n% l% E' w  NDim StrMessage
8 \; d3 C+ [6 i, ADim ObjRSA
- r( [" b$ d% e& cLngKeyE = "32823" ; W! \# y  R! A& m4 \2 \; h2 T: q
LngKeyD = "20643"
- L& @5 D2 @, m% f: D3 v: S* KLngKeyN = "29893"
& L. D3 y9 ]! G) W- ?1 kStrMessage = Message , w) _9 K" N' ?& h
Set ObjRSA = New clsRSA 4 c/ J4 e$ p9 W6 R# U" I
ObjRSA.PublicKey = LngKeyE
& y% y$ l7 X$ U% v. W/ TObjRSA.Modulus = LngKeyN 2 i" S( F& ?; r$ T# [
Encryptstr = ObjRSA.Encode(StrMessage) * Z& d0 ?' {1 ^
Set ObjRSA = Nothing
; _. H6 u! D5 Qend function2 @5 v: @) M) d
Function Decryptstr(Message)
3 K' R; s1 j2 g; n8 {Dim LngKeyE
) E. p) A' a* R6 GDim LngKeyD + d. Y) p3 Y4 V: _& j/ o
Dim LngKeyN
% P5 f8 _# ~" {' lDim StrMessage 4 m. x% c) a6 X4 w, Y
Dim ObjRSA ; p, I( p" V, w4 T8 W2 e
LngKeyE = "32823" 5 K- ?- X9 B& ]
LngKeyD = "20643"
# d  r3 I! K3 G6 W1 I) v% qLngKeyN = "29893"
0 \* [0 E9 w/ mStrMessage = Message
4 @/ D9 H" ?3 h! @0 p9 c/ J; O6 A/ _Set ObjRSA = New clsRSA
* D1 i# R# w2 Q( r' ^" iObjRSA.PrivateKey =LngKeyD ! ?* Z- }% H& X: b
ObjRSA.Modulus=LngKeyN
4 P5 j* T0 a- b. f7 B) Ddecryptstr=ObjRSA.Decode(StrMessage)
( J& H( W& Q( ~* [* kSet ObjRSA = Nothing
  X: d: n  @4 s; s( [end function
9 c$ ^" S7 J+ V  L% W%>
8 g7 b2 N1 x; q/ f5 z===============================================8 ]. t. W9 p9 U

! n6 M# R* V( e  N8 n/ ?$ R7 V9 k1 Y还有一个用于测试这段代码的test.asp: L" S! j8 G! e$ y2 b
有兴趣的自己搭建个IIS测试下4 s( j: E2 R: b4 r/ X5 l/ M% y
<!--#INCLUDE FILE="RSA.asp"--> 0 U, y& z; b( Y1 |7 a
<%! Z9 ~/ O5 L5 _
function Encryptstr(Message) 4 O' E! V+ M, n) M7 ]
Dim LngKeyE
! P, {% `* Y+ {7 m. xDim LngKeyD
( Y) }4 k$ C! ]. d, oDim LngKeyN
& R8 V5 Y. N% `, _* H5 `Dim StrMessage / c" ^6 K6 J1 \6 q- Q* G
Dim ObjRSA
2 o1 {+ Q! ^0 _3 N; VLngKeyE = "32823"
9 Y5 Y# V# |8 g# q7 H: f5 A+ fLngKeyD = "20643" . P9 H& Z( M7 e9 o
LngKeyN = "29893"   F- F/ d( e; p: C5 K" H
StrMessage = Message
' }" }: a) J: U+ _! LSet ObjRSA = New clsRSA
5 _" ?$ Q8 \( v; ]- ]9 _ObjRSA.PublicKey = LngKeyE * p5 n3 l" |. C* D9 B
ObjRSA.Modulus = LngKeyN
$ p/ C% [/ N9 n! W0 cEncryptstr = ObjRSA.Encode(StrMessage) ! p) M$ n1 P6 m) V
Set ObjRSA = Nothing , g4 W7 x/ Q" b  Z. ~* u7 o4 y
end function
- [3 N* B) ~% \  r/ N) o. e- z0 Sfunction decryptstr(Message)
0 z' r2 h9 C8 w8 ZDim LngKeyE   U$ @% O$ j2 x- K
Dim LngKeyD
6 g3 W8 ]2 j* [" R! PDim LngKeyN
! l2 K! J! a; ]: vDim StrMessage 4 \6 {6 w, P1 H0 W4 s5 E
Dim ObjRSA * v8 g3 F( v- T% p- L" }9 A* K
LngKeyE = "32823" 4 b, c" W0 @  {  C
LngKeyD = "20643"
" [6 a2 t( z6 N& ]LngKeyN = "29893"
3 ^5 N$ E# L5 n! `: HStrMessage = Message
! O9 i. V+ `. t7 p1 H2 o! i# y) \Set ObjRSA = New clsRSA
: a# T- ]: V* d0 g9 g* n& U; i( rObjRSA.PrivateKey =LngKeyD " N% W. ?! ?# F0 s( q
ObjRSA.Modulus=LngKeyN ; w) U% z% V5 Q1 e0 P! J
decryptstr=ObjRSA.Decode(StrMessage) 9 m5 @& ^; S. b6 x$ E8 t
Set ObjRSA = Nothing
9 U, R- w" A, K2 kend function
6 d/ c- M2 I' I6 I# N% r4 j! Rdim last,first
6 \6 R' B: o- j, sfirst="!@#$%^&*()"
( d2 G* h4 l% R3 o/ d2 ?/ g3 W& TResponse.Write "加密前为:"&first / `! V, p& U  l+ r
last=Encryptstr(first)
/ N+ E0 x, X0 y0 _3 }7 {7 n% IResponse.Write "加密后为"&last
! f+ H8 x! y9 r/ \Response.Write "解密后为" &decryptstr(last) 3 ^& ^2 T' ]5 g* D+ e8 ^2 Y
%> ==============================================% `* v1 ~$ |: D
剩下的就是字符的对照表了, W) G0 Y+ r& L) r4 |+ Z% M& v
===================字符集================
0 D3 i9 [. g" Y- j1_____6EBB, s  X2 E/ {8 |8 F. a
2_____5C1F
: B' K5 m9 ~( z# d3_____4D75  B, a  E$ J( E, I+ i7 a  ]
4_____26CC
6 v- `8 w2 P* M4 [* V5_____4F88
' [9 v- D2 n% H" f! f& j; E6_____3F4E& |3 y& l3 A; ^% }
7_____0A9D
/ C, G4 d) _" A1 {' p) a. F8 S8_____1A1C. q3 v" P; d: n" R, d& `1 |
9_____6D20
# U  z; d/ P  M) y, d& p0_____1089$ ?3 _8 i9 `3 r! B( A2 \! C2 o* Z
a_____0F3E
* q, z, {( P- K$ ?2 a. ?5 D' l3 Zb_____3159
/ Z" r: d: k; U4 m/ u4 y  pc_____3517
9 V: ]( K( S/ A% c+ O& Gd_____419C
' _- n$ Z" l1 qe_____615C
7 i& a9 F; Q, ~+ O4 Yf_____556F
% B% y4 z0 `, w& S$ ?g_____2B7F- ?* N3 R2 k6 X1 g- {  c  G
h_____0F9C
$ c7 @7 q, P/ l$ ]  Ni_____00FA& n- f" R; Q9 v
j_____5A50
  S2 ?" A0 T, {; g. M% C3 }8 _- Vk_____2850( B8 ?% @2 Q4 z4 C% u
l_____3E7B- i- O  w& o' n) w" H' B1 l
m_____71C5
8 f1 q( ]# E# `4 N# E5 qn_____1FC8
- G, X  k9 H* Fo_____74C13 D7 Z8 z. S4 s; z1 _
p_____5FB8
7 ~0 E( c* ], B2 Lq_____6085. ?5 w) X( \: ?, q
r_____3AC4. P" i6 d9 r6 {
s_____2F50
7 {! C3 j" U/ [! Nt_____36F8) S; X/ O* ]6 ?8 w% k8 s
u_____7010
5 }/ g: t: @" G9 |2 ]1 O/ i3 W* n( Qv_____0B423 ]) x& K/ f9 A' x4 W, t- l
w_____1C7A6 W! [4 c+ z8 q( ~
x_____16F8' a. k- b. n  L2 P8 [- [4 Y- d
y_____2EE7
) j% y* S% G- N. v7 }6 R" m+ dz_____5CF3) ?* t/ j) S6 ]
!_____6233
2 H& g$ D) Z* h* e2 Q! g. m; o@_____3A455 w+ t% Z, J" M# A: x+ a
#_____22912 P$ X6 Q7 Z: @% C8 L% k
$_____5D5C, S8 t+ z0 w0 C! g; F+ [; A' g" n
%_____09B9  d. Z& o/ G4 x2 R8 N
^_____43EA2 T* T: L# n" g% G+ I' Y  N
&_____62B9
& Q+ M) k4 m1 v. s; E*_____6301# n1 n: e& u/ f6 B
(_____4659
  [; w+ f5 V+ s  P)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表