返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm) B: i9 s) ^) L2 E# f
原始出处:http://www.3ast.com.cm
5 E' A' Z/ E4 T- {* F1 J, H) j8 }$ O8 }. i/ X# A. \$ y) q
看不懂的直接绕过
( {/ L8 w$ r; m. h加密前为:hwy123456
6 _/ a0 J+ |* M2 Z9 M加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, {7 {. k' ]1 ?! L6 K. O1 S# E( i$ c1 k, s. j1 w
============================================% ^2 E$ g/ l  t- k* S
上面是当时自己校内的心情。现在已经解破出来了,分享给大家0 \5 t' m; w3 L" R- C
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
- {/ Q' A# Z! z1 h: O+ R- y- n以下是RSA算法文件9 a9 i3 ]  O" m, }' w

+ J8 C0 X; {0 E+ [! D1 {文件名RSA.ASP) n, Y5 s$ p0 a
===============================================& }3 @1 O# R7 a2 k
<% " q, ^# z" P7 M* f. W
Class clsRSA
6 s' e' C2 K3 U) Y3 \Public PrivateKey & b; _9 t- |$ U2 \5 O6 q. f7 O* f
Public PublicKey   g, L) j5 z% Q
Public Modulus
% z7 _& }  _& q" v8 T7 _/ fPublic Function Crypt(pLngMessage, pLngKey) / ^( r5 Y$ n, {! j
On Error Resume Next + P, S( X. u" ]( i5 W$ T
Dim lLngMod
5 t. a9 I0 ^) P# j4 n" W; UDim lLngResult
# A& w/ z5 [8 bDim lLngIndex ( O" N& u% C# i7 P% g( W$ U7 d
If pLngKey Mod 2 = 0 Then
0 T2 f" I  R# ?# {* m. x( }2 A& HlLngResult = 1 " a8 |1 G# \5 r4 Z
For lLngIndex = 1 To pLngKey / 2 - N- Q. O4 u/ p; y+ T8 Q
lLngMod = (pLngMessage ^ 2) Mod Modulus
! m# K$ ^2 n& G2 q4 i$ j5 M4 O" z" _' Mod may error on key generation
6 c6 ^- N: l2 LlLngResult = (lLngMod * lLngResult) Mod Modulus
" o1 K3 d( x% X2 o+ P4 z4 K! EIf Err Then Exit Function
9 i" Y0 k( {. }5 bNext
( Z4 K+ _' z) AElse
3 |% ?7 p! b4 r1 c0 C) LlLngResult = pLngMessage 9 u7 u% ^4 B5 N! U+ n1 H6 W
For lLngIndex = 1 To pLngKey / 2 ( t: |8 ~9 `! L: J9 c: l
lLngMod = (pLngMessage ^ 2) Mod Modulus
. s+ ^7 |' J3 i5 w: [( mOn Error Resume Next + L: z/ z5 u7 w, {$ N
' Mod may error on key generation 3 p4 A; Q7 Y7 v! O* [
lLngResult = (lLngMod * lLngResult) Mod Modulus ' i* I; |  Z: t/ C. }$ A
If Err Then Exit Function
1 S, h! |9 b3 ~Next
2 ]. I( [2 v2 F6 ~: r8 IEnd If
; E. H* F1 y( w0 l8 q3 @* Z! _3 fCrypt = lLngResult
: B) M" l' |) ]End Function' p% C9 D! ^. U+ o

' ?' x0 \% s1 V8 u( T$ {Public Function Encode(ByVal pStrMessage)
9 F* m1 m# h) U# l+ xDim lLngIndex
+ {6 N3 y. l5 q/ O0 v; gDim lLngMaxIndex
2 y- ^6 S* ]# k% h" IDim lBytAscii 4 @. Q2 e7 o, i% l% A6 a& p( x
Dim lLngEncrypted * t5 n6 o, I: N% }: q0 B" W
lLngMaxIndex = Len(pStrMessage)
" L- L) V) l9 T, N* E5 @6 IIf lLngMaxIndex = 0 Then Exit Function
5 {5 R0 w/ s2 B" q' i( zFor lLngIndex = 1 To lLngMaxIndex
% F0 z6 j  K% q# k& PlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) _9 f. L) M1 R2 Y% N8 clLngEncrypted = Crypt(lBytAscii, PublicKey) & M3 P' k5 {- ~7 ^! H8 r/ v" I% d
Encode = Encode & NumberToHex(lLngEncrypted, 4)
5 J/ [$ r1 m3 ^4 aNext 9 Y  I& A# a% z: ~
End Function
- h' T! _3 O5 s( j9 G) bPublic Function Decode(ByVal pStrMessage) 3 c5 i% O: W9 Q
Dim lBytAscii 6 z0 S+ f4 ^- L2 s( x6 x9 t- t  W% M
Dim lLngIndex
: b5 |0 i$ ], h  g- e2 D$ _) ODim lLngMaxIndex ; H; c- D" D: k* g. V' ^$ |
Dim lLngEncryptedData
2 Y( _7 O+ K& O) H3 z/ J+ n& ~Decode = "" . b5 h  `, \7 e$ u+ W
lLngMaxIndex = Len(pStrMessage)
8 T6 j/ F& Z3 w" t; x' {For lLngIndex = 1 To lLngMaxIndex Step 4 6 P; i/ d8 M7 ~
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 7 S4 y; \" N% s+ @- o
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 9 s  G) d  V% f0 p! g' Q) ?6 \
Decode = Decode & Chr(lBytAscii) " i+ q' }6 ^. O! `; i. w: x: f# q& Z5 t
Next ) m3 r8 V4 p( k, b
End Function
8 b. {& x. A8 @0 k* PPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
' U; h( ^6 h  h1 V( yNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 |) V2 I  T/ y& L# O4 n
End Function
& k2 M' a/ d* _0 G: L( }Private Function HexToNumber(ByRef pStrHex)
1 R; `! _1 F2 S$ oHexToNumber = CLng("&h" & pStrHex)
# D& z+ V! A0 g. vEnd Function : Y  |! }* O5 b" y, h$ S
End Class - P" ]8 L$ i# A/ r4 {0 |& S$ t
function Encryptstr(Message)
) k) o2 C, W- Z. o, LDim LngKeyE
' y  Q# S- c' _2 Q# F' {Dim LngKeyD
( }3 M! x0 H6 q- A' y9 dDim LngKeyN 3 Z% a9 Z- N9 W2 Z  V3 D  [
Dim StrMessage
, s' K- h1 N; W/ M% R$ @$ RDim ObjRSA . a1 ~( T2 m, C1 \2 O: |8 \1 \
LngKeyE = "32823" . z& f  C+ w2 o* y
LngKeyD = "20643"
2 U; V" j% b/ b% ZLngKeyN = "29893" ( F8 @0 ?; U0 U. T) Z0 M0 U- v5 i
StrMessage = Message
$ K4 C! a! r, g$ t7 o; ZSet ObjRSA = New clsRSA 4 U  U' V4 A2 [. k; h5 V
ObjRSA.PublicKey = LngKeyE   U. S  ]% Z5 c9 w# d. h
ObjRSA.Modulus = LngKeyN , Q6 T* M2 ?; q' R
Encryptstr = ObjRSA.Encode(StrMessage) . C4 n6 i0 ]( {7 y
Set ObjRSA = Nothing - M+ k7 i* r0 r4 U+ c8 ], o
end function
; b( y' U0 Q9 v7 {5 ^Function Decryptstr(Message)
! T& E2 M) O' M. U! DDim LngKeyE + h8 {% h$ r+ o% L
Dim LngKeyD 9 x+ g* U2 X+ ?' M# w" z
Dim LngKeyN % o) Y6 z! v# p: }4 I2 `* }
Dim StrMessage + W* e8 A! a+ K! v- |
Dim ObjRSA " h! Q3 r, Y" K" |1 D- j
LngKeyE = "32823" ! M1 D5 C- \- r; B) q5 G
LngKeyD = "20643" ! G0 f9 E! D8 V2 \
LngKeyN = "29893"
5 D/ e& i' d- i# ^# ?StrMessage = Message 5 u) o8 `4 ?# I# l! m- ~% x" D
Set ObjRSA = New clsRSA 9 m6 M6 M% \1 A+ \5 @/ p! K! b( a
ObjRSA.PrivateKey =LngKeyD 4 ]5 m" G$ k" @3 F
ObjRSA.Modulus=LngKeyN : |0 m, p- O8 y3 E$ s
decryptstr=ObjRSA.Decode(StrMessage) . K7 L4 e& @. {+ Y+ q' x
Set ObjRSA = Nothing : U( U2 \- _- H9 H  x
end function
$ r. t+ n0 Q" T, t! q%>
2 Z$ D& w6 g7 X" _* b' I9 E2 t===============================================
, f/ I) I' Q, L2 w7 j7 g% {9 q5 P0 c6 f5 |1 o+ p
还有一个用于测试这段代码的test.asp  Q. ~" p9 _$ {6 r4 `2 n' m
有兴趣的自己搭建个IIS测试下0 W; t, \! u; \! z4 ]$ B
<!--#INCLUDE FILE="RSA.asp"-->
0 V8 T& G  h" E% ?" v% t& b<%
: c$ V7 B( J2 m: Jfunction Encryptstr(Message)
1 P7 \, q# ^1 gDim LngKeyE
+ U% Y+ k5 F4 L( EDim LngKeyD " `% b; S, N! w+ I- N1 l
Dim LngKeyN
# f/ n, g" _7 F- {/ ^# a8 s$ U" {2 `Dim StrMessage 6 g4 a8 q% [8 A9 b, \' S8 r
Dim ObjRSA / e; q3 m! G4 ]: S8 Y
LngKeyE = "32823" / O+ f' a3 ]) p* h, Y/ A/ u
LngKeyD = "20643" 1 H! X# U8 C6 j' B0 B" c' j4 o
LngKeyN = "29893" ( w2 P: a+ H6 C6 @" Z1 |
StrMessage = Message 5 x: T* d( a" L+ ~( B  }
Set ObjRSA = New clsRSA " B2 i! ]: V3 W
ObjRSA.PublicKey = LngKeyE 9 j) z9 e! s3 I! Q" ?) y* Y
ObjRSA.Modulus = LngKeyN
9 H3 E& J) U( P: Y' K5 K- SEncryptstr = ObjRSA.Encode(StrMessage) % {7 A! |2 q- i9 N
Set ObjRSA = Nothing
: ^! k8 Y# y8 I9 M6 r9 j. @- Gend function
/ b/ @/ A1 W* g" h" R6 jfunction decryptstr(Message) 9 n0 S/ L6 X) h$ {% i  U. D% i
Dim LngKeyE : E* w7 s3 i5 T4 M) k4 }
Dim LngKeyD / t9 \1 ]# f) o8 x2 v& h/ u
Dim LngKeyN % G( F; ]" `, P) e3 h
Dim StrMessage
. l. n! H( o9 w* j5 E' YDim ObjRSA 1 P, {7 E; f; ]" a$ k7 U* L7 @/ z- f' e. C
LngKeyE = "32823"
0 d( J. o4 N$ L, F6 Q! q+ nLngKeyD = "20643"
1 r! x! L6 M# H" \- WLngKeyN = "29893"
# c- L% f/ e8 f0 d5 gStrMessage = Message ) a: l5 f9 K/ @: l' R
Set ObjRSA = New clsRSA 4 [: ]8 y* O9 B( x
ObjRSA.PrivateKey =LngKeyD
  K; D! Q7 b+ ZObjRSA.Modulus=LngKeyN
3 [) Y# p, B+ E' L% odecryptstr=ObjRSA.Decode(StrMessage) 4 E. {5 g( T! Q7 m/ v- q1 P
Set ObjRSA = Nothing
: d( P  g7 }9 y- m# Dend function
& ~' _% y" w. y7 |; V/ Edim last,first 6 Z* o. `- k* e- V7 F( `$ J4 B7 n
first="!@#$%^&*()"
% ~) W+ Q' A1 q" D- ]' SResponse.Write "加密前为:"&first & j. `3 z5 h+ A  K8 @: E
last=Encryptstr(first) * {9 R" c8 G- z9 @  j1 t
Response.Write "加密后为"&last
1 f) `( q+ H5 ~% c3 x1 g$ ^3 eResponse.Write "解密后为" &decryptstr(last)
7 m6 ]% N: l/ U* q( n3 p7 d5 ?; Q) u%> ==============================================: ~/ X7 f( A" @. A5 ~
剩下的就是字符的对照表了: ~! @) j) O4 u. F1 X
===================字符集================$ T; H6 a! L" ]( ^
1_____6EBB
- w# V9 O8 W7 n7 U8 \/ @/ V2_____5C1F
& }6 B; t$ \. i) j3_____4D75- h6 o& c8 x; t- e6 k' ^
4_____26CC
( B& ?: j5 a0 r7 s5 I7 i6 |8 N7 E5_____4F885 w$ L. c$ L# K7 ]. t, k: N
6_____3F4E
7 r6 j5 N. r: X7_____0A9D3 T! v2 o. J5 a6 W, V
8_____1A1C6 W& Z  K2 @# I& R3 S2 H: ^
9_____6D20
5 m- ]  T  S" |! e0_____10890 i+ h; v, S  T$ d
a_____0F3E
: k  Z3 u# e8 l/ }2 w, Fb_____3159: {$ s+ `; O# H1 W# I+ B2 N" _. p
c_____3517$ k( v9 V+ I$ @
d_____419C
9 j* B8 H! t- j% P. a9 Z% L- T" E* J+ xe_____615C
7 c1 V* j" }6 yf_____556F, w1 e! `/ P" _& _. F# `
g_____2B7F
( I/ X: f; A( k+ g7 f2 M$ w& e3 Z0 Ih_____0F9C7 {) ?3 x7 d- b) O+ k+ H  m5 B7 T# x
i_____00FA
8 n) H* t* G2 H* Hj_____5A50
  w4 l6 n8 p  e: V' o5 sk_____28500 O. d+ S! B6 ]/ d
l_____3E7B
$ f' t" q8 @1 {$ R0 e7 F+ am_____71C58 }' [( q- @; W1 w
n_____1FC85 l# {' l3 s" j$ k% R% ^8 a5 e
o_____74C19 o% I: W0 j& ]% e. f
p_____5FB8. E, `# ]2 M) ~1 Z' \8 G0 e
q_____6085
4 F' ?; K" ]# s% L2 @: Xr_____3AC4
4 o" ^2 M8 ^4 J) n: I- R0 K3 hs_____2F50- x  _9 a9 b3 _' T
t_____36F88 E. Y& g9 b& f: a
u_____70100 o* W5 H0 ^% @& a3 ]- S
v_____0B42
1 X7 R* B- J! E$ D8 Lw_____1C7A3 k7 I5 K8 Z$ y0 u( }+ R
x_____16F8
$ ?: O2 D6 u: I% ~4 ~y_____2EE74 l9 H; @' _" M: |* {+ c
z_____5CF3
6 D6 |2 s2 @1 J& N/ t' C!_____6233
+ H8 w7 @/ b: |@_____3A45  P) S/ ~/ Z2 [1 S# e/ \0 T
#_____2291: ]- g* y8 d2 a# A/ W! J) o
$_____5D5C" ]+ c0 ]  X9 C7 z& d  q' l
%_____09B9' O3 o2 d  E: r, v
^_____43EA( O/ ]# [4 P; B4 T) v1 W, B
&_____62B9% j$ w% B6 L3 ~0 g9 \9 L! e" I! _
*_____6301
. j# R5 o& D' A- V(_____46590 x! Y( L! \7 P9 q0 N! m3 v0 K
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表