返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
+ v$ ^) z7 p* f( f+ Q原始出处:http://www.3ast.com.cm1 O: ~" @4 k9 _) S: N2 T

9 S# h0 S' ]1 o2 P" [$ \看不懂的直接绕过
( K9 ?: c" {: O" N  S. A, X加密前为:hwy123456" U6 B6 K/ l2 S
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E0 a* v, w1 `; s; W) _

1 B2 w& f/ Y' g3 l- N8 U, B============================================3 u  ?3 O, t$ E8 f8 e
上面是当时自己校内的心情。现在已经解破出来了,分享给大家" v" r0 v+ W; U7 Q; N% Y4 Q
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
/ o) U. w) L6 i- k8 Z: y. G以下是RSA算法文件
% q! A6 V$ e6 j/ H2 `
8 \4 A7 `- P4 d) w  v  y8 t+ Z& V" ?- u文件名RSA.ASP) q3 c/ d6 }4 u! L4 M: m4 W& I( }0 N" y
===============================================: X9 ?/ [$ p/ `$ V- ?' c- u# l
<%
* m$ K$ O+ C; b# ]  g2 [) uClass clsRSA
$ ~7 J* O8 k! `( j7 U1 WPublic PrivateKey
/ D  w6 _2 @% q& w: }0 ^: k- P$ gPublic PublicKey
' N5 @8 K1 x; q" q. pPublic Modulus
" V1 _0 o) \0 qPublic Function Crypt(pLngMessage, pLngKey)
6 ~/ V) Z  f* j  ZOn Error Resume Next
& p5 L3 `5 }' [# b7 uDim lLngMod
  M/ O1 j( ?' _3 ^# WDim lLngResult
4 K3 H: k4 @: o1 B8 L3 `Dim lLngIndex
! c- L* J. A8 j" S; ~If pLngKey Mod 2 = 0 Then
# E( C2 j8 o/ V- ~# ]1 QlLngResult = 1
# _+ r! }$ S, A3 F' q, X3 EFor lLngIndex = 1 To pLngKey / 2 ' U* {( j: `. X
lLngMod = (pLngMessage ^ 2) Mod Modulus 5 o3 l) O5 `; O4 {6 y
' Mod may error on key generation
4 _. |4 O' q4 O( B& Z3 q  ClLngResult = (lLngMod * lLngResult) Mod Modulus
* q8 \& e, B8 V. b& FIf Err Then Exit Function
( M+ L% s# L8 N0 H' W6 o6 MNext
, B0 g! V* Z8 m9 a/ |Else : t5 f1 T! O( M$ Q  ?3 X# m
lLngResult = pLngMessage + M; {8 z3 a; U  K& O: l+ u, f
For lLngIndex = 1 To pLngKey / 2
( J6 O; }/ a" G; ]9 XlLngMod = (pLngMessage ^ 2) Mod Modulus
7 W$ F0 @0 `6 R5 JOn Error Resume Next . d% \4 y$ Z# ~6 r! L' \% e2 b; [
' Mod may error on key generation 5 P( Q0 z% z3 S. K; {. `) W
lLngResult = (lLngMod * lLngResult) Mod Modulus
; L7 b: i! d  r, i6 pIf Err Then Exit Function . W9 L, S4 U! E) `7 q7 W
Next
! v5 E+ S* Z" d) eEnd If % j) q2 l; Z7 m8 u' D& Z
Crypt = lLngResult * A! {4 y& d) v* U. F$ m
End Function  i* }7 b4 X2 v; J9 b
! `8 x) u4 L: g! P/ a
Public Function Encode(ByVal pStrMessage)
9 S, k5 ?) n! u) xDim lLngIndex
; T: p8 V1 g  U$ H6 U  y- w7 IDim lLngMaxIndex
- N/ i3 Z3 ~* z5 ]* s% ?% e  v" LDim lBytAscii
" w* M, E% P1 w6 _& iDim lLngEncrypted # S5 T; n4 _1 P5 F1 \& V
lLngMaxIndex = Len(pStrMessage)
) i( Z' h4 T, l) BIf lLngMaxIndex = 0 Then Exit Function
- p2 c4 W4 i" x/ u! Y9 Z' NFor lLngIndex = 1 To lLngMaxIndex
3 @8 r6 d6 p0 I" d. WlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
% B" t" X7 ]! clLngEncrypted = Crypt(lBytAscii, PublicKey)
8 t" ?- b/ A* W8 \1 y% N* JEncode = Encode & NumberToHex(lLngEncrypted, 4)
; G3 ^$ v  ^$ n; J. BNext
+ [* B* W3 x2 ^; F7 X* B* F1 qEnd Function
/ B& U- O  u6 d* UPublic Function Decode(ByVal pStrMessage)
4 U  V7 L, y/ c% sDim lBytAscii * V- H, h. {8 O7 W
Dim lLngIndex 2 ~  M. V/ m" b. S; D
Dim lLngMaxIndex + P6 H4 x3 q( A( n2 S& ~, j
Dim lLngEncryptedData ' D- G$ J: @) z6 k5 ]. `5 o
Decode = "" . N& l$ X: ^- E' F) S
lLngMaxIndex = Len(pStrMessage) ( j+ ]! V. A5 M8 z. @, E7 L" ~4 w; K
For lLngIndex = 1 To lLngMaxIndex Step 4
- f4 y* d) h, |lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ T* p( |& {5 a/ \. Y* n( ulBytAscii = Crypt(lLngEncryptedData, PrivateKey) ( H" E7 q! H# w, [' T
Decode = Decode & Chr(lBytAscii)
0 N& u6 f  {4 ]+ z, I( a4 [Next
  A6 M8 q) [0 F3 yEnd Function : d3 p9 r$ @7 j" S
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
0 ]' t- a) T9 \: c% f* f  u: M  kNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
) \3 ~/ r) p6 ^: ^" P1 X8 UEnd Function
5 Y1 g& L: P/ Q  v; O& yPrivate Function HexToNumber(ByRef pStrHex)
# }# u/ G0 T" VHexToNumber = CLng("&h" & pStrHex) + B7 ?' V  `" @9 H) V- e
End Function   w: E$ U+ q* O# v+ I2 b
End Class
: D: Q+ Z. B% n  e" Z1 t. l* jfunction Encryptstr(Message)
6 p- X' H, A# b: TDim LngKeyE " T3 w* h9 I' W
Dim LngKeyD
2 X8 s+ u" C0 V  X) Q" p$ p/ IDim LngKeyN
& c" @) Q! c+ V( k. G" c. p" }Dim StrMessage
( I7 [( D: o; J+ aDim ObjRSA
6 r6 |5 y4 w+ P, c" J3 M1 {2 xLngKeyE = "32823"
& h- a7 x$ S; n: U. |LngKeyD = "20643"
1 u7 _) C# m/ B& W  z8 k& iLngKeyN = "29893" 6 y8 G0 y5 G# H  [/ u
StrMessage = Message 1 P7 S) [! k% ^
Set ObjRSA = New clsRSA , d; I1 e7 u" _8 W% |- V: T7 d* R  W( m8 |
ObjRSA.PublicKey = LngKeyE ( L7 A- ]% [/ ^) a
ObjRSA.Modulus = LngKeyN
0 ^% `. w4 P' y7 C) wEncryptstr = ObjRSA.Encode(StrMessage)
* T% L1 t! E# `; k3 ]9 Q9 ~Set ObjRSA = Nothing
' C7 ?' Q2 G4 Nend function
$ ^9 O, f1 j( v* J5 ]7 h; ]Function Decryptstr(Message) % t/ b+ {# ?+ A
Dim LngKeyE
% C: p" M4 R  ?, v1 w6 \5 E0 SDim LngKeyD 0 Y0 k+ B" L$ ], d# ?4 t( u/ y
Dim LngKeyN
1 A2 w6 l$ A( ADim StrMessage # ]6 o' t5 l% J; ~% i. n
Dim ObjRSA
- L* _  m4 r4 B) a9 U; |LngKeyE = "32823"
& w9 k7 `9 T- d  q# }  v* T6 E3 C) BLngKeyD = "20643" $ g  s# V8 X4 y% l: H6 V
LngKeyN = "29893" - O. D9 z  B/ }' x- s
StrMessage = Message
. T4 s; v3 @3 u; Q: @. ?Set ObjRSA = New clsRSA ) J: \! s! `" s& C5 b
ObjRSA.PrivateKey =LngKeyD ) T8 ^& o( D, ^, q9 q+ x: c
ObjRSA.Modulus=LngKeyN " |9 J$ Z# j, x6 c% c. U, |
decryptstr=ObjRSA.Decode(StrMessage) % B6 b5 X( r0 Y- \
Set ObjRSA = Nothing
& m& [8 V- F1 d( K( ]end function
; Y+ o' z1 l6 q5 H%>
' U) ~/ e- u# s. }  p* Y. W===============================================  F, V' [+ `+ `' i! j# S3 M
6 |) y' y7 N7 z+ O& R  b! f: g  O
还有一个用于测试这段代码的test.asp7 l! Q8 p% P/ s% m
有兴趣的自己搭建个IIS测试下$ x& o# Y8 g6 @; e9 U: S2 j+ y2 `& ]
<!--#INCLUDE FILE="RSA.asp"--> & a! C' U5 `. ~7 s6 ?2 r9 N0 V, X
<%
, f7 ^9 b9 D- o- @function Encryptstr(Message)
* m( k4 M! E9 ADim LngKeyE
+ d- x) I7 ^% ~9 k. N) _Dim LngKeyD
: C& o8 B  r& l6 [Dim LngKeyN
6 K3 W, @: L0 _7 JDim StrMessage - c8 O# R* P  X' d6 n
Dim ObjRSA # e: W+ c' p/ a) U
LngKeyE = "32823"
0 {( ^' O. b1 a+ vLngKeyD = "20643"
$ n: ?4 f1 E5 {- {0 }/ z! xLngKeyN = "29893" , d4 I/ C9 }* ~1 E) L$ e
StrMessage = Message % ~% Y8 G# r% B+ M$ O5 z8 S0 {
Set ObjRSA = New clsRSA " Q0 [* y7 C* j1 a' }
ObjRSA.PublicKey = LngKeyE ' n+ `7 ~. t; x! j
ObjRSA.Modulus = LngKeyN 0 y0 F- g  i/ w! J; S) y0 l! D
Encryptstr = ObjRSA.Encode(StrMessage)
5 _! X2 M- J! y6 TSet ObjRSA = Nothing
, r! p; V3 R7 p3 P  Hend function
1 V: c$ U: m: ~function decryptstr(Message) 5 s- f9 s! o7 {5 ], ]
Dim LngKeyE
! {) F, o- Z1 z& G. a9 C) {Dim LngKeyD
3 ?0 J' v( p( h( M" K, ^4 qDim LngKeyN
/ d: o! P" {1 F4 ?0 ]( {Dim StrMessage
" U( f: d" Y1 ^Dim ObjRSA
! h( ]- k2 X# d0 i% l" v) sLngKeyE = "32823"
/ t1 u( j: F/ ?0 }  M8 h1 T% }LngKeyD = "20643" 2 |% h% B4 K" @6 ]2 _$ |' d
LngKeyN = "29893" . M# @8 c4 E+ S. J% Z
StrMessage = Message   y. L5 e* R  `2 u" b
Set ObjRSA = New clsRSA
; {: K+ e: v; P% h! O: y; F6 TObjRSA.PrivateKey =LngKeyD 3 ]1 n' O" `7 Y8 _3 S& B9 R4 R
ObjRSA.Modulus=LngKeyN % ]+ }* M( R$ H( Z& i, e" r
decryptstr=ObjRSA.Decode(StrMessage) $ U* t( J2 ?* d* v" I" J
Set ObjRSA = Nothing 1 P) `5 F; p7 o1 ^
end function
( D3 E& M' a6 B+ _dim last,first $ g- x8 w; \8 O  C, B6 f9 L/ X
first="!@#$%^&*()" + y; S6 ?5 L1 w8 J. g: Q
Response.Write "加密前为:"&first 9 F9 N2 H7 H- n4 n: Z2 U8 l
last=Encryptstr(first)
1 Y( s% L; R( Y" @Response.Write "加密后为"&last 3 [, K/ F; B' H+ d( u4 i3 E
Response.Write "解密后为" &decryptstr(last) - z/ Y7 x! @* e, U7 P1 b# H
%> ==============================================! F) W( }& U  u; t# n) o/ l' Z
剩下的就是字符的对照表了
/ L) Q! j. c! m4 e3 W) F% l) P===================字符集================
6 W$ S/ V9 Q5 `4 M# }1_____6EBB
1 c* y! @6 O" N2_____5C1F6 A- D9 C9 P0 x6 z( E6 N* b. O
3_____4D75
+ j4 V9 n* ?- i% }- g) T5 N4_____26CC, G5 F( K# x- A3 I1 F* w
5_____4F88& f+ U, R0 |; _! b. V
6_____3F4E
: b8 x9 D4 k/ O2 B' v+ i7_____0A9D
# I9 h( C, F6 ~' z7 b, }, M8_____1A1C
' u5 Q6 M6 {; q" ]" A9_____6D20  q. R" @/ w$ q. ]+ N2 c  g2 P
0_____1089
$ z2 B, @/ X3 Ba_____0F3E
" {& f# |& v! ^( Y$ Ob_____3159
4 ?) }. s7 q+ `' zc_____3517  I% x; Z. F, t0 l8 m/ K
d_____419C
& D5 h6 k! C9 `4 b, {3 s  le_____615C
8 P) G4 e, e6 a! I& \! o5 Ff_____556F
; ?1 b4 C8 C: U8 Zg_____2B7F+ d6 A  a1 ?) g; A
h_____0F9C
; d( H- o  Y3 p) }/ ^$ Yi_____00FA
$ I" _& M% Q  c1 h) bj_____5A503 d+ l1 \  n! r! [/ W
k_____2850
# e7 O0 D6 f- P" N$ ~( V- cl_____3E7B
# w( c  v% @& }1 e6 A* U1 Tm_____71C5# w$ ]/ @/ Z  [* p, k2 O) G: G, E
n_____1FC8
2 L7 w. e& i) wo_____74C1
' [2 E1 ]; }7 j: U# O  tp_____5FB8
) L9 p8 X. b. F  u# Kq_____60854 [6 O; a$ {! }! A( s, j
r_____3AC4
" Y$ ~9 _! O; qs_____2F50
6 [! |# m$ i7 K6 _* `& kt_____36F8
: g6 R3 n, R' j( ~# J* {u_____7010
- P4 Z/ K. C  e( O2 ~v_____0B42
0 [0 W; _" n! ]9 @3 h7 Xw_____1C7A
# l1 @$ q9 u/ Px_____16F8
) b7 P) t, m! g3 O! r1 oy_____2EE7
! z, F9 v% I' b5 `z_____5CF3
$ M, U5 T& m' ?. M; B$ J) q% G; G' k!_____6233
) V- [3 K0 [4 j0 G* C# _@_____3A454 p6 S9 W* k' t
#_____2291
( ~! D+ _7 g6 m! A# l- V: f  B$_____5D5C
* l2 k3 Q5 }  W& U%_____09B9
0 E6 _& j$ I! m^_____43EA: n4 J, f) E' ]( B" J
&_____62B91 q$ ?- G2 Y! ~% ^* S$ M7 P+ p
*_____6301
9 A; Z$ B8 ]; N! [(_____4659( U4 {$ }# q  d- E
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表