返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 ?1 u% A5 @6 B! {! D
原始出处:http://www.3ast.com.cm
! S6 _6 ?( F4 D5 j4 M& j: W' o, ~/ V  [3 W8 Q( q* A) G6 h' v- P
看不懂的直接绕过4 T  R  s$ |9 X  Z7 m/ V4 \4 u3 X; ]
加密前为:hwy1234565 o3 C; Y- y  j; b# K
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
8 L6 L6 I; v; x* T: z8 Z9 z- }4 B  a4 D% B% L3 I. M# n4 Y" w- n
============================================8 D' g! H& A( Q; @
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
4 H& ?# P9 x4 Q( q$ M  k; J/ U也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% j" j( J7 e9 [$ N* ]5 t
以下是RSA算法文件
; X2 B( ]+ C" L' Z& V8 Q; w5 R
) d0 c& y. P; ~8 |+ _* b0 Q. O文件名RSA.ASP
( H, U2 x9 ^& p* s* Z* l===============================================
) Z) V: B* G( N' W3 l<% 5 k- b6 B- k) p9 t0 K( S3 D
Class clsRSA
5 V0 }- f+ K3 u0 ^$ k. F& RPublic PrivateKey % X: y8 Y4 ?( E- Q
Public PublicKey
4 L6 p; ]4 K# o* p  uPublic Modulus 5 l! C  V9 e/ o8 X) @* |$ @( |$ u
Public Function Crypt(pLngMessage, pLngKey) , p) H6 D9 z2 C" M& U" g& b
On Error Resume Next 7 g5 i- Q* T& X. N" }6 ^
Dim lLngMod
9 A0 @( ^/ R1 G' n# ]% }; l8 PDim lLngResult 4 t1 K( }% i* @2 S0 s, ?
Dim lLngIndex
2 x" m0 y6 P0 _$ T+ q2 s  HIf pLngKey Mod 2 = 0 Then   F6 |3 n, ?0 [3 v
lLngResult = 1
, ?) E  Z/ O0 ~2 G$ f' \* SFor lLngIndex = 1 To pLngKey / 2 ! }5 X6 |  y1 j% A- e2 b+ K7 ?
lLngMod = (pLngMessage ^ 2) Mod Modulus ( W$ k# l  C8 W
' Mod may error on key generation
+ E& U& L- ]! _  I  PlLngResult = (lLngMod * lLngResult) Mod Modulus ! C2 k& I7 |; x  B; m
If Err Then Exit Function
2 }" U  S$ P9 h+ S2 cNext
+ a4 C3 p  K* ~. aElse . T% U: p, i; h9 X" W9 C
lLngResult = pLngMessage 0 P# a6 C/ `" h, y2 P
For lLngIndex = 1 To pLngKey / 2 0 m. e% M2 z" W; T: C, O5 j' p
lLngMod = (pLngMessage ^ 2) Mod Modulus ! f* O& V- U- {6 R# P4 t
On Error Resume Next
) W) N' |! Z* d* |  @3 l' Mod may error on key generation / Q* u3 e0 {5 _! n8 ?- ^
lLngResult = (lLngMod * lLngResult) Mod Modulus ) m6 k' L  O5 v; t7 B" n0 c$ `
If Err Then Exit Function
% z) H) a$ w* ?7 i; HNext
# y, T' ]7 f, m! P* A, D0 x) }End If
/ n' j1 D4 B% v5 y: M: G; b9 eCrypt = lLngResult , G: k1 C* L/ w6 Q- G4 o
End Function
" I- a- I6 i, n3 W* i* b  a# K  S$ r9 }0 S, o
Public Function Encode(ByVal pStrMessage)
3 w6 ~5 e/ x% C$ `6 C* q! I3 ADim lLngIndex
' @0 X" [% u6 ]. e) I0 W- WDim lLngMaxIndex
5 Z" W& M4 s% |2 @0 mDim lBytAscii
5 u7 [% r! o* ]" T) X; @0 zDim lLngEncrypted 6 q0 P4 X8 H& v9 W+ U$ z! ~; Y
lLngMaxIndex = Len(pStrMessage)
( E$ }& s# G% u: u3 ], RIf lLngMaxIndex = 0 Then Exit Function
2 E3 V6 O! C; iFor lLngIndex = 1 To lLngMaxIndex
9 V: ~; n1 c% x! V+ d1 d3 |lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 5 h  j( E8 v1 k: x5 _
lLngEncrypted = Crypt(lBytAscii, PublicKey)
( U" Z: y; ?) Y8 N( t# N5 F: aEncode = Encode & NumberToHex(lLngEncrypted, 4) 4 c" Y1 P% ?7 u2 b* A: R% b8 ?" s
Next 9 d% n2 Z: h) ?
End Function
  ]6 S9 G4 F' X- U& mPublic Function Decode(ByVal pStrMessage) 4 f' H# d* I4 h$ v2 {
Dim lBytAscii
/ m; I9 D, ~- o( x5 m1 [Dim lLngIndex
! V0 _4 A' Y2 c+ x0 w5 zDim lLngMaxIndex 5 J0 U, A1 y! M- [# l
Dim lLngEncryptedData * a8 d) _0 E8 D# S6 e+ i
Decode = ""
% t0 c" g% t; `, ]5 ^: ulLngMaxIndex = Len(pStrMessage) 4 `" r8 S5 M# z4 s: ]: c
For lLngIndex = 1 To lLngMaxIndex Step 4
) j& M& s5 \* w: e4 alLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- l2 T& p! K3 b  k$ TlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 2 n1 U! ?$ p( W0 B. Z; Q
Decode = Decode & Chr(lBytAscii) 8 v5 j, H9 W* {- U- P
Next 6 \2 o- x- ?4 M3 P
End Function
: g0 m2 s, M- c, f% r  wPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 f" @% |. k/ F- k. P! SNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) , S. M" P8 U; Y# n
End Function
8 Y8 ^* Z2 h" e0 B4 tPrivate Function HexToNumber(ByRef pStrHex)
8 K3 j2 h( q  d) M2 z. L+ dHexToNumber = CLng("&h" & pStrHex) / _* e* ]; K/ p4 ?$ n
End Function - }3 p- {9 N: T5 Z' O
End Class # q) }& P# L9 |: e4 i
function Encryptstr(Message) 3 C1 d5 e& z+ I* F% u
Dim LngKeyE
: S2 b; h' a- ]Dim LngKeyD 7 P4 C# D8 T, P1 o7 s" g( y% X
Dim LngKeyN # `, U4 d' c: X  U, T6 `) b
Dim StrMessage 6 ~# {" f9 s: E/ a2 q' q, G0 g' q0 C$ j
Dim ObjRSA
- d" ]5 s7 t$ b& i+ s  |; O+ aLngKeyE = "32823"   Q' U' \" [  V
LngKeyD = "20643"
. e4 ]3 ~: {: ~1 B) ?& z( XLngKeyN = "29893"
7 C" N$ I" ~$ f: K2 q2 GStrMessage = Message
/ ~2 R$ p3 N  g; A* XSet ObjRSA = New clsRSA 1 t9 Z0 A5 e2 f8 |5 n; R' S. `
ObjRSA.PublicKey = LngKeyE
/ H$ U: \* u9 D" K! D* h" TObjRSA.Modulus = LngKeyN 2 [, z- w/ ?) q: G
Encryptstr = ObjRSA.Encode(StrMessage)
+ y4 g: i' o: v5 mSet ObjRSA = Nothing : A9 k7 ~) {% D8 n+ H4 Y, Z9 Q
end function3 s' ~# m6 T- C7 y. Z' t* {
Function Decryptstr(Message) 9 _6 R+ v( C4 ]9 `) W! W
Dim LngKeyE
- z$ h$ R* j: |. m% s1 kDim LngKeyD 0 m" M0 G* D/ j. F! p: j
Dim LngKeyN : @6 A) K- D8 r7 t
Dim StrMessage ; l. t/ F4 X! y* t
Dim ObjRSA
8 z+ s/ Q; j3 QLngKeyE = "32823"
9 ?# R2 y: B5 ]LngKeyD = "20643"
5 l& w. J0 u' y& S1 T7 Q+ P/ T% ]LngKeyN = "29893" 6 o: [2 t1 j$ g" T3 H
StrMessage = Message
; Y& b' t  @" \  ?7 b2 D- pSet ObjRSA = New clsRSA
; d: `9 I1 Q4 n/ X# XObjRSA.PrivateKey =LngKeyD : i8 O+ g4 T) i$ L$ v3 b
ObjRSA.Modulus=LngKeyN - `% \, }8 H, J4 Y6 x! h
decryptstr=ObjRSA.Decode(StrMessage) 1 U  ?+ n9 h5 _3 f1 L* ], P3 ]
Set ObjRSA = Nothing
/ @! E' t+ T" E( i6 L) dend function : Q: X; H4 I/ u
%>
( ^3 E) M( K8 k===============================================+ g, S" D3 r1 J7 O5 h; d- o

+ {- o5 p% i. m. o8 b, d6 X还有一个用于测试这段代码的test.asp
6 L" V* V8 E6 u) j0 s8 x0 b有兴趣的自己搭建个IIS测试下
+ S7 ~) X* x. I. g0 g- F9 ~+ d<!--#INCLUDE FILE="RSA.asp"-->
- D% [, Q. U% |5 e$ O* P<%
: f, X8 f$ W( `function Encryptstr(Message) ; ]* k9 c' H- V! _- `1 `
Dim LngKeyE ' q* O! q: F+ y+ @5 ^! ^3 R' }' n
Dim LngKeyD 2 x0 e- y4 u% M
Dim LngKeyN , L- l$ u1 J% V6 f. L
Dim StrMessage
4 ~/ @9 I; z3 t, m$ x; F3 D0 Z& nDim ObjRSA . b: p8 Y8 ~4 s$ a
LngKeyE = "32823" ( f" i- i$ Q" J& u
LngKeyD = "20643"
% E5 G! W6 d5 U: T' w9 ^LngKeyN = "29893" : ^" y* ^/ d4 D/ k" _5 A/ E
StrMessage = Message 3 L& e, j3 ]) |2 p0 }. `8 X# F
Set ObjRSA = New clsRSA 9 Z( n8 E! q4 c! Q1 j- m9 X
ObjRSA.PublicKey = LngKeyE , _  C: v8 a* O" D" O( L- [
ObjRSA.Modulus = LngKeyN
/ ?' w% }3 Y) bEncryptstr = ObjRSA.Encode(StrMessage)
  G- @0 T+ Y0 E+ I) v& p8 BSet ObjRSA = Nothing * `# P2 C2 y& ^* V$ i
