返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
# i' n9 l- k# ]2 y8 J6 i( W* d3 W原始出处:http://www.3ast.com.cm
$ p0 S( B, ]4 w0 o/ P
% d' ]  b3 J+ Q, v1 Z4 u看不懂的直接绕过
9 V6 a* l# W) P3 W# n- v* D4 L9 q加密前为:hwy123456: E- u  s! Y& P5 N& W5 g
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 d* x0 l+ k! T) P% R/ ^/ P

- J) h9 J$ q- S8 ^" P/ y5 n4 a& i' x============================================
# @! i4 q1 r6 {; o0 ^5 |上面是当时自己校内的心情。现在已经解破出来了,分享给大家# Z2 g6 v, F- z- R  X, x+ \! q
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法0 h2 N! M$ o7 p  A
以下是RSA算法文件
5 q8 u% C% N3 s3 A8 V4 C4 M2 v* G9 U- y1 X  O" A( ]/ U8 \
文件名RSA.ASP
) f7 O; P8 K0 {( y===============================================. k, q. m. {4 ]8 H6 h; t4 G
<%
9 t& h; A( h& b* r1 Y4 a4 WClass clsRSA / W- ?$ I( ?7 X* t! y& E
Public PrivateKey 1 n3 Q9 c) L2 W* e" s! [8 K
Public PublicKey , O, L! a8 U: _8 s% ]
Public Modulus
! P5 i! N8 k3 H  T! z, M6 v/ bPublic Function Crypt(pLngMessage, pLngKey)
( M4 o& c# ?# R# {/ X/ T8 @/ GOn Error Resume Next
1 O; e8 g; ?( |- PDim lLngMod
) Q4 C1 L+ f* v8 RDim lLngResult 9 ]7 s8 |0 T0 u) G2 H4 c: a( @
Dim lLngIndex
$ \- D' x7 l$ Z0 v6 f9 n/ N5 lIf pLngKey Mod 2 = 0 Then
# ~* W/ g# S! M8 X) {2 }1 ~lLngResult = 1   r- e3 [1 U5 p: f1 j: V! b
For lLngIndex = 1 To pLngKey / 2
( U) I' \- e  T* h: ulLngMod = (pLngMessage ^ 2) Mod Modulus
5 G5 d' _0 d5 h$ D8 r% ?' Mod may error on key generation % ?# Z2 p* E- x4 g  o; M: {
lLngResult = (lLngMod * lLngResult) Mod Modulus
( N8 t5 r  q. k& wIf Err Then Exit Function   Q" u: I  O/ y" \! h1 B5 u6 a
Next , a4 O( ?4 k8 l8 C2 b5 M6 W2 ]* l5 d
Else
8 y& a* R6 @" HlLngResult = pLngMessage 4 P  ~# o" }" v- h' \& x
For lLngIndex = 1 To pLngKey / 2 3 z# F  u1 f- ~& U
lLngMod = (pLngMessage ^ 2) Mod Modulus
, o$ Z, F  n* HOn Error Resume Next 9 g7 K6 i. R3 n. w% ^
' Mod may error on key generation
# k7 C& M3 j* q: flLngResult = (lLngMod * lLngResult) Mod Modulus ( o5 `% A! z% |& P% t) L
If Err Then Exit Function
2 F  C0 u2 ~! i1 QNext ! n: _; ~: r- O1 `% t+ t8 T
End If
( e/ R5 P; a$ \- o' Y% A6 KCrypt = lLngResult ( s# N  l6 o5 ?& a; x8 R3 A
End Function1 M- x/ y' m2 h( i( X5 Z. M
: r* X- i4 ?' d* |  x6 Y7 o
Public Function Encode(ByVal pStrMessage) 9 |* R1 @% r' r. ?! ~
Dim lLngIndex
' }  A5 @( l" b0 |, w6 {Dim lLngMaxIndex
2 B8 ^9 B& B* c, K* a" MDim lBytAscii
% f5 a  a$ M! l" NDim lLngEncrypted
$ A% ~% B; V$ s" o% W5 ]lLngMaxIndex = Len(pStrMessage)
) X% R6 I2 ]1 C7 [If lLngMaxIndex = 0 Then Exit Function
' K/ T  b0 D6 S4 _+ QFor lLngIndex = 1 To lLngMaxIndex 5 T5 T, p7 K4 j% r4 Y1 A8 `2 l
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
0 z% _* F( M0 ^4 }lLngEncrypted = Crypt(lBytAscii, PublicKey)   H" t" o8 a6 _3 ~# j6 d
Encode = Encode & NumberToHex(lLngEncrypted, 4) 4 e3 c" g, \, E8 ?) L2 y
Next
: ]$ [  V. V- nEnd Function 6 u* h6 J5 u* _, I
Public Function Decode(ByVal pStrMessage)
- G4 I& h# h9 t$ J% QDim lBytAscii
  z1 I0 g1 S/ |8 o; IDim lLngIndex
! S' p$ E6 Y! y; l6 kDim lLngMaxIndex
& r6 b+ z3 p# Y8 j7 G0 ?1 J1 e9 eDim lLngEncryptedData
/ u6 D$ [3 k5 N& eDecode = "" 4 u( z2 p  m) V0 b" x9 d
lLngMaxIndex = Len(pStrMessage) 6 l: s) C) X/ m0 m% J) s) S8 i
For lLngIndex = 1 To lLngMaxIndex Step 4
8 ]% Z5 [  b7 x1 v7 @lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) : x4 x! ~4 e; [5 Q. l- h5 h
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. |: m7 b+ L& G% M* A, EDecode = Decode & Chr(lBytAscii)
+ C; C" _( |( L6 UNext ! h' t* m# Q! _" l8 y- x
End Function
3 c- `! Z' m" [' C# b9 F( |8 W' K- KPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ) O9 Z3 g$ o3 Q2 X" B/ D
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) : J# R. N! b& u
End Function
/ l2 F$ `; Q) x$ ^) A- M5 {- _8 cPrivate Function HexToNumber(ByRef pStrHex) 1 J) \6 d5 k+ X% v& V2 M, V
HexToNumber = CLng("&h" & pStrHex)
$ m' {3 ?% Y6 Q/ V! H5 qEnd Function 4 M9 B3 Q0 P# {. H% w  B% |
End Class
; G# p+ y% Z- {0 mfunction Encryptstr(Message)   {! \% r- t* w2 V* q( A
Dim LngKeyE
4 O+ f3 C& m- t- V* fDim LngKeyD : ]+ `: h& Y6 v' w, A) g4 n
Dim LngKeyN
# `0 [" ?) K# dDim StrMessage 7 z: n4 e/ }/ F# d
Dim ObjRSA * O! U9 p+ s+ C& P- ]6 Z1 F
LngKeyE = "32823" 9 ]' Y5 V# ^, B7 K8 ^; M" O
LngKeyD = "20643" 4 E9 L$ g" V( c+ v
LngKeyN = "29893" # c" G4 D% U0 R$ r: K# q: {3 s
StrMessage = Message 6 S1 E/ P- @7 ?7 z' R: P) }: F( m
Set ObjRSA = New clsRSA
( U: L4 M0 I9 M) c  F' o0 TObjRSA.PublicKey = LngKeyE ! P' m' ]0 B+ d( \) ~+ b& S- _* ]1 u
ObjRSA.Modulus = LngKeyN
4 q, M% p- n# uEncryptstr = ObjRSA.Encode(StrMessage) + M: s8 v% h& r) \; o" i
Set ObjRSA = Nothing
% L  j2 z) y6 M0 q, Y( j& E/ A" Pend function
8 Q3 @. p/ `: [4 k' N' P5 k; tFunction Decryptstr(Message)
4 w0 ^: ?5 G' x3 l, n& DDim LngKeyE / S1 F" }  Q' ~* e1 d8 P
Dim LngKeyD
5 v7 n& K1 ~; r" b1 q& ]Dim LngKeyN $ x8 G4 Y- m0 j5 Q
Dim StrMessage . _6 _  w" i6 W/ d9 \! }( A1 N
Dim ObjRSA 0 U7 e( d1 q( t' P/ d; v
LngKeyE = "32823"   u" Z1 N4 t6 L1 _/ E: E# O
LngKeyD = "20643"
& `1 N% [/ M- Y9 X5 D' VLngKeyN = "29893"
0 |8 I2 W) k& z) N! lStrMessage = Message
+ z1 K; L- v  c% oSet ObjRSA = New clsRSA ; d$ Q8 ^; i' [* B* z/ \
ObjRSA.PrivateKey =LngKeyD
7 a3 ^. I! }, ]& }) g# }ObjRSA.Modulus=LngKeyN ! y2 M3 Y: [( U, W- Y5 {& w2 R' l) t) T
decryptstr=ObjRSA.Decode(StrMessage) # ^' d, }2 x5 ^9 b% x1 p4 p
Set ObjRSA = Nothing & l" Q, o& R. y" P$ K- h
end function & M+ U4 |, q8 p& m8 L
%>8 c, ?+ {  L' V- g0 ~
===============================================
% _( C. W, ]; E/ O3 X  B
% t  L& w  ^( D$ n3 M+ _0 V还有一个用于测试这段代码的test.asp
! {9 R4 }7 v' C有兴趣的自己搭建个IIS测试下
' p- x; d! p6 f0 U, A- T8 C& I( F<!--#INCLUDE FILE="RSA.asp"-->
5 ]  Y+ Q5 k/ p4 |" v<%8 z7 \  I* B0 E  C4 D2 u
function Encryptstr(Message)
, X* `! F9 k( Y* ?0 w4 J) eDim LngKeyE . ?' B4 J% d8 m# A) L' y' B0 [
Dim LngKeyD & |- f0 y0 z5 J# x. V) ?
Dim LngKeyN 3 w6 K0 B4 E7 }7 A4 G
Dim StrMessage 0 \, N: W& I4 b% f( I) N
Dim ObjRSA
: i3 H% g! [( S7 ULngKeyE = "32823" 3 H7 q- Y' |% z: q
LngKeyD = "20643"
& Q! p! L2 b% v8 G( G" qLngKeyN = "29893" 2 U4 `, {5 ]+ ?; k
StrMessage = Message 6 l2 Y2 p' C" K% ^9 S& F
Set ObjRSA = New clsRSA
$ U3 j* M7 N. q- c! z! pObjRSA.PublicKey = LngKeyE
; h1 m' s3 b! I6 g0 r! [9 D, hObjRSA.Modulus = LngKeyN
9 t2 V% H0 I: G0 d+ k- }Encryptstr = ObjRSA.Encode(StrMessage)
0 G+ r& [- n  @$ E; y( K, h6 w$ YSet ObjRSA = Nothing - {! f  h3 b0 U
end function
- M! v: t2 a3 I  ~! Nfunction decryptstr(Message) 3 \+ a# Y7 S, F% b6 H
Dim LngKeyE
' T/ U7 ]/ [- ?- j& ]Dim LngKeyD
. y$ {5 W0 i0 f7 {5 jDim LngKeyN
/ A: K# K1 p2 H1 aDim StrMessage , v8 [5 R% c$ l5 F2 {+ W% \1 t
Dim ObjRSA
1 g; s! d4 G' X" X) c4 ]LngKeyE = "32823"
5 |2 f4 s9 @# oLngKeyD = "20643" - S8 C( V5 o$ y1 x& D' k6 q
LngKeyN = "29893"
1 e4 G7 `+ q& F+ [0 CStrMessage = Message 7 z) _* Z0 S) n" |  O0 G% i
Set ObjRSA = New clsRSA
: N0 M9 d, Y0 R2 xObjRSA.PrivateKey =LngKeyD
6 b: {  f. L7 s) `ObjRSA.Modulus=LngKeyN - _. {; o* V% X/ o
decryptstr=ObjRSA.Decode(StrMessage) * V( D' \5 Z+ g* P
Set ObjRSA = Nothing & F! h! Y/ c* T" T2 Y% ~+ l; ^
end function
) q) @7 O+ I6 q3 ^, h0 y2 R1 ^) Idim last,first
. i- ~! a  z7 U! h) j7 V' ]first="!@#$%^&*()"
7 D% r! A6 K  y* M3 GResponse.Write "加密前为:"&first
) w7 x! s. k; V6 Z4 P! T" M! W2 Hlast=Encryptstr(first)
2 V+ r, V: f0 o# P; z1 l9 @  MResponse.Write "加密后为"&last
8 g1 n9 h3 G' d) t2 lResponse.Write "解密后为" &decryptstr(last)
' o4 R% ]. v2 l( S%> ==============================================
" L& I% ~- j, K' L5 T剩下的就是字符的对照表了9 x$ e( ^2 U0 p0 _  H
===================字符集================
7 v% L+ }* M! l1_____6EBB0 y( u0 n7 O5 G: |& [" x
2_____5C1F
3 m8 G8 ^) t( ~+ j2 ?1 R' s6 b3_____4D757 q0 q' {) Q  [7 o, G' j2 E( g
4_____26CC
- n; H( n) D1 K+ {5_____4F88, n* i+ r, X1 ?4 N3 P
6_____3F4E
, x, D" |3 {0 H* ^; k6 J& t6 _7_____0A9D( [7 U' B7 C/ k6 ~: j' J' _
8_____1A1C+ f7 r& B$ [, y0 \
9_____6D20$ U0 i& q( b+ N0 S* h! F/ D2 c# p+ r$ ^
0_____1089, p. h+ }8 u- x$ Z' L
a_____0F3E
5 n  k7 U7 ]  u' Sb_____3159/ p/ }1 A7 \- }% _" u9 j- r1 }
c_____3517
! a4 k9 a% W/ i4 f1 o0 N4 _d_____419C
6 b0 ^' ]3 n: ne_____615C
' ^& W6 M4 E$ v# m" n: ^f_____556F% U( b& n+ r& l% o3 m8 l
g_____2B7F6 z  G8 b+ \! w8 t
h_____0F9C
& ~  {/ i* p# {% }i_____00FA
& @+ w9 ^9 J7 I1 V, F# Mj_____5A500 C" a0 Q% k! u% G: Y
k_____2850
  P9 @) @! w* f3 X# c* _l_____3E7B
$ X5 D* o) h7 s8 v) Em_____71C5
5 k3 Q. h% m0 |' X! An_____1FC8
6 z. o/ H6 D  c* L$ Zo_____74C10 g& R6 A2 _3 ]+ W! c' N
p_____5FB8& H$ D4 a+ |, [' T6 N8 ]  p* B( U
q_____6085
# h- r6 }* ?! c# }, S+ cr_____3AC4) _, K. G/ o0 o7 l* u! F; P* }5 S
s_____2F50
( g6 f: w2 o' G6 C* q; v; c9 [t_____36F8% `  v0 M3 Q! `& L( `
u_____70103 a6 Z/ E2 r0 ?; q
v_____0B42
1 K) t, L8 p0 z! p0 mw_____1C7A/ \3 p0 f0 r# E# t9 g: A
x_____16F8! Y9 S0 @1 F- A! G( G4 Z
y_____2EE7- \) D/ h9 {: L; w
z_____5CF3- O' j  `8 F( o+ k6 e7 q  Y
!_____6233
6 i4 j/ u" x' O$ N+ H6 f* Q@_____3A45
9 K: d4 k0 i1 L5 A/ X, x: V#_____2291# b! j9 n' |# h" H+ b, k  m
$_____5D5C% B- L/ J+ \( _
%_____09B9
0 L8 q5 Z" b4 W1 p9 [* \- o^_____43EA: b% i/ h# ?6 i; Y/ l* }5 P& C* A
&_____62B9
0 _  h; m. g- N+ Z9 A' z; |1 g*_____6301! B3 N0 T! e" Z3 ?* B. h
(_____4659
: u. v9 b. N- U2 X)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表