返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm- V, ?5 M$ Q3 J: A" ~
原始出处:http://www.3ast.com.cm
* Q; o$ H0 F( _; \* S1 ~/ b8 m2 N, J' m  D( ^6 J4 c
看不懂的直接绕过, c- n3 R( W, d7 c+ B% \+ a7 P
加密前为:hwy123456
. `- ?0 D/ q& g$ ^; H加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
* N* [# `; d: Q) j) ?$ k
8 K5 J9 W3 x" ^! N============================================
& T* s( |, y3 M上面是当时自己校内的心情。现在已经解破出来了,分享给大家5 w& G4 P5 i$ X' T5 n) E
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法9 m5 h6 K1 w% l% F1 p) g8 f
以下是RSA算法文件
% U: \" r& t" X0 ^
. s; u+ d4 K# }2 `文件名RSA.ASP
; W1 z7 r8 P% H$ Z- T7 d===============================================
) p' X4 m  f( D+ y" D; f: D0 I( H<% $ B- c, r! g1 o3 G
Class clsRSA
: @5 b' c# g' N) \$ WPublic PrivateKey : o9 v  \/ w) L6 X2 M6 @
Public PublicKey
, D" |* _8 m1 S! APublic Modulus / i3 o* f9 s. W$ ^* W# W. I# j
Public Function Crypt(pLngMessage, pLngKey)
0 E" A  ^/ T- MOn Error Resume Next # Y+ h. u( q* q. c
Dim lLngMod
& t$ |$ y% k( I3 [6 `# eDim lLngResult
- g5 E6 Z( p1 R& ~5 [$ rDim lLngIndex
" Z  p7 I1 O6 [' CIf pLngKey Mod 2 = 0 Then
, u3 Z8 Y5 k$ c: x6 ~' L4 KlLngResult = 1
& G! F. u5 N( t  |! O( LFor lLngIndex = 1 To pLngKey / 2 % E9 `+ l! l% j- P! t. c( y
lLngMod = (pLngMessage ^ 2) Mod Modulus
8 }5 R' `3 n, w+ l" [: M' Mod may error on key generation ' Q* q* b3 K. @: l! c
lLngResult = (lLngMod * lLngResult) Mod Modulus
( S. w0 K7 o6 X* c: M' r, MIf Err Then Exit Function & D5 D# g% O# M  N# X
Next - F- k. I9 v, @6 z4 V4 {, p
Else 1 y& j) J. T6 ]3 m. N; d7 _
lLngResult = pLngMessage
5 v5 B$ G0 k' gFor lLngIndex = 1 To pLngKey / 2
- o* [' h3 t+ I" \5 M( H9 U) blLngMod = (pLngMessage ^ 2) Mod Modulus 4 F1 _: X  B- g/ L" ~: S4 e9 s. T
On Error Resume Next
" [! I# T) p2 p& e7 ~0 R% ^' Mod may error on key generation 7 g6 x2 F0 t! G0 a6 k
lLngResult = (lLngMod * lLngResult) Mod Modulus
$ f( m/ D+ K( n8 rIf Err Then Exit Function # d+ S5 |0 }0 p
Next ! U$ w2 [$ A4 m0 z
End If $ `2 F  `8 {+ I- e6 ^
Crypt = lLngResult
3 P- G6 K" t- Z4 f  HEnd Function
, k& l' T' Y' k" P% [% X; W5 K4 ~8 f& c4 _
Public Function Encode(ByVal pStrMessage)
6 J1 G$ c/ \( W6 KDim lLngIndex
9 p8 W9 x* w& q: j% ~) JDim lLngMaxIndex
4 L% S0 {* E+ W4 U- s. d' H6 o6 sDim lBytAscii
) q1 |' v0 M" e* pDim lLngEncrypted
6 r. S* ?# n! |5 ?lLngMaxIndex = Len(pStrMessage) 9 F/ G. N0 E) {  B
If lLngMaxIndex = 0 Then Exit Function , R1 e3 _  x* {! O0 @; y1 Y5 q
For lLngIndex = 1 To lLngMaxIndex 9 d# h1 y: G/ q/ k! ]
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) . k: x" ]  H# _' ~6 J6 _+ `
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 g3 J  W( s7 t6 J6 {: |2 y" |
Encode = Encode & NumberToHex(lLngEncrypted, 4) $ X) R" e7 Q6 n1 c5 I) U- k7 ^
Next + v9 ]3 T5 b( z: M* J, B& G4 w
End Function
8 n. p( T2 V4 I& p* sPublic Function Decode(ByVal pStrMessage)
3 v0 @" H' C  @" DDim lBytAscii
& l( D/ ?5 u7 Y2 L+ c$ O4 k! _1 G, _Dim lLngIndex
  Z& A4 ?! b0 x' U8 I2 Z0 K) w& GDim lLngMaxIndex
. a8 X  L7 @1 H) I+ w, tDim lLngEncryptedData ( D% @& f, L  P) y4 C- @
Decode = ""
( ?& `8 Y" g8 i  x7 MlLngMaxIndex = Len(pStrMessage)
( Z& n0 F7 h2 x! XFor lLngIndex = 1 To lLngMaxIndex Step 4
& |0 }$ g4 d) C( l" @& y) w2 g8 q& ilLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) # O3 E+ l) @4 K2 E  M
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 4 h6 D, {& ?  n( p4 k- \# o( L# D
Decode = Decode & Chr(lBytAscii) / H8 _$ A. e* a5 {: E
Next . o0 g: P1 x: \) u
End Function
$ _2 X8 l  U/ A' b7 DPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
+ h5 b$ L) G* Y$ J2 Q9 `NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
# ]; M( Q) Z! D5 CEnd Function
- }) M, I% G& }4 q+ l+ p# NPrivate Function HexToNumber(ByRef pStrHex)
; G' u& I3 Q6 EHexToNumber = CLng("&h" & pStrHex)
8 B% T! a8 C# }: sEnd Function
4 d- l$ ^% ?& M7 X/ o* \5 GEnd Class
3 m; J4 A: {8 i7 Bfunction Encryptstr(Message)
+ p/ L! v) @$ p$ ~3 L' b0 BDim LngKeyE / x; h: T. [  _/ D" n2 T/ k/ ~( a' m
Dim LngKeyD 0 }% ^6 Q3 r" e" F
Dim LngKeyN
+ z) f5 |) \1 G/ H5 hDim StrMessage % b1 i% q( \' j" C
Dim ObjRSA . D. A4 }. g8 |7 a/ f( q/ v" R
LngKeyE = "32823"
& R7 M0 m* Z( l* D! S" }5 MLngKeyD = "20643"
- P  k) N- A3 g  MLngKeyN = "29893" 9 w. E1 Z0 h) v0 X  D. m
StrMessage = Message
  T  M% g' M, T7 s( h8 BSet ObjRSA = New clsRSA
+ p2 v+ {  |( J5 ~9 p7 x$ UObjRSA.PublicKey = LngKeyE
7 @1 e) Q5 q4 D+ B. N: J# a) J# e. }- WObjRSA.Modulus = LngKeyN
5 u/ p! {6 _0 pEncryptstr = ObjRSA.Encode(StrMessage) ; t. X/ |2 R3 w/ ]" k
Set ObjRSA = Nothing
" N: G7 ~" E1 [' k: B7 E! Bend function
, ~( L& \4 i% X! bFunction Decryptstr(Message)
9 r& _7 }* k4 Z/ T8 U3 J9 R3 [Dim LngKeyE 5 m% E" z! \% s9 X$ D
Dim LngKeyD ; f: |# l0 j/ s) I6 C
Dim LngKeyN
; U/ D) s% w- ~( T; q, \! ~; l2 lDim StrMessage
: b& g) ]$ t0 G+ z% [% \8 `Dim ObjRSA
/ X* {; U5 k, H- E8 ILngKeyE = "32823"
( F) c, R! F! eLngKeyD = "20643" " o% F: k- V& l4 O3 @
LngKeyN = "29893" 9 G3 \+ L& Q" ]2 y1 ^" r5 Y  ^
StrMessage = Message # s1 m" N$ F: `1 u- y: R3 D, C+ q. K
Set ObjRSA = New clsRSA
& F) c2 o+ p9 k0 cObjRSA.PrivateKey =LngKeyD
6 v$ M* k/ D( E1 D' w/ m1 |ObjRSA.Modulus=LngKeyN ) N# b" q$ O1 g; C& }
decryptstr=ObjRSA.Decode(StrMessage) & N6 h6 X1 u: ?( }
Set ObjRSA = Nothing # C- }# p+ b0 `; s
end function
5 h7 ^! u/ U5 q: D%>
1 Q! ~& d; B! g$ e# R; W6 |===============================================
- p( s: p! @- G  a3 y5 e2 C) [* Y4 U, y( ~; m
还有一个用于测试这段代码的test.asp3 w; F$ D$ P3 U2 V7 R4 T2 L
有兴趣的自己搭建个IIS测试下
; e+ ~; i* T$ B6 n/ u  j<!--#INCLUDE FILE="RSA.asp"--> 6 n3 E/ x2 a8 s: I* U- d. F! h: t
<%9 I2 i  d1 Y' Z) h
function Encryptstr(Message) 1 @: R9 j; U* J, J1 n' }
Dim LngKeyE ) j) e" c/ }& D0 \8 _
Dim LngKeyD
. q4 C' f) ]/ d7 e/ M; }  d2 }Dim LngKeyN + T7 l( w+ c/ W  C7 {
Dim StrMessage " y: C( S# M+ q( M- d( Z. J
Dim ObjRSA . j; e* ~" \0 q7 |" S
LngKeyE = "32823" 1 ]8 S5 T, d; @
LngKeyD = "20643" , F0 q7 ~( F! J2 `
LngKeyN = "29893"
, f6 e+ a  W* k! l+ E9 `3 @StrMessage = Message
$ u( m, g& W9 g* z; k" V( MSet ObjRSA = New clsRSA 9 t& h8 _2 Z2 E( h' B: n
ObjRSA.PublicKey = LngKeyE 6 f' a* X0 E( ]1 L; q
ObjRSA.Modulus = LngKeyN
  O. Z- J% _) _; ~Encryptstr = ObjRSA.Encode(StrMessage) . X, h( e4 j7 w. F: ]4 G5 G+ }
Set ObjRSA = Nothing
! s; w( z( E" P3 k. U3 Rend function
6 f/ l5 B5 N, ^* k: X* Bfunction decryptstr(Message)
5 m" n8 F! P! t/ Y7 o% ~# `Dim LngKeyE
' m$ s* Q2 T$ f. I. C/ O4 W3 qDim LngKeyD ' d$ a+ z5 \" A/ }! ^
Dim LngKeyN
8 o+ M0 J4 R3 E' a+ |& IDim StrMessage 7 U/ y9 ?1 U8 ^2 L1 N
Dim ObjRSA
9 w* q. E8 f( [2 O1 K: e! l/ |( hLngKeyE = "32823" / P& d! B* p9 m. m4 D! G+ \" ~1 i
LngKeyD = "20643"
( N  c* L4 `7 a5 ?/ a# R& NLngKeyN = "29893"
" H; S6 i" \& \. u) D8 HStrMessage = Message
6 B' m( m4 b) Z! c' rSet ObjRSA = New clsRSA
5 d/ j$ q, _0 A  Q5 ]8 p; WObjRSA.PrivateKey =LngKeyD
% q  D* U# O+ ^" F* E* J* UObjRSA.Modulus=LngKeyN
: n5 X' ~& L+ q" sdecryptstr=ObjRSA.Decode(StrMessage) 4 y2 L3 g8 E/ f+ ^
Set ObjRSA = Nothing
1 D6 Z( v, z3 }: v% Y# b# Dend function + T- ]- J9 E9 F  t. o
dim last,first ) A4 P0 k" }& n
first="!@#$%^&*()" 0 F, H2 L4 J+ t, E; E
Response.Write "加密前为:"&first ( n! ]1 n2 f3 R& v9 W' T' U8 U
last=Encryptstr(first) 8 M! I9 i) [# d8 J
Response.Write "加密后为"&last & x6 r: T! w( O0 n+ @
Response.Write "解密后为" &decryptstr(last)
, M. i- E9 h. k8 ]9 X' L%> ==============================================( k& [; E& Y/ M; u7 r* @
剩下的就是字符的对照表了9 y& Z3 W' O( y1 Q3 u
===================字符集================
! U( ?" V9 i* ]; _- C. d* ]- U1_____6EBB; W6 B: n. L+ A+ r3 X) A0 J* g
2_____5C1F
3 K4 A* U) Z/ Z9 x! O1 d3 N3_____4D75! P9 L* a2 i0 N: }& T* d8 N
4_____26CC0 `! f! i. Y0 S  o4 V
5_____4F88  f# l& Q6 F* ~7 L3 F2 {  V6 h
6_____3F4E3 S7 ^* b# j3 d2 X( q' w
7_____0A9D0 E7 ]& q1 b! u' D' {. W1 |: e
8_____1A1C
6 c9 q$ U. E& K# a; S+ [1 e- s9_____6D20
( J% s. D6 R% {% n% X8 B0_____10890 f2 E- n1 z, z2 V) V. Y9 z' {
a_____0F3E
7 q- Z" M9 e& Ib_____3159
: W; G1 o* ~- ?$ h& z7 cc_____3517
  h# J* S$ U, O) o6 I2 Gd_____419C, |1 Q7 \, E' U) {4 k
e_____615C
- H1 U9 n7 i2 A2 Z0 Pf_____556F
1 b6 c4 c: H* a+ K% w# ig_____2B7F
7 x" m; I8 ^/ F! B/ d& Sh_____0F9C% \% H( `: v# t0 Z8 W  o
i_____00FA
3 ~( _1 ]$ W3 Jj_____5A50
. u# f: [4 X/ B9 G% Tk_____28502 P! @+ q) ~: N3 k
l_____3E7B
: |2 w* m& D7 p6 c3 M% e" Xm_____71C5& K& s) L0 m0 B8 I2 [
n_____1FC8
2 M5 u( Y. I# S! G! s! xo_____74C1  m* ?2 \; s/ |7 R- ^
p_____5FB86 m7 Q" m- B3 F& d( k
q_____6085
5 o& b- Y5 a% t7 F/ p* G) D7 wr_____3AC4
4 I9 `1 f1 T" m& R5 r2 \1 [s_____2F50
2 w8 O* w5 X9 o; V6 b9 B4 }t_____36F8
$ H7 S6 ]6 p8 {u_____7010! r) t  O1 x0 H) S
v_____0B427 ?- u3 `; _7 ^' G3 g1 @- h3 W
w_____1C7A1 ]" k9 p. w! A8 y
x_____16F8
8 T# w# L% o. ]# f. Jy_____2EE7
  p7 _* j- K! r4 e  s$ _2 r. F- Nz_____5CF3& g  V( E/ G# ^% L' Q
!_____62338 l2 ^6 I3 ^. ~2 Y% F
@_____3A454 f' \/ |1 E; u! w5 T
#_____2291& V4 w9 h% ]4 s% n- z, x
$_____5D5C
. W7 N- j$ V# F+ \& M+ I+ G; E%_____09B9
( s/ i' z( L8 \! K" i6 m1 y^_____43EA) X. i! p1 F/ R8 o* |% y: ^
&_____62B9
, U; P+ r7 l% a  z*_____6301
2 \& }5 X7 {8 x) {! o2 d% j# y2 Z(_____4659
# L$ K5 b5 o' }! s% I" k7 l8 e)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表