返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
2 _+ ~' h! v3 h4 s. p8 f. W原始出处:http://www.3ast.com.cm+ {/ o( Q7 M. `4 s; k
; q: V4 D  d/ C2 C& K
看不懂的直接绕过- u& c; n9 |9 k
加密前为:hwy123456$ P% e7 V+ o. |9 u: W8 \/ Y( v
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  g2 ~4 N6 ~6 `# R& M' F  P0 Z2 k8 a  Z4 w) s3 J, l
============================================% U+ x# ^9 f) }* A2 H- w/ h
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
: g9 ]( e; Y& x1 d也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
; X% N& t' P* G6 D4 B# k* k以下是RSA算法文件" P9 ]3 E& T% v( ?

# l6 {2 m4 _) q) J' |. e3 b8 @, W, ?文件名RSA.ASP7 c; k; D! G+ v+ f, X
===============================================
$ i  ]: c1 \1 j! I$ J<% / W+ j0 s8 \' t7 e
Class clsRSA
" ]6 _$ m/ }) }' V+ Q# m1 zPublic PrivateKey 1 U- Z- t& D7 r# w  |3 A& k, i
Public PublicKey
3 a3 V. \( G" ~2 c' T5 F9 ~Public Modulus * V# O" V( a; O4 u, E4 p* R$ m9 Z
Public Function Crypt(pLngMessage, pLngKey)
/ v# v/ V: R& f& n$ i7 mOn Error Resume Next + Y% B! l; @* v: E' ^
Dim lLngMod + u# a. _3 j! }( b" G: k
Dim lLngResult * E; A8 `/ v* m, V0 P, V$ b; ~
Dim lLngIndex
$ g  ^* F$ ~1 ?If pLngKey Mod 2 = 0 Then
* L% y0 g* g7 {8 KlLngResult = 1 2 f& M; e7 t3 I% T
For lLngIndex = 1 To pLngKey / 2
8 x' l: c2 e4 T" Q, nlLngMod = (pLngMessage ^ 2) Mod Modulus
; Z0 H; Q% P( [2 N) L: D9 b0 T' Mod may error on key generation
# ]5 Y) F7 E! i; F# k) V% YlLngResult = (lLngMod * lLngResult) Mod Modulus
3 G/ j& c" T) q% S" j0 @If Err Then Exit Function
  M0 B5 i4 C/ D0 X7 b. V$ KNext 3 ~+ s' ^. o# n6 j/ H
Else
- c, w; \, ]" UlLngResult = pLngMessage
, q) C- S+ g* U) f% KFor lLngIndex = 1 To pLngKey / 2 ' r9 u: P4 s6 J# Z- E
lLngMod = (pLngMessage ^ 2) Mod Modulus
( T# o3 ]5 q$ l4 ^) q$ H6 v3 D$ \On Error Resume Next
6 O( O6 \) c$ N6 h1 R1 q' Mod may error on key generation
1 Y; U$ z  E: L& B: j& vlLngResult = (lLngMod * lLngResult) Mod Modulus
2 }1 A: ?8 @0 J) kIf Err Then Exit Function
) N9 R- n( _$ t" W+ gNext * Q8 E1 L; g. W" o
End If . q; y, u+ E7 j) ~/ K2 `, w& t
Crypt = lLngResult " B) [+ }$ r$ B8 Z$ s
End Function) G- d5 q: ~% ^" w8 ~
* v) S' B% }5 x% t6 f
Public Function Encode(ByVal pStrMessage) ' u/ V9 g7 n: i+ @" d9 y9 U
Dim lLngIndex ( x7 E1 ^* A& h. \- U/ i
Dim lLngMaxIndex
3 y7 x1 \( c' }4 Y$ C" W2 L  PDim lBytAscii ( {2 b# L6 l" d, u
Dim lLngEncrypted
! T6 p$ S4 V" T0 zlLngMaxIndex = Len(pStrMessage)
; L' P; e: d/ \. oIf lLngMaxIndex = 0 Then Exit Function
6 Q( q2 }( [0 x6 `7 cFor lLngIndex = 1 To lLngMaxIndex
/ Q4 Y: I, m/ `8 g/ XlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 G5 G2 T7 s4 Z: r0 A( h
lLngEncrypted = Crypt(lBytAscii, PublicKey) $ v, `; U& g6 G7 l
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' a4 v' Q$ P; \( C  [Next
: [" J9 K* g4 p( N+ ?  ^  Z8 |End Function 6 c# P6 ~  S4 }" Z2 i
Public Function Decode(ByVal pStrMessage) ( ]$ Q, a. z% n1 M
Dim lBytAscii
- ~+ C" u+ d3 |Dim lLngIndex
; ^4 F9 y2 L- X8 J& {Dim lLngMaxIndex   J/ l- y/ s* u2 T5 x( H2 q
Dim lLngEncryptedData
# J& x& r  E2 M% L4 _Decode = ""   z8 C, o  j5 P( P
lLngMaxIndex = Len(pStrMessage) % n$ z. x# k! @$ j& J
For lLngIndex = 1 To lLngMaxIndex Step 4
/ A% l/ f* B# \& WlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
: @0 @8 b, S- t6 ]7 c+ ^lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 6 _6 ?# p3 t9 l5 B5 f" ?
Decode = Decode & Chr(lBytAscii)   i. d3 R( C6 r2 h2 R1 W9 l
Next 4 P* n8 F& Z! P; W' e" s* c/ q
End Function ( x7 ?0 }  Z+ F) ?+ n: b
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 u. e% i: l' YNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. g6 i6 v- N2 H3 qEnd Function 5 E; [; M. I. ], R$ m5 `
Private Function HexToNumber(ByRef pStrHex) 6 @* n$ x6 c5 \4 |3 e
HexToNumber = CLng("&h" & pStrHex) 0 x& X% Y0 Y' k9 Y
End Function & @. ]# B$ w2 A6 W/ R! q$ B6 W/ e+ O/ v( u
End Class " P5 W# D; j0 |' q# C0 O1 r) |+ \5 O: o$ e
function Encryptstr(Message)
5 K' \0 ]# r$ I3 f8 j" Z& R' ?3 FDim LngKeyE
1 n  e$ |& l* z! V! _# |Dim LngKeyD ( k6 m/ L' _! |( o4 I
Dim LngKeyN ) |) E: v/ S* d- a; R& X3 N
Dim StrMessage ) d; R7 C+ g; p+ J+ G7 E
Dim ObjRSA ; a& @+ l& s  Y) @8 B0 s9 ~/ X0 s
LngKeyE = "32823" , ?, y% I2 M  ~; A5 z
LngKeyD = "20643" ! z( ~: ~# H! e' H5 k# g9 M5 I
LngKeyN = "29893"
+ g6 T8 V5 ]" I% ^StrMessage = Message 6 U* h+ Q2 c) W: v7 v
Set ObjRSA = New clsRSA . g6 j0 {0 O, C, T8 F
ObjRSA.PublicKey = LngKeyE 7 Q4 F' Y$ Q; S/ n+ W5 Y
ObjRSA.Modulus = LngKeyN
: H( C4 H3 i) J  sEncryptstr = ObjRSA.Encode(StrMessage)
( ~- l+ l- o' R. y4 ]2 o9 E4 j7 cSet ObjRSA = Nothing 8 ?+ m5 M& Y; i* Z( {
end function1 o, x# p" F0 C) h* o
Function Decryptstr(Message)
: B2 k: w4 n1 x6 `( D1 ^Dim LngKeyE
7 o  E$ }/ F/ D- E5 e, {$ `Dim LngKeyD
1 u3 O  S' J8 t1 u9 D1 oDim LngKeyN
/ r7 v. R  w/ ]) dDim StrMessage
7 n" h8 e: u8 P; U# s2 `  }Dim ObjRSA
$ w1 C% w' z* O, z% T1 e5 ALngKeyE = "32823"
# C5 a$ F& j+ e" Z5 VLngKeyD = "20643"
; [! \2 B; r- i, ~% b( aLngKeyN = "29893" 2 v; j2 x$ Z! L
StrMessage = Message
6 B. x4 D. n2 b2 xSet ObjRSA = New clsRSA
: \5 u. t1 {- ^; {! \ObjRSA.PrivateKey =LngKeyD
# _  ?" _4 e5 R: U" o! JObjRSA.Modulus=LngKeyN
% R) S, M3 [. G' m; ^/ U5 M) udecryptstr=ObjRSA.Decode(StrMessage) / N0 f+ ]( r8 ^6 ?, T
Set ObjRSA = Nothing % p- a  e5 E! M3 x
end function 3 ]7 `4 a" K3 d/ M
%>6 E$ _- O" [! A
===============================================
; G" w! L* k7 `8 F$ ~" y. V. h# e8 ?9 l$ V8 r4 R
还有一个用于测试这段代码的test.asp
& i$ F) g4 c6 P4 q有兴趣的自己搭建个IIS测试下
* J1 S& |! k/ W( j0 g8 Z<!--#INCLUDE FILE="RSA.asp"--> 3 I8 B" q2 V1 ~( L5 A- L; |
<%; L) w" b2 {) t
function Encryptstr(Message) 6 M/ v" {, J# y6 o  \
Dim LngKeyE
/ F# s7 E) B7 {# GDim LngKeyD
0 j$ O; R( P6 sDim LngKeyN & h) i; [6 W2 S  [8 L1 z
Dim StrMessage
8 _& }5 S6 n$ d8 M, a2 oDim ObjRSA 7 n; h# C- ?$ S- i* b6 Z
LngKeyE = "32823" 0 ~2 m5 M, O7 M% F: Y. u  K+ }
LngKeyD = "20643"
6 t1 v% w8 w( Q& d: L9 Q% oLngKeyN = "29893"
- I9 V/ ]' E# i! B6 v8 \7 a  Z$ LStrMessage = Message
! q9 f1 P: T( fSet ObjRSA = New clsRSA
( U" U7 W) K( z; N  B0 O6 kObjRSA.PublicKey = LngKeyE ) C* W# T( {, \; u
ObjRSA.Modulus = LngKeyN
0 r& n1 Q. Q5 Z/ O- x) _Encryptstr = ObjRSA.Encode(StrMessage) * `) Y: j2 B7 b" W6 v; p  H
Set ObjRSA = Nothing 0 n9 g- D% J; A: w
end function - Q( `% F) o9 q
function decryptstr(Message) : f9 n# ^# z* ^0 z
Dim LngKeyE 9 V3 L3 e& i2 Y
Dim LngKeyD
6 U5 C3 I: W$ I  dDim LngKeyN , `$ w+ e- P8 g7 F6 F; n
Dim StrMessage
6 p2 s" `( ^1 R" c2 pDim ObjRSA
( ~9 p0 |0 |. P$ k( ]4 e) r5 JLngKeyE = "32823" 2 N7 s/ R( ?3 w0 @: }6 @
LngKeyD = "20643"
" L& p. [6 B* d7 [7 zLngKeyN = "29893" 4 t* i" u1 b( [* L! v
StrMessage = Message ; R. S/ X  @! J3 Y; K0 o
Set ObjRSA = New clsRSA . n7 M0 }8 u! w2 f$ r  D2 C" t( K8 e4 r
ObjRSA.PrivateKey =LngKeyD
6 E* g/ k2 X% C" |) _ObjRSA.Modulus=LngKeyN % m$ f' `) W" N6 j  L
decryptstr=ObjRSA.Decode(StrMessage)
: O; a7 Q$ K! ?Set ObjRSA = Nothing 7 F/ p" {0 F, e8 }
end function
* ]' B5 \4 i! E  Pdim last,first " _. s# o$ _  j  L: D/ O+ c
first="!@#$%^&*()" & M0 H& U# n& d0 x: h# q
Response.Write "加密前为:"&first
+ h7 b* o+ }3 i2 flast=Encryptstr(first) 5 N3 c2 R+ n# R0 y9 _% s! x6 H  a
Response.Write "加密后为"&last
: v: U; W! ^$ _. fResponse.Write "解密后为" &decryptstr(last)
! l4 `% L8 H' z, J/ g- |%> ==============================================
0 N: a- s& j9 g, d0 Q* `5 v, c剩下的就是字符的对照表了; b. N5 W" S5 J8 v
===================字符集================. n6 i* k" s, U2 E& y( g" [9 y  {6 |
1_____6EBB
# C1 b& J0 T8 F% V3 W9 ^2_____5C1F
/ O- s9 `0 O$ I1 I4 n3_____4D75
! Z2 b4 H5 ]0 Z$ ^9 Q4_____26CC) O+ u+ K) [5 ~# P
5_____4F88
# m5 i1 ]. |* z" |$ ~# U7 i' N6_____3F4E
( H$ z. E6 ~7 y2 i$ P9 G5 N+ Z. I, K7_____0A9D
1 A! I. e# Y+ G( A8_____1A1C
2 c% ^2 `; F0 Z0 ^1 a9 Q9_____6D20" z; J2 y4 W9 ~8 V# z
0_____1089
5 w3 s5 a- X4 ca_____0F3E  Y- g) N3 K3 p5 j. S5 N% s
b_____3159- u/ X7 O, N4 [
c_____35174 l: f8 [1 h) a: K* K2 N1 Q) S
d_____419C
. Q6 G" L7 c9 p5 C7 ie_____615C
) r+ E% _6 W3 H2 Ff_____556F3 A+ O' X5 w1 F) E' k' Z0 M
g_____2B7F9 S1 r2 O2 ~+ {" }. x: h# t+ v$ y' A
h_____0F9C
( Q/ H- i+ y2 W3 C  T% h: k3 `& oi_____00FA. ^' w, n2 o3 Y
j_____5A50, ^" {% w  z  j- `0 s# P
k_____28506 t3 g% p2 J1 K
l_____3E7B6 \( F' T0 K# a% e) H" k
m_____71C5
6 z: q0 L/ a+ cn_____1FC83 k% q( d0 T! b1 ~4 J
o_____74C1! c2 d, V8 _$ ]  }, [/ b1 k; A- t
p_____5FB86 ~1 Y) e- O6 @0 {8 ^: y, b  A
q_____6085  E2 k3 Q3 a; ?/ L$ r  \# O
r_____3AC4
9 ~( U8 G* a, W. W+ @  }* m+ Rs_____2F50$ c, e- {2 ~3 H& H, k3 b
t_____36F8
9 o8 O' F4 V7 [+ g0 d0 ?u_____70108 a1 k* _$ Q0 \* C. ?
v_____0B42
9 `# C. p4 J, ?) B" tw_____1C7A
% W8 L3 N; X, S7 X' i7 j+ P# gx_____16F89 k8 {+ [6 b3 j6 o
y_____2EE7$ p% z* ^+ k0 o4 Z7 v( ?
z_____5CF3
3 X/ w; Z' U+ W( N9 \3 X0 V9 t0 W!_____62336 ?+ g9 }8 A0 ?" T4 j2 N' \2 r* y+ b2 q
@_____3A45
9 v/ {% Q! }# Y/ j#_____2291/ c  v* @: R1 S2 @( t+ J1 d: ]
$_____5D5C
% n8 u* j8 \" Y, B( M/ t%_____09B9  O' O. V; }7 x
^_____43EA
+ t- `5 ?* y3 x: ~' Q&_____62B9
' r# Y* U; F) Y*_____6301. l# I$ y/ _: J$ r4 n5 D
(_____46594 c, s$ z$ ]# U: l. l4 a/ }! p
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表