end function
) f2 X: p+ p; }9 j" b" p* wfunction decryptstr(Message)
- x' m$ W0 M0 dDim LngKeyE 1 m& x6 W& L. N. ~7 V' f7 ?
Dim LngKeyD
2 e$ S+ e6 H: c3 wDim LngKeyN ! d3 u2 V' B6 Z8 f4 i( w
Dim StrMessage " ]5 k  w$ b6 m2 P' A
Dim ObjRSA
; A3 k& e, f3 U( h' {LngKeyE = "32823" % Z$ Q2 d8 P9 i/ |
LngKeyD = "20643" ( s/ s& P  S2 Y# S/ k8 T6 Z
LngKeyN = "29893" 0 x8 ~( c" h; P
StrMessage = Message ( T' h/ {4 l0 Z/ z% u9 V1 w) |
Set ObjRSA = New clsRSA - p6 k% c6 t9 d
ObjRSA.PrivateKey =LngKeyD 7 ~' @9 @  ~2 z
ObjRSA.Modulus=LngKeyN ' |% U' n8 i' F5 S' |8 Q4 R
decryptstr=ObjRSA.Decode(StrMessage)
' J, T: {' ]# S' L  N' zSet ObjRSA = Nothing + P# I# S/ b4 E8 U
end function
' J1 i' b8 q8 E, H/ I# Rdim last,first . f9 P4 X5 K" o1 O
first="!@#$%^&*()"
- y; {/ j6 W( z6 AResponse.Write "加密前为:"&first ! P  n2 r5 r) D+ v/ g# c: N) R
last=Encryptstr(first)
. F3 z. Y- S$ i- |  d+ T+ OResponse.Write "加密后为"&last
& K. o! g% l' ?& V# |$ S9 sResponse.Write "解密后为" &decryptstr(last) & p, e/ l* F- l( I+ X
%> ==============================================
( B- Z& ^: [) B- H3 J" I( D3 j2 O剩下的就是字符的对照表了
3 X8 X+ p$ o5 e  s5 l0 h- f===================字符集================
& n" n1 i8 A$ L1 Y7 R: u- B1_____6EBB
5 \6 R- @" j4 P3 A2_____5C1F2 o8 p, c& F! G8 F+ ~
3_____4D75
8 F( [) y3 z! E4_____26CC) I% U. L8 T! Z+ x2 w8 h
5_____4F886 Q0 A- t- a8 ^, t4 i$ u
6_____3F4E
3 B+ w+ T- F( {3 a7_____0A9D
) c$ N+ e$ v! p/ B1 V8_____1A1C- R2 L) L( {( m6 o+ Z. m
9_____6D20
' w0 ]1 h& _& I' r' K0_____1089
  y4 e1 s, J: F% P2 C" na_____0F3E
0 f5 _; }' [; K- W2 Yb_____3159" ]) ]- f9 ?0 L: |3 ?
c_____3517
0 S9 n# k- a! vd_____419C2 w" ~3 A& j& v3 a$ h7 y- ?
e_____615C, q. t  L5 m5 p0 c9 r' g' ^: R' j
f_____556F
; s5 S9 [, \2 @+ W9 B) _7 jg_____2B7F, i! A  _( ?! f' Z/ {
h_____0F9C
& W1 [; R4 Z/ [1 L: {# w: j: I- wi_____00FA0 c! N) A8 S7 ~
j_____5A50  g( X6 U$ ?6 U, e, U# `
k_____2850' E1 P% p6 C- O! Q  P5 z8 _+ o+ x
l_____3E7B
1 S9 R" [- U' s; m( d' hm_____71C5
7 y" ^3 |" p+ u2 Kn_____1FC8
% }4 `0 h; [" z5 Y" ~& H5 yo_____74C1
4 u. A1 w" d* ^2 {; v9 a0 [p_____5FB8
: ^4 y+ C2 u& R" A9 bq_____6085" y0 M0 M. @9 x1 O* W2 u
r_____3AC4. S3 d" N& u' ?3 @3 h, g1 v7 }
s_____2F50
( E* @) C+ m$ ^* C8 tt_____36F86 j4 P& H/ n- W8 M7 n
u_____70108 f6 A3 E' Q. {) r* e
v_____0B42& m2 |1 ^& N$ C6 e1 |+ x% x
w_____1C7A
3 Y7 ^4 B9 m- `1 s9 Q9 cx_____16F8
0 E9 [' M) J  C( zy_____2EE7
) O  T# @9 r; F9 q) ~3 B, g; Mz_____5CF3
2 |* P) }; a9 t) \2 X* e!_____6233
0 t* T: V: s& Y/ {  \@_____3A45
9 |( }, K. |4 j" H( @& L#_____2291
2 d8 ~% C7 ?# c) L$_____5D5C
: V9 F& s; C. n%_____09B9
) ~1 t5 E7 t7 c; z^_____43EA# k# O0 ~4 [( A- r! H( D/ L% i
&_____62B9- O+ u" d2 L% M* b) t
*_____6301
0 _3 m1 d/ _* g/ w/ b" H(_____4659
$ l9 k5 Q" S" A- G)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表