返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
+ x( @' {& Z, m) Y  V% ]原始出处:http://www.3ast.com.cm) G3 `# X: @4 @+ `5 g% \
  g8 k& D" b4 J% |, w7 `6 |. H
看不懂的直接绕过/ C5 N! O4 K. A$ e5 h: H! \
加密前为:hwy123456
3 |& R" A! j% o8 {加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E$ j; |  C7 K  @/ s3 \) K

; h3 G5 u: [6 w============================================
* l4 Z& m; |; q3 m3 I: k2 X5 r上面是当时自己校内的心情。现在已经解破出来了,分享给大家
' q- ~; E1 x( R5 L2 @4 q也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
2 u$ C8 t( o5 K: m+ I以下是RSA算法文件% w0 R) V  p) R: U, V
: x# d5 z' o4 h4 v6 d# b! S1 `9 }
文件名RSA.ASP
) _" _4 R- D- t: u8 ?9 T" _5 O===============================================7 u5 K3 L* j$ l/ w( L
<% 6 ^! [) B/ g& Y# |
Class clsRSA
2 S; \4 i* {, @% F- T9 ~" iPublic PrivateKey
& b' o1 F/ Q' d' m* X; R5 L8 ]3 kPublic PublicKey
/ g- s0 O1 v; j* o+ APublic Modulus 5 P5 Z: h) X& F6 `8 K
Public Function Crypt(pLngMessage, pLngKey)
) \1 w: P4 Z/ E) X) K0 GOn Error Resume Next " g) H+ d+ {8 H8 |! P% S
Dim lLngMod # U0 K- u3 |$ Q2 |
Dim lLngResult ; k, u! S, t& t/ r/ ^
Dim lLngIndex - f3 z( r6 t+ \5 v
If pLngKey Mod 2 = 0 Then
* ~1 ?  t7 g* o3 glLngResult = 1
% x8 L5 G! z( F9 f. ?1 DFor lLngIndex = 1 To pLngKey / 2 8 N$ i6 _/ z, w8 j$ E: P; L0 H1 _
lLngMod = (pLngMessage ^ 2) Mod Modulus
% z  W' P  z. r/ U9 [$ O( L' Mod may error on key generation 2 i* M; T2 t" I' e5 E
lLngResult = (lLngMod * lLngResult) Mod Modulus $ x. c) E; f; \* o  o, T
If Err Then Exit Function 7 G0 C7 j" q0 K3 m% ~4 }# y6 u/ j
Next ' _0 e% k& l# S$ q( U) [, X
Else : U5 r" w8 d, A% y& S. y
lLngResult = pLngMessage , ~* n0 C8 f" x& t
For lLngIndex = 1 To pLngKey / 2 * a8 f+ ~( o: I5 q) ~: z! I
lLngMod = (pLngMessage ^ 2) Mod Modulus
$ [4 n8 m1 z0 a3 f6 x! r& YOn Error Resume Next % V' R- Z3 [. u$ J! I5 s8 V# _
' Mod may error on key generation 2 k+ N. I1 `/ O7 N1 {: V
lLngResult = (lLngMod * lLngResult) Mod Modulus
! B6 G2 D0 t7 m4 [If Err Then Exit Function 5 f7 G$ S+ E' s" g  c
Next
3 J; b5 o8 A; o' a( o9 H" U7 k  \End If
9 @0 g: Q8 S. F! p+ O, Q. I3 ZCrypt = lLngResult % i/ _  I0 ?3 u# i* k$ u5 H
End Function$ C- ]2 Y7 S+ _  v, O' j7 s
& G5 g9 w3 m4 N; p8 y1 m
Public Function Encode(ByVal pStrMessage)
  u, a2 a6 b) M7 I' {4 YDim lLngIndex
  N1 N3 M" l$ {. U  h6 V1 ?5 v0 QDim lLngMaxIndex
5 c8 V8 i. Q' l; T8 p9 }Dim lBytAscii
+ T; G$ W* H+ S+ lDim lLngEncrypted
. P' ?9 }# L& m: @lLngMaxIndex = Len(pStrMessage) 3 e8 ?+ _) a2 u) q  H& V0 P5 M
If lLngMaxIndex = 0 Then Exit Function ! x5 ]$ f. H; k+ L. D% R; B3 j
For lLngIndex = 1 To lLngMaxIndex 2 z) L% [% G0 u7 V
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # z  o% w2 w- p! I# _
lLngEncrypted = Crypt(lBytAscii, PublicKey) ( h- h3 J; E% U
Encode = Encode & NumberToHex(lLngEncrypted, 4) & K  _4 K; j) W0 ]! m- k, W
Next - U0 y" A* k$ [6 i0 @
End Function 5 H/ p: P# |# y  K' M# N
Public Function Decode(ByVal pStrMessage)
2 M8 D: O/ T  V6 {( f+ f$ yDim lBytAscii
# m; X) T0 l1 b. _& y* j6 kDim lLngIndex
4 Z+ ~  I/ n- Z. R  ?, I5 J0 m$ \& n" pDim lLngMaxIndex 6 b2 [4 e' j3 h# q" @
Dim lLngEncryptedData
3 U  s% f. U: @; d. m8 o6 dDecode = ""
# `2 o( X9 b' d; w' T4 Q& {4 x+ E3 ulLngMaxIndex = Len(pStrMessage)
# Y# S4 n4 ^' J, f2 V  x  t) [For lLngIndex = 1 To lLngMaxIndex Step 4 - P# u9 u: j* y
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" B- U( }9 y5 c# G' J& \4 i2 UlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ; T. T6 A0 Y) M6 b" w' [
Decode = Decode & Chr(lBytAscii)
" Y/ E$ T# p* h4 G8 rNext : W' T: f( Z4 S* C" B- u7 G
End Function
8 b  l- s! m- U" vPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
/ }% Y) C- b9 ^( j& SNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 1 C$ I' G4 I  h) O& Z
End Function ( d; A  R, {$ c& V; B: `" H
Private Function HexToNumber(ByRef pStrHex) 3 ^. Z1 ^: d$ [5 `4 r: M
HexToNumber = CLng("&h" & pStrHex) 6 n% b0 A# C; Z. [: z9 O
End Function ! g1 Y9 N& H: T
End Class
/ ]" P% \) v! b7 f% c% V% [; y% P( Z8 Sfunction Encryptstr(Message) + j* ^$ V- m1 o2 E' \
Dim LngKeyE
- j" ~! V/ ]* E# GDim LngKeyD
, F# L" t3 N! ]. i2 J  aDim LngKeyN
* s: m- m. C. n% E# h& Q% U( EDim StrMessage
, S! G) G' W+ |$ H3 A8 cDim ObjRSA
  E8 x- N6 \  E9 C3 ?- I# V, c  sLngKeyE = "32823" 6 z  K- D; }- m4 l+ R& ~
LngKeyD = "20643"
) U  e3 D3 `, i3 w: QLngKeyN = "29893"
' _9 c- u# B/ m8 R& \1 \& R# bStrMessage = Message
" E4 }2 O5 w) h: W( y: u: zSet ObjRSA = New clsRSA - v3 f( Z5 v; N5 ^) ?8 Y& z6 L: O
ObjRSA.PublicKey = LngKeyE : t2 m- v: L7 t. B- o1 F% D* T
ObjRSA.Modulus = LngKeyN
& k+ R( i$ L3 [' }& M7 }' nEncryptstr = ObjRSA.Encode(StrMessage)
5 a" p! ]4 J% [8 V) LSet ObjRSA = Nothing . s$ _. P9 U1 I7 l. V$ ^9 `
end function
" E( G+ k4 T3 |4 Y+ CFunction Decryptstr(Message)
# R8 T. K: Z9 p9 _0 i  h: [Dim LngKeyE ; w; m: r" N' n4 Y
Dim LngKeyD
- p3 R5 y5 ]" P1 |- }4 ~% GDim LngKeyN
% ~# g5 M/ u8 L5 T6 VDim StrMessage
) G1 P3 w& @  [) M6 yDim ObjRSA $ a7 C5 y5 ?1 X. ]" ]# \; s$ |
LngKeyE = "32823"
- n  V3 [5 r, e7 M" Z$ k+ y# H; lLngKeyD = "20643"
2 ]' K  Q8 B; j6 wLngKeyN = "29893"
8 r: i2 m9 @4 m% J3 y7 e/ q6 V; HStrMessage = Message - s; l( L! A& \
Set ObjRSA = New clsRSA
' R4 z  W+ f+ d/ G6 h5 W# YObjRSA.PrivateKey =LngKeyD / D2 v6 o; E- V6 m: D& M% H; K
ObjRSA.Modulus=LngKeyN
3 j4 R. R" D4 X' f( Ddecryptstr=ObjRSA.Decode(StrMessage)   l) f7 p5 t1 s' f. H0 Z1 B, N
Set ObjRSA = Nothing
2 Z5 T5 g' l$ ^, l( c0 @5 `end function 9 `1 a6 ~7 q1 `) a' o
%>
7 R) G! p+ N1 S0 f" U* Z===============================================
7 p9 r* X2 C$ s/ |. e  @& j; K/ b
还有一个用于测试这段代码的test.asp
3 ~( f) I5 I  S+ W- a8 |$ F有兴趣的自己搭建个IIS测试下
& U  ]' s- R2 x% g* m$ R<!--#INCLUDE FILE="RSA.asp"-->
9 k+ I& H+ G- p0 I9 W$ T+ ?: [5 V<%
5 C( T. t( m+ X4 _6 L* h  Zfunction Encryptstr(Message)
4 ?' S: p$ `5 @2 T+ VDim LngKeyE
4 Z) ]% h& T3 `) N- J1 aDim LngKeyD
3 r4 n# ~$ I9 e$ ?& k8 w5 L; @: rDim LngKeyN 1 i) F% _* P% g5 g' \
Dim StrMessage
( k, c3 L- S8 [2 W4 jDim ObjRSA
% r3 b0 D. _/ j# ZLngKeyE = "32823" 7 W: Y- ]3 ?/ w1 j! G$ z9 F
LngKeyD = "20643"
5 k0 h. \8 C, fLngKeyN = "29893" : R' C: A% V* g  L1 G- t
StrMessage = Message
% _/ Q2 y% i% c6 TSet ObjRSA = New clsRSA * X2 ^, T* {8 Q& }9 O% c1 {
ObjRSA.PublicKey = LngKeyE " V: P+ ?9 T8 g$ {
ObjRSA.Modulus = LngKeyN
7 {% U3 N& A8 w2 h& I$ @, |9 `. EEncryptstr = ObjRSA.Encode(StrMessage) ' [  T4 u  K' d% ]/ g6 b: x
Set ObjRSA = Nothing
# G) G; c( R1 {7 Aend function - a9 {6 i: W( a" }$ c
function decryptstr(Message) 1 m: C7 Q* r& s
Dim LngKeyE ) X) w+ p1 t6 Y3 M2 J0 K3 _* J6 e
Dim LngKeyD 0 @/ |* @8 `" F/ u5 I( |+ _
Dim LngKeyN
2 g9 s4 }+ W8 x$ I. PDim StrMessage
7 U. }( x, z9 z+ ]# `: w& a+ KDim ObjRSA ; A! W- j) ^  u- A' j
LngKeyE = "32823" 6 S2 L9 G4 r7 F% `& K% U6 [0 j+ {, o
LngKeyD = "20643"
1 U6 o* _! Y+ l3 F- f' e: rLngKeyN = "29893"
8 y, E3 a/ L4 D5 B5 l! WStrMessage = Message 7 y) Q% g2 |$ S3 J- D3 r& z( X( y
Set ObjRSA = New clsRSA
* g9 o3 E5 v7 f3 }) V4 l* aObjRSA.PrivateKey =LngKeyD + f' [7 Y7 o% a* e( l8 B
ObjRSA.Modulus=LngKeyN 2 {8 Z* u# k8 g+ d; z' Q/ x
decryptstr=ObjRSA.Decode(StrMessage)
/ l' a7 Y0 a1 A5 fSet ObjRSA = Nothing
" }5 i4 a# J; a( J+ x3 s' l; |' Fend function
5 u) \$ i0 \" a+ H6 B, h9 ?' ]& Kdim last,first
0 F$ ]9 l* U* B/ Y4 v7 mfirst="!@#$%^&*()" ) e$ C: J0 |- U$ m& A: O8 E6 I
Response.Write "加密前为:"&first # @7 r! e' |# m$ k) @
last=Encryptstr(first)   t' m" b  Z  V1 {& R) A3 J# B
Response.Write "加密后为"&last
6 a6 {* h5 a+ u8 R) C* aResponse.Write "解密后为" &decryptstr(last) : X" i8 c8 J6 ?# M2 J4 u
%> ==============================================7 `9 i) v/ }- [5 L, I! p* O' L1 ~( f$ y
剩下的就是字符的对照表了
) G) m  L. }( o' q===================字符集================2 b7 O# ~1 a0 v& {
1_____6EBB
( }  t3 D1 k4 _3 F, a3 R+ f; r2_____5C1F* F7 o/ B* X5 @9 }; \- ]
3_____4D751 V5 P- O2 q6 B$ H; a4 y% C9 x
4_____26CC
3 f# {6 s  d* ]  T% c5 q5 S5_____4F88
' z/ E' z$ F; [' o" ]; c2 m6_____3F4E
0 W1 Q6 ~; R4 Z% |+ ~0 v- W: y7_____0A9D
. x* `  q, n6 e' Z' x$ T# ~1 |8_____1A1C
# j5 n: m6 m4 F3 b- D7 n* Q( Z) u9_____6D20$ B$ }8 S- s; |/ ?
0_____1089
4 i  ^6 ^) Y' I- \1 m/ oa_____0F3E
0 J' T3 }& t+ fb_____3159
) d3 f# @* ~. r* Kc_____3517! D' X2 w0 H; ^
d_____419C
3 W# ~: e2 P" Y; Ne_____615C: ~+ P2 m1 S% w! z/ R0 V4 E
f_____556F; F1 J$ J5 }& Q+ @3 `. E9 k
g_____2B7F, m! t& \7 T% w  t# \. N" X0 ^
h_____0F9C
2 a) @! e1 U3 \- ui_____00FA
& \5 K/ j7 H! I6 o: N4 v% J2 ij_____5A50! k7 ]- w0 P7 [
k_____2850/ j0 g( K3 E- V) I6 p
l_____3E7B
3 r) z! ?& d: \; z, mm_____71C5
3 z" g7 R( e; T% Z- e  gn_____1FC8
1 \# a2 N. A' v" y) Z  a& |, y9 ?o_____74C1
, }9 G* I" l9 h+ M; `" T3 vp_____5FB88 [0 K3 B* x; f% C  J/ s
q_____6085$ h4 D% r. k2 s. m9 N- H; L, G
r_____3AC4* K; u7 c" A6 S# [4 n
s_____2F50
% N* A0 C/ H  m0 N( C$ Tt_____36F8
! u& e9 L9 ]. ]4 u6 s# o7 Vu_____7010
/ r9 G7 F: m. [0 c' i& Wv_____0B42
& s, f/ h8 d) s/ D" Cw_____1C7A
' V8 `* {$ A# ~4 k( n, {- T! y& |0 px_____16F8/ P0 S) |. f% n9 ]% I0 y
y_____2EE7: s, S' Q/ @% V; D, y# q5 s6 f9 U
z_____5CF3" r! w) T" }" L# E
!_____6233& s4 K0 k, S% i$ C5 |
@_____3A45
" m7 G! t$ D% R  u- k6 Z6 P#_____2291- D. t3 }1 ^( N, Q: |, H9 j1 n% B* I
$_____5D5C, l6 n. X5 W/ O1 u
%_____09B93 q! f( s3 k, i- ]1 v$ H3 U
^_____43EA" m7 J, l5 i: C, g1 ?0 F
&_____62B9) ~7 J' N6 d, V# M3 c
*_____6301
, l; y: k2 q8 a3 {(_____4659
# K9 E+ ~8 A! {6 w9 C1 A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表