返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm5 [% B& |- I) J! ]5 D
原始出处:http://www.3ast.com.cm: b6 n% g1 D) s+ U! O1 I

  k( e; L9 e* n2 K' O8 J看不懂的直接绕过
6 Z8 z" {: P4 F, c1 C& t0 s" W加密前为:hwy1234563 b# G" c# l  I; M7 G8 Y" a( F
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E7 v2 B+ C  w) k- q

5 v  I8 @3 j0 A9 \============================================
; y* u: X2 j0 T. y8 m上面是当时自己校内的心情。现在已经解破出来了,分享给大家
% C" U0 z8 n( ]" I/ s也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
( L# U* J/ G, L+ T8 I5 p以下是RSA算法文件
8 l. u9 W0 P( P1 L- I
7 J- _0 j; v- O4 Z1 I) a' j文件名RSA.ASP. U. ^/ C/ m# G9 O/ Q* Q
===============================================: ]3 I/ v: D, t9 h9 {
<%
$ Z' c0 q4 w, X* b* h" y2 n+ A# h5 NClass clsRSA % z: f; b. k7 k
Public PrivateKey 2 k, m0 O1 I- N
Public PublicKey
0 a! \5 |1 f( KPublic Modulus : D. Y4 \* Q' r! ]
Public Function Crypt(pLngMessage, pLngKey)
1 K4 j4 `/ H' E. |# uOn Error Resume Next
  {8 c; k6 t8 w) k4 @Dim lLngMod 0 @2 d7 b: ]4 ?/ r6 f; d% S: n6 Y
Dim lLngResult 3 A0 D2 e. I2 Z( @( y/ {
Dim lLngIndex
$ t" i, i$ h& r$ g: s, zIf pLngKey Mod 2 = 0 Then
0 v, k2 v9 V) K" p/ A, FlLngResult = 1 / J' ^* L3 c! S
For lLngIndex = 1 To pLngKey / 2 % I- U+ Y+ w# ?5 a8 y5 }1 S5 r8 \
lLngMod = (pLngMessage ^ 2) Mod Modulus $ f" t1 b% ]$ z7 p0 V6 C
' Mod may error on key generation 3 O. u8 {* {  u) _
lLngResult = (lLngMod * lLngResult) Mod Modulus
/ ^! J" }9 W& s6 N8 h& k$ }If Err Then Exit Function 8 N+ e& d& T) S
Next
* g' x: u1 ?0 T" ~9 W. }$ b1 ]0 PElse
* J! W" G) x+ hlLngResult = pLngMessage
" k! x1 Z  ^2 h* lFor lLngIndex = 1 To pLngKey / 2
- P0 ~. O( M, G3 V# d$ l  k2 a& IlLngMod = (pLngMessage ^ 2) Mod Modulus 0 t# _4 e9 [" T1 c! N8 I
On Error Resume Next
: U. [" [) {" s$ T; I$ @3 z) P' Mod may error on key generation
6 c' e/ r7 B% u1 x/ @0 z8 T7 |lLngResult = (lLngMod * lLngResult) Mod Modulus 4 \* S: E( ]: ^6 N* ^* e# x9 C
If Err Then Exit Function ) E5 d- i/ L! S$ V
Next
  m0 }  I. \* ?% M& E+ OEnd If
4 p9 @8 _6 }# H0 P. N, Z2 E$ Q# dCrypt = lLngResult 0 I; _. w! N% g; d0 }
End Function( v# D" w9 V- k1 o( a

7 }. J1 |5 c9 l+ vPublic Function Encode(ByVal pStrMessage) ' l, P& y/ g' K* F6 t: O; t2 T
Dim lLngIndex ! q0 [/ Q! f9 X; `" ?4 _+ }
Dim lLngMaxIndex
, h2 E3 q, m& Q5 u* ?3 ~Dim lBytAscii
; c6 l7 b# q9 w% SDim lLngEncrypted 9 N% {+ L1 S: [$ |3 j: u
lLngMaxIndex = Len(pStrMessage)
& ]$ L. b% u+ W, y* m: B. iIf lLngMaxIndex = 0 Then Exit Function
  d; T" v8 h4 @0 q% Y$ ]) b8 SFor lLngIndex = 1 To lLngMaxIndex / }" Z9 T  M5 f5 K  [1 K
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
1 F) J+ f; Z4 W- m7 z( k+ B. \lLngEncrypted = Crypt(lBytAscii, PublicKey) / m' ^  ~2 ]( A; o! B
Encode = Encode & NumberToHex(lLngEncrypted, 4)
% E* \& v1 \+ ]$ vNext
' J/ X, D2 z- S) i4 m; a. F) b3 J3 ?End Function
% K; x7 Z& Q) g. PPublic Function Decode(ByVal pStrMessage)
: ]: S( N  d; xDim lBytAscii
* v0 j2 _3 {1 V8 \Dim lLngIndex % A3 a/ Q$ |+ j( p8 y
Dim lLngMaxIndex
/ V4 I: ?" ^: j4 g. A5 jDim lLngEncryptedData 1 {1 s2 _# E" A# P, f
Decode = "" - U2 Z7 h- I0 R0 k" O; w6 a3 D) L  ?6 T
lLngMaxIndex = Len(pStrMessage)
4 d) [4 a, T  Y- k- ?0 vFor lLngIndex = 1 To lLngMaxIndex Step 4
& S  @3 r; \6 W. [$ s) \1 X; _- ]lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 0 t. f. i2 I" d, W$ D
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 2 N7 K$ o7 x/ e1 z) m/ {* L
Decode = Decode & Chr(lBytAscii)
; Q& S4 M3 {1 `5 g! e! m- @% _. ^Next ( j/ M/ h  c4 d$ E& `9 ?& E; Z
End Function
: X# k5 M6 Q# T0 SPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
" B& T4 U9 A( Q; n& ?2 gNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 0 V/ o, Q6 b% C; {4 P8 d
End Function
% ]9 [9 W9 x" S0 o. D: j# E& nPrivate Function HexToNumber(ByRef pStrHex) * l3 m! N4 V* P4 v# ?; |: \5 Z
HexToNumber = CLng("&h" & pStrHex)
3 D7 l# |5 n8 H2 C5 T% vEnd Function 1 }. r( \9 u+ ^- K
End Class
4 k# Q. Q8 E% j) p! x1 k7 B2 B; X1 xfunction Encryptstr(Message)
) t# x& Y+ Q9 @" g$ VDim LngKeyE ; p8 m  c& C0 H, y1 F6 E: g+ M
Dim LngKeyD & y8 Z! w1 V, r' v, ]
Dim LngKeyN : z$ Q: F; p* U$ ], U$ @
Dim StrMessage
6 ^7 \1 m3 ?0 M3 V/ l* j6 y: qDim ObjRSA ' R2 Y6 Z8 C. f4 o1 V: x# B
LngKeyE = "32823" 3 B2 h9 C$ q/ a7 ?, z7 {3 ^
LngKeyD = "20643"
9 s% Y3 q, G. i5 Q5 M# ]/ O- ZLngKeyN = "29893"
$ |8 v1 ?  X/ hStrMessage = Message
" i2 Q" Q4 v7 c7 V) U% FSet ObjRSA = New clsRSA
2 P9 V1 f+ q: L( jObjRSA.PublicKey = LngKeyE 1 I+ Q; F( M, N- S1 p7 u( B+ J
ObjRSA.Modulus = LngKeyN - k' x3 b6 ?* E9 n, S0 I
Encryptstr = ObjRSA.Encode(StrMessage)
4 g" m2 U/ V$ C" ~1 h8 K4 Q3 RSet ObjRSA = Nothing
$ D. {- W! q3 K" R, M% [end function1 K4 \% ]$ Y9 o5 s# X
Function Decryptstr(Message) , f3 m. t7 |, f" F  {
Dim LngKeyE
  s! W" p. Z3 j2 f5 nDim LngKeyD : b! E# z  \$ Y$ }2 P
Dim LngKeyN 4 F" I  N) \. f' @3 o2 p/ Q
Dim StrMessage
, l( n) k! n; E! F2 SDim ObjRSA " p* G$ ?# u. p) u! Z6 E
LngKeyE = "32823"
6 F5 R: J' @4 j. S$ k3 rLngKeyD = "20643"
: u0 n( Z" |% HLngKeyN = "29893"
) S5 T' l* x1 ZStrMessage = Message
1 z  r7 U. m% x' Q! w6 O1 b0 zSet ObjRSA = New clsRSA 8 m' H6 `# G' l, t5 `+ d# m+ t% @
ObjRSA.PrivateKey =LngKeyD . y! D1 n6 `3 r% c2 F$ q
ObjRSA.Modulus=LngKeyN + p4 N& I% ?4 z' n/ t1 }1 J* U
decryptstr=ObjRSA.Decode(StrMessage)
' e# }3 Q5 b' O, J; M4 w2 XSet ObjRSA = Nothing + x. ]$ y( l+ D! t6 K( z" e
end function   L, O+ s1 ?( R7 n: d' Z+ v
%>
5 h' D+ @5 O. h3 u8 C0 v===============================================: T. K% M0 |1 q
  W$ i2 [% @' c) W* L) Q% f
还有一个用于测试这段代码的test.asp
4 v( p: M# r, ?/ @* j% ^9 P9 E有兴趣的自己搭建个IIS测试下
) R% A; |; @/ ~. [8 N5 R2 X<!--#INCLUDE FILE="RSA.asp"--> 1 e  O0 i1 ~- [
<%5 ~6 x: w3 R/ }
function Encryptstr(Message) 7 |" m3 t; I1 U4 w
Dim LngKeyE
5 B7 S( ^  g% D( o7 ?) L2 H! QDim LngKeyD
/ R9 x7 M+ Z5 }- o) I- HDim LngKeyN
4 G0 y- {* z. Z* S6 J( A3 k# T+ e7 DDim StrMessage
7 R# D4 j0 k; fDim ObjRSA 8 V# B$ v; ^. C5 B
LngKeyE = "32823"
5 }$ U% @, B( Q  ^8 \+ ]LngKeyD = "20643"
# _# U) q6 ], d9 V* ~% |2 pLngKeyN = "29893" ; j7 c" O& G  y- C' x5 q! E6 y6 u
StrMessage = Message
) V  ~/ _% }- o% z/ f% W2 b1 T8 CSet ObjRSA = New clsRSA 2 n1 [$ d4 h! m
ObjRSA.PublicKey = LngKeyE
% B# p: m7 n- u1 ^- R# QObjRSA.Modulus = LngKeyN " c2 M  H8 C4 R2 }' e. _
Encryptstr = ObjRSA.Encode(StrMessage)
: R9 |' ?# {: x8 A! tSet ObjRSA = Nothing 2 p  f$ R* m( ?" i5 ^
end function   ^8 y' e+ u1 }3 A; Y8 d( L
function decryptstr(Message)
+ P' V% e/ |) y$ e% ~; l2 RDim LngKeyE / n) @' q: A% m2 C6 g
Dim LngKeyD 4 o5 E& A( g& L4 J& `: P
Dim LngKeyN + A& p8 F8 L- Q1 ?) e% @9 j
Dim StrMessage & ?! ^! H8 y6 C
Dim ObjRSA 9 }, f0 K) C; Y1 l! X+ `
LngKeyE = "32823" - H: n1 X% l) M% Z! z8 r$ X
LngKeyD = "20643"
0 g4 {# y( l. q2 d6 |LngKeyN = "29893"
" E2 h2 N6 J/ w/ v9 GStrMessage = Message : W$ v) t5 t9 n( O, w, l
Set ObjRSA = New clsRSA
/ k$ c) L  m+ S; ~% J9 z+ I8 u/ mObjRSA.PrivateKey =LngKeyD 7 ~. j5 n" }6 B
ObjRSA.Modulus=LngKeyN , L0 ^* ]% H8 I4 h/ }
decryptstr=ObjRSA.Decode(StrMessage)
8 ^3 M. C7 W; U! E" PSet ObjRSA = Nothing 9 F7 O7 ?2 V1 u- K% R9 k2 c* n8 n- @
end function ! m/ w: h3 o. u6 x: [9 k1 M
dim last,first 1 {" W+ W4 |; r
first="!@#$%^&*()" 0 G# ?3 H5 ?* Y, {, D$ N
Response.Write "加密前为:"&first
: H1 ?8 B. @/ l* Wlast=Encryptstr(first) * H+ t  p& L( `6 L. b8 i5 \7 k  P
Response.Write "加密后为"&last ; e! ]7 p' P3 I0 q1 o- g$ i  X
Response.Write "解密后为" &decryptstr(last) # t3 g. n' A5 X
%> ==============================================
( o* ]7 _$ j8 ^1 ]' m4 ]; }+ ]4 p剩下的就是字符的对照表了/ q9 r* @  d/ O
===================字符集================# ^$ W7 m% Y  L2 d* G1 Q% [0 s
1_____6EBB8 k6 D# s+ g) k& {' L
2_____5C1F7 l( g  R. S: {5 i0 f8 t3 t
3_____4D75
& `/ _4 N' q1 n  r8 {& K/ [4_____26CC
/ C! h4 K5 V3 H6 \* i5_____4F88
- L3 Y% f0 d: D' |6_____3F4E+ d. ]) O& {5 R, ^
7_____0A9D2 E5 I. F6 C2 E$ L" I
8_____1A1C0 I- t- |. E; }) u
9_____6D20
4 Y$ A5 @% y$ r+ }6 {0_____1089
8 R$ C: g' W. z" L( D) _: Ia_____0F3E
- J* @3 h5 L: T3 q" f3 L0 P) X7 Sb_____3159
% k, m5 ^" h1 Y& s2 \' Bc_____35172 z  ^7 ~3 v$ b7 e( s, T0 s
d_____419C
! r9 t" K$ X9 }' K8 Me_____615C
. m5 D, q* `6 Q9 ^- ]; Uf_____556F
  q, }! Z1 v! C$ X) ~g_____2B7F
