返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm$ ?0 G* V1 v8 L% E# B$ Z
原始出处:http://www.3ast.com.cm
% Y( u  r$ K9 V2 M. f
# P2 i  _& U( M+ w* k- Q看不懂的直接绕过, }0 L3 n9 ~/ m8 T- L" i
加密前为:hwy1234564 {* T- D# z: A9 G" j" R9 f. B
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E) g6 u+ J! E1 ?4 }3 h
/ f1 }4 i! Y7 }& i5 U
============================================
$ n6 c3 R1 {* z% k上面是当时自己校内的心情。现在已经解破出来了,分享给大家0 `% q& t: B! \1 a; \" K
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, u; e7 ?7 R' A$ Z+ v; l
以下是RSA算法文件
: `) y2 V. {4 l8 F8 w8 a
6 {7 n& ]5 i7 s- _* b) _0 g' c文件名RSA.ASP
& b1 y5 n4 E! x& j8 q8 x===============================================' k4 O/ P5 a7 R, x1 B
<% / b7 |7 ~* _  v$ ]. x1 N
Class clsRSA
$ W1 o1 o. `) WPublic PrivateKey 5 @6 L7 [) W, [. r" v. l
Public PublicKey
" _! x8 ]5 P1 ]& oPublic Modulus ( I( A; e% e3 |% s$ `5 m& q
Public Function Crypt(pLngMessage, pLngKey)
! i7 J# B* A3 Y- HOn Error Resume Next & o$ B; V3 j3 j0 H3 n  q
Dim lLngMod . P7 C: M. M- b7 P. k3 l
Dim lLngResult ! c/ ?& `8 t1 V* W% Y' p8 l  ]
Dim lLngIndex * ~2 s! _2 \1 ^  p0 |6 }, a
If pLngKey Mod 2 = 0 Then ; e9 ?$ A2 o' c1 l
lLngResult = 1
9 q+ K$ R3 x* L" @& `For lLngIndex = 1 To pLngKey / 2
) c5 a' V- ~7 }; U- }lLngMod = (pLngMessage ^ 2) Mod Modulus / w8 T  H4 p! a: t
' Mod may error on key generation 5 H! t' W8 {% O& o  e
lLngResult = (lLngMod * lLngResult) Mod Modulus
& K$ S/ q- r" r1 k  {8 `9 R, q+ rIf Err Then Exit Function
0 v3 Q% N# N# z# ]" K; ^: H5 O  FNext
/ e+ f, ~' O  W5 {  Z0 H0 t  f5 ]Else
. _7 Y3 e) n+ i& m; XlLngResult = pLngMessage 4 e6 f% k  D+ r3 Y1 C- q1 E
For lLngIndex = 1 To pLngKey / 2 / W5 t# P: j1 P$ @: p
lLngMod = (pLngMessage ^ 2) Mod Modulus ; [. e* R  U; v- q7 A& k& D
On Error Resume Next
2 B8 h3 [2 e% {$ D1 G/ L! T' Mod may error on key generation . S0 [3 A, {5 a4 |# B
lLngResult = (lLngMod * lLngResult) Mod Modulus
5 C2 F" B' z* nIf Err Then Exit Function
& c* b! R. }6 M- FNext 7 G) R3 x6 V! F
End If , A1 ?3 [8 N, B1 @- d( z4 r: s
Crypt = lLngResult 6 c4 l1 s" z& O
End Function
6 p6 J1 k8 Y/ x$ f; g7 k
# e; g% U, {9 M# APublic Function Encode(ByVal pStrMessage)
, z2 @8 a/ j7 a, ~4 wDim lLngIndex * G7 c! u( J* C8 r' E5 v7 I$ n! r
Dim lLngMaxIndex
* w' C5 q" }) h" N) Q$ s6 T& o0 bDim lBytAscii
# P9 K! L& h# @/ TDim lLngEncrypted
" K7 c, Z1 @4 y0 ?6 O, {lLngMaxIndex = Len(pStrMessage) ( Z4 j4 M% b7 ~, N" \" S
If lLngMaxIndex = 0 Then Exit Function
; D7 q: w# M% T8 V* e* k; h: P2 sFor lLngIndex = 1 To lLngMaxIndex   ~8 o2 p6 |9 M1 T
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) * U) S2 y6 A, ]" l! q6 c5 Y
lLngEncrypted = Crypt(lBytAscii, PublicKey)   x/ j* ]6 g/ d6 O' M
Encode = Encode & NumberToHex(lLngEncrypted, 4) " q7 Y* r2 |, O4 o2 v9 Y! i
Next , D7 R  W, p6 s+ K' ], ]8 m
End Function
  X8 Y: P' }1 S4 LPublic Function Decode(ByVal pStrMessage) / e! n8 _4 m1 e
Dim lBytAscii , w, k9 H+ G) J( {% P
Dim lLngIndex
+ r! D2 _5 v9 _  J& w0 D# [Dim lLngMaxIndex : S% C& E/ {; E+ Y0 d  ~) _
Dim lLngEncryptedData ! @! o5 {' k) b6 `% a% C5 B
Decode = ""
2 R5 g9 L! ^3 N9 n8 r3 a2 H$ ~lLngMaxIndex = Len(pStrMessage)   q: x! Y: ~+ m1 G
For lLngIndex = 1 To lLngMaxIndex Step 4 & [) B1 Y& X. m; k9 m' @4 F, x& F
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) : @. c/ S0 K& O$ O+ L  d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) + W( r8 h' f( U; I, u% {
Decode = Decode & Chr(lBytAscii)
5 o+ U7 f, [/ TNext
3 {0 o6 k0 Z0 [End Function , q/ @" L6 B% D) S% i
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 2 J9 C$ e! R2 Q: G9 M$ C4 X
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 9 Z& l) {2 t/ r/ W  G; k
End Function 6 T, j/ S/ |" d0 x# A
Private Function HexToNumber(ByRef pStrHex) ! {$ g4 G8 {* Q; q+ b! N
HexToNumber = CLng("&h" & pStrHex) / L$ ~0 c' D% f2 n! T! Q& S0 M' `
End Function ; J5 S9 n* T0 M$ u6 u2 h
End Class , q3 k( y. R/ C! `
function Encryptstr(Message) & q+ U  h4 u5 h4 \% N$ F
Dim LngKeyE
  x. o$ S1 b- R/ ^2 }2 D0 ?" y% e9 ~- eDim LngKeyD . |$ k8 t) }& r7 P/ X
Dim LngKeyN
: j; A; E' O4 C# hDim StrMessage
8 L9 @6 T9 i/ P5 HDim ObjRSA
, {, d8 j/ q, R! Y* KLngKeyE = "32823" 2 T! e9 K! I& I; ]9 i# D
LngKeyD = "20643" 0 X5 T; Y3 H; x4 v" n# g0 X
LngKeyN = "29893"
6 x# d7 J! _4 R  W6 u: ?- B% NStrMessage = Message ! z8 @# n8 R  i7 r8 ^: a1 u
Set ObjRSA = New clsRSA 2 c3 z' O0 d( V  r
ObjRSA.PublicKey = LngKeyE 5 D8 S/ y2 S- Q2 v7 I# X! u
ObjRSA.Modulus = LngKeyN 7 S; l: K; q2 _, o' X
Encryptstr = ObjRSA.Encode(StrMessage)
% L  \$ B/ u% ~# a0 [9 s/ e5 ]Set ObjRSA = Nothing " ?! P, J( f7 K: v
end function
* j) x; f; G# x" \: m! K( LFunction Decryptstr(Message)
8 V7 w0 r1 R  K, C. sDim LngKeyE 5 Z+ L$ Y+ B3 y/ Q
Dim LngKeyD
6 U! M& L; d/ |% r3 ~Dim LngKeyN
$ r2 i9 Q2 [& q& A9 u' w* aDim StrMessage
9 u, \( }$ y2 E  o1 O0 lDim ObjRSA
6 I8 g' _" i# s2 v  Y! t" F5 k# x& GLngKeyE = "32823" # |) H5 n! y( a* ?- ]
LngKeyD = "20643"
. N4 Z) d2 H4 U) Y& I9 u: KLngKeyN = "29893"   w9 ^6 S8 N$ Z: |
StrMessage = Message
7 c. C. b* d6 a1 C  ASet ObjRSA = New clsRSA + @& E% s0 [/ `" G0 E' D
ObjRSA.PrivateKey =LngKeyD ) {1 }* v) O! ^
ObjRSA.Modulus=LngKeyN
' m+ f# D; @! \# J' L% T3 i1 Tdecryptstr=ObjRSA.Decode(StrMessage) 5 R4 I  U% P5 l1 L, ]  M8 R
Set ObjRSA = Nothing + u( s6 F  v- Q" i. g5 g
end function 7 w1 Z3 I4 E( }( C8 A' ?
%>1 O: G: L  e2 f7 I" X
===============================================
9 {! \) H5 m! j" B8 N! M, X9 n# l. w- m) k8 q6 b7 g/ K
还有一个用于测试这段代码的test.asp1 }  g. Z! |8 ]7 M! T" _+ ?0 X4 |
有兴趣的自己搭建个IIS测试下7 e% ^% H: y- X" `. B5 `# g; K: ^/ J
<!--#INCLUDE FILE="RSA.asp"-->
5 h4 M3 g6 t6 x- m+ G& c% v/ n<%9 g1 ?! ]: ]) I5 P
function Encryptstr(Message) # L9 V& ^# S' A3 T+ }: }$ G
Dim LngKeyE ' g/ a+ g, F$ Y: Q" b: E& ~% Q/ H
Dim LngKeyD $ v% z, E$ V4 k0 t  \/ e" m
Dim LngKeyN * D  ?/ @" {. \" H8 a2 Z
Dim StrMessage
- h- ^( I( O! L4 ?Dim ObjRSA ( Z% ^7 y$ L- b$ J; \
LngKeyE = "32823"
2 M0 V6 _# r6 b- M* b1 SLngKeyD = "20643" : \) s( y8 J1 n, I7 }8 n9 U
LngKeyN = "29893"
0 Y' R0 C5 G" K3 j' ?StrMessage = Message 3 H  S- M- I# W9 {/ {6 v5 T4 D
Set ObjRSA = New clsRSA / F& d$ O% u( v2 I
ObjRSA.PublicKey = LngKeyE 6 ?7 S$ n$ ^' W$ `! F
ObjRSA.Modulus = LngKeyN 1 P; O1 F' t/ u' L* E1 m$ l# J
Encryptstr = ObjRSA.Encode(StrMessage) 9 W8 j. P  f! @7 n( A7 l
Set ObjRSA = Nothing
2 L  b( [4 `, ]5 Rend function + H' A. J' ]( w
function decryptstr(Message) ! U- x$ h) S) k' b
Dim LngKeyE
6 M, c2 D" d' C) `  mDim LngKeyD
, c+ F$ G, f9 ?Dim LngKeyN / d' `# T# {3 L1 q6 q+ r
Dim StrMessage , k0 U7 J2 i( x# l8 h; W
Dim ObjRSA
% h1 A" H3 p4 h+ x6 r/ Q& oLngKeyE = "32823"
- H# A0 K+ w4 T! X# v# gLngKeyD = "20643" 1 j7 h7 X" w0 a4 l/ V- c9 a
LngKeyN = "29893" & K& u  \- v) W" S% u" ?
StrMessage = Message
! B% p# ~! w) _" GSet ObjRSA = New clsRSA - _! N( G1 H) }
ObjRSA.PrivateKey =LngKeyD
+ z" m/ }5 h3 Y0 h' r6 I8 @, ^ObjRSA.Modulus=LngKeyN
* z' w* u2 K3 c- ^% G8 v: idecryptstr=ObjRSA.Decode(StrMessage)
  G& P$ A8 t* I: n& Y. WSet ObjRSA = Nothing - |2 z3 Q! Q9 q. h# P
end function
& g3 ~( ?5 e7 P3 @, m4 n* Mdim last,first ; a, M% C. I9 D. n# I: P
first="!@#$%^&*()" 7 t! O  c0 M9 X6 R' ^' ~3 n
Response.Write "加密前为:"&first & ~) ~% H( R. F9 k$ o7 [
last=Encryptstr(first)
6 q& p; {) z% ~/ |. U" o. eResponse.Write "加密后为"&last ; H- h+ H# Y. [, f
Response.Write "解密后为" &decryptstr(last)
7 Q% V  R6 {( a" J%> ==============================================' {0 ?6 ~: A% [- M. t
剩下的就是字符的对照表了
# c/ i5 o1 ?) m. L; r- Q===================字符集================
4 I$ n0 V- d$ X! ^6 {4 ~1_____6EBB
9 K/ y% ?4 Q! I! A9 d+ v: Z+ D2_____5C1F9 o3 n+ m& J% K% [0 k% t
3_____4D75# S) r, E# ]" P  ~+ d3 W% ?
4_____26CC3 D; h6 p- m& d# O( S% `' m
5_____4F88! J6 h: f" G0 h" P4 p
6_____3F4E6 y: P) {" z) s* w  }/ }
7_____0A9D
: @9 |+ _4 Q& H& X: Q" U8_____1A1C4 l& R! ]" m9 C6 \5 E- Y5 s
9_____6D20
2 i" g6 ]# T1 L' q# L5 q2 `0_____1089! ~" L* v. c' x  [; Y7 j
a_____0F3E4 t6 G9 ?" L0 V* O2 j* M( V' m
b_____3159
: i/ c' b! y5 F' g$ u+ m0 B$ @c_____3517
4 r, P: ~8 j' {. c( m2 N" Pd_____419C0 Y6 M9 p: t& R0 B3 R
e_____615C- F: Z' |) q1 u  T' o% Y8 S
f_____556F
6 T3 @. v5 \) c  _1 Gg_____2B7F/ t" J  C% F8 d. u/ V2 a2 G
h_____0F9C
" D, B3 l) Y* Li_____00FA. e  Y2 D& _5 B
j_____5A50* P. j6 X# S7 F  o; P! k
k_____2850
+ F# y3 k7 t7 C3 i/ h2 F  K, U$ M4 ~l_____3E7B2 Q$ C/ m4 f( ~+ M4 y
m_____71C5
# Q6 s$ ?/ ~6 p: U9 xn_____1FC8) t. G6 r) ^8 C
o_____74C1
! F- Y9 t& g2 E7 u( Mp_____5FB8
( R4 z$ `4 ?4 Q9 \+ l: Gq_____6085- [1 D' r- _4 m% w  U; |/ M
r_____3AC4
- t% ~/ R+ k) Y" es_____2F50
$ {6 j  ?! K2 @. o+ p$ t+ Ut_____36F8
4 L6 ], l8 h: M$ ru_____7010* C2 T5 R, W# D2 w5 f
v_____0B42. T' V) v% A4 q9 P4 C6 \; [0 a
w_____1C7A
* C; w# N; C& D5 n& x% ~x_____16F8" a  I: M# @  j- h& y8 A) u  A& z
y_____2EE7
  \# _* w1 ^- \9 dz_____5CF3, L4 P& G8 H1 C! L4 l5 \9 w
!_____6233' i$ |3 [; w/ I! _
@_____3A45
9 x$ T! z) m2 Q; \* q4 @#_____2291
' _: i1 `4 X) t% ?$_____5D5C
3 c9 n( f% o' u5 |0 p9 q  l% n%_____09B9
) H/ K0 ^# ]0 P0 D6 G; d^_____43EA
, y7 l8 Y- T$ t&_____62B9
. L, Y) O9 [% e) H6 {* Z% D9 `9 \8 S*_____6301
6 }9 m% _( [$ C' i(_____4659
& A5 L% S8 ?% c8 P, Y7 u# c/ A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表