; O! W7 q  D: S+ ~8 f0 }" Uh_____0F9C
( `7 ^7 J0 m2 ]# q) z4 @% Bi_____00FA3 K3 T3 F  y+ p' U
j_____5A50
- m' {7 J4 `5 @4 Qk_____2850
  j" q, c8 K% ~l_____3E7B
. p8 o4 r: ^" @0 em_____71C5
% ^8 ?% {% k3 L% R9 M( e$ bn_____1FC8
  G- W7 }# J9 Y- Co_____74C1' Q7 Z# O* _6 F; C9 A
p_____5FB8" z0 a8 a: h* U. t  A
q_____6085
' C7 Z1 \5 G% B8 Mr_____3AC4. E' U+ Z! N0 e* R2 w
s_____2F50
* n8 n2 t% }- n7 |# }t_____36F8
) _7 s/ x( {4 f, d- I  i* U$ ru_____7010' i; c. Y- R' w. i) q$ N# s
v_____0B42' [, `6 U. k( M0 w% l: n& k
w_____1C7A
+ `$ b5 {6 |: t. |, c$ @+ b" F. Hx_____16F82 `4 K# j& C$ D+ @& n( y
y_____2EE77 s+ f# A$ {* N- d  Q- z
z_____5CF3* H" J' _' \$ j& q4 C
!_____6233
/ @# `2 k6 l/ U, y& {@_____3A45
: Y3 L" T7 W, b, K/ o1 v1 L#_____22917 c! h2 l# P& z( p8 z1 U& o* W, ~
$_____5D5C( m; A* r% G  @) C
%_____09B9
0 r# a" C$ i+ X# W, Q- R7 h^_____43EA0 \5 r) D( b" Q% N
&_____62B9
" V- ]1 `+ o# @5 k*_____6301
+ S6 O. B: S  W+ C& L(_____4659
! _5 m( B; ~! E0 t2 N6 ]/ E4 C)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表