返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm8 M1 d" _) \( f; y5 l) S- S- m% D
原始出处:http://www.3ast.com.cm
: |; N) N3 x! C( L! t8 O  @$ u/ F; X, Y
看不懂的直接绕过
8 U# f% `+ ~$ x( _6 q7 N加密前为:hwy1234569 P6 n/ o8 g8 D" `$ J
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
0 m1 R( n. m2 `4 D" |$ b
7 D& y! b6 N8 `) r============================================3 ^; L# i! w% \( v, P# z$ d
上面是当时自己校内的心情。现在已经解破出来了,分享给大家8 U  V7 J/ j5 S- v6 O' Y- w, W; e
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
5 Y& C' D  M$ d) n) j0 x以下是RSA算法文件
6 X' P( j4 K; U0 w9 A! z) k! z5 q5 i  H5 T5 Y. P5 Y# M
文件名RSA.ASP, T! Q6 V$ R% N% p6 Y
===============================================
4 y1 M2 d, J; d- E- b( z<%
3 f+ v8 q  B$ a& Y) X- Z' \- wClass clsRSA / c- n: y: y  o4 ~6 H  U# v" I
Public PrivateKey
8 c' r$ m- B" N0 H$ J6 _Public PublicKey
1 _& F+ t' U; F: WPublic Modulus 3 Y5 s3 o) ]( V8 F
Public Function Crypt(pLngMessage, pLngKey) 1 a# J% N8 L! ?
On Error Resume Next / v' x# ~- _- F. ^" a/ j2 D( ^2 |
Dim lLngMod 2 s# F! L" `0 K5 A. X% P
Dim lLngResult + J2 L! d0 ~' Y# O
Dim lLngIndex 5 r" q4 _& r5 j9 q  V
If pLngKey Mod 2 = 0 Then 5 D- k2 z* \0 s$ b- _- ^1 L* |
lLngResult = 1
9 Y4 d: D" t! R  y! p  u& @# _5 ?For lLngIndex = 1 To pLngKey / 2
! s6 [7 @! \; elLngMod = (pLngMessage ^ 2) Mod Modulus 9 _# B# `. L1 I* k9 J
' Mod may error on key generation
# V; O4 |  A2 f% M7 f+ dlLngResult = (lLngMod * lLngResult) Mod Modulus ! q3 a4 s; E! q  d
If Err Then Exit Function
# P6 ~; \( ]; W) WNext
, G2 f5 I& D! H0 b( W: \Else 9 f+ \+ ]' G+ i/ Q3 B9 R$ K0 h) D; A
lLngResult = pLngMessage 8 u; B; q3 I  ~8 u' ~
For lLngIndex = 1 To pLngKey / 2
6 _3 }# \: z& p) p' s3 [lLngMod = (pLngMessage ^ 2) Mod Modulus
* t' \+ z. w" e8 {4 Z# vOn Error Resume Next
4 |( W6 u* U8 U) i* r( o1 F, Q% l' Mod may error on key generation
8 Y- K& E& z5 \" J5 I0 d# [% u. PlLngResult = (lLngMod * lLngResult) Mod Modulus 7 a/ _) b: n! B# B) L
If Err Then Exit Function
' p, e' C* b& ENext ( b5 H0 r2 T9 p' y# Z7 @
End If
& D2 b6 D' c& SCrypt = lLngResult
& z7 P* U+ E& i# z- T' vEnd Function4 M; r# t2 h3 w/ Z2 J
% v& ?; g2 M) L- D. |
Public Function Encode(ByVal pStrMessage) 2 D- m  u3 X) |& `9 M- w% t1 m
Dim lLngIndex
4 U/ }0 d& ?+ [' F3 R/ V) SDim lLngMaxIndex , Q4 x- C$ q, q
Dim lBytAscii ) y5 o# x% a& H9 d
Dim lLngEncrypted
" h% x# V% J- ]4 Y* qlLngMaxIndex = Len(pStrMessage)
3 W; [6 P; Z, ^If lLngMaxIndex = 0 Then Exit Function
. o# i0 u' P1 r' }! {For lLngIndex = 1 To lLngMaxIndex ( f% g1 e4 L% l+ k" o2 w
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 Z! X: b' ], f
lLngEncrypted = Crypt(lBytAscii, PublicKey) : q4 K0 V1 B: b) A! ?" W7 x
Encode = Encode & NumberToHex(lLngEncrypted, 4) 9 q" O- Q/ {1 W" I: j& J3 X( r) l. o
Next
) H6 h, t  \, J% @End Function % r, {. J. Y- }. q$ P' ~  o
Public Function Decode(ByVal pStrMessage) , Z& U2 R' g# m$ z$ c% l4 V# \8 L; L
Dim lBytAscii # @' A, z$ d* y$ |' l
Dim lLngIndex
5 o  G- M2 C) v- yDim lLngMaxIndex
7 }2 D2 b6 a; z. o  m  }Dim lLngEncryptedData   T. S6 r! t% v% g- n
Decode = ""
' D, ?) Y) ?* v/ }4 ZlLngMaxIndex = Len(pStrMessage)
, V; c5 k. v3 [+ P3 v. H$ DFor lLngIndex = 1 To lLngMaxIndex Step 4
8 f7 o4 W2 P) L0 R0 l0 wlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) - R. `& h% ?) ]! l. M& p
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
3 Z% }6 y+ y( k# Z6 ?3 `/ XDecode = Decode & Chr(lBytAscii) 4 T. Z% L, q) }, }2 [7 ~
Next
* Q4 J( i2 p0 |( T/ x% zEnd Function ' Z4 M2 q; G" v. m: {2 t( w( J
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
6 {2 p% p% n! z6 Z% k: f  E. |# vNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ( ~! X: }  j. K: j, f. Y
End Function
- ~/ a! ?9 x' Q" c6 N( j6 i' OPrivate Function HexToNumber(ByRef pStrHex)
$ V- w4 d5 {% L9 l3 q# qHexToNumber = CLng("&h" & pStrHex)
. `; X% s5 ?4 T: MEnd Function
% f8 y' [* p; N9 K2 V" hEnd Class 4 O# c+ z4 U2 S7 S9 T6 w! W
function Encryptstr(Message) 4 I; x. h8 E0 h: D+ H0 ^' T
Dim LngKeyE
- C& J- E" x7 P! KDim LngKeyD
; P+ m9 Q$ j8 P6 iDim LngKeyN ! {, b- }: p. Z  f6 w: b0 |- i5 B
Dim StrMessage 1 y, R$ Y8 Q# @# D5 T
Dim ObjRSA
: \. H0 C7 v) X( d* ~3 W! W. bLngKeyE = "32823" ) T6 }+ }' W- a. @8 D- k  A
LngKeyD = "20643"
4 t. X; d. d! o* m% P. _1 {; L. vLngKeyN = "29893" 1 C" ~6 D% F+ b
StrMessage = Message # e8 w3 Q  L2 O+ _% A& Q# c3 _
Set ObjRSA = New clsRSA # P( n+ |, ^& B) b4 S) w4 g
ObjRSA.PublicKey = LngKeyE
  [3 G( _* ?0 G/ b* ]) q; f5 MObjRSA.Modulus = LngKeyN
# J, Z1 }, c: ^2 o  Q+ D0 KEncryptstr = ObjRSA.Encode(StrMessage) * y( H9 l2 d; T0 k1 T' k
Set ObjRSA = Nothing ) {- C6 o+ E8 R: }6 z* p( j
end function
8 E7 |/ m% J, U1 K- D! a$ P: JFunction Decryptstr(Message) ! \+ a0 e9 K* ~6 D2 Q' Q3 W2 R
Dim LngKeyE - [% u& {# T- ~' k0 ~: s: o
Dim LngKeyD $ I* {! [) s4 P9 e
Dim LngKeyN / l2 U2 Z- f6 k9 s; `
Dim StrMessage
3 [: }& R$ d  xDim ObjRSA
5 T; ~" }5 A2 o8 \5 gLngKeyE = "32823"
# u5 i- x' a+ b5 s0 eLngKeyD = "20643" $ y* h5 b, `/ m! y! _3 L! k/ |
LngKeyN = "29893" ( i$ o. {  }( n  l- J- \8 ?2 m
StrMessage = Message 8 D: E) k- `1 I! m. [5 w
Set ObjRSA = New clsRSA 9 \9 y0 v. I' o8 @$ V6 [
ObjRSA.PrivateKey =LngKeyD * c) p4 l9 B5 z2 f3 [; V
ObjRSA.Modulus=LngKeyN
4 M6 X: y# x9 a7 M3 Ndecryptstr=ObjRSA.Decode(StrMessage) 8 \* }: |( C/ v5 y) L5 h
Set ObjRSA = Nothing
1 c+ m4 D( _  @end function
$ I1 c2 B2 o0 {) ~%>
$ b+ j, l* ~9 l) \8 h/ k; Y===============================================0 I! Y4 @: j! ^% @. Y, m7 m! t9 v

2 W) ^) U) `) o: o3 H还有一个用于测试这段代码的test.asp
( }9 O; |( O6 Y! K) L  Z有兴趣的自己搭建个IIS测试下
  q0 f; ^+ F0 ?) m6 _<!--#INCLUDE FILE="RSA.asp"-->
  Q" f7 Y! X% h. Q: P<%
2 f; y; S2 R* @+ Y- m# Afunction Encryptstr(Message)
4 l1 T& {4 d8 [" PDim LngKeyE , u$ Z% i7 j7 y+ m( q- Z
Dim LngKeyD
2 `$ U( |) ^; T  ?Dim LngKeyN ( Q0 F) A9 L, K; f1 r
Dim StrMessage   B0 M5 d" F  k0 }  w( V, x; W
Dim ObjRSA 4 w/ ]5 J! j. S$ T& r; g5 m) \& _& I
LngKeyE = "32823" ; e! W0 M2 o" ?3 z! k0 e- M7 D1 j
LngKeyD = "20643" ) E6 I# k# {9 i2 Y- ?
LngKeyN = "29893"
9 n) I4 z, ^9 p+ uStrMessage = Message " m- I/ U9 a+ o5 A
Set ObjRSA = New clsRSA
% Z! u- F) j+ B, h% H3 w/ @/ RObjRSA.PublicKey = LngKeyE
6 P+ I) Q& r2 x$ M: `ObjRSA.Modulus = LngKeyN ) L$ u  g) v  B) w1 e2 j" C( }: C
Encryptstr = ObjRSA.Encode(StrMessage)
# \& Q/ t3 ~1 S( V- U9 [- [Set ObjRSA = Nothing / p$ a/ v! W3 U
end function " }0 E4 D( q7 c: q  U( [# i
function decryptstr(Message) ! ]' r  g* }; m$ a
Dim LngKeyE 1 g0 x, F. a' ]" @6 X" D* C$ E
Dim LngKeyD
4 A5 g1 ^" Z) T) }! Q" e6 qDim LngKeyN 8 u: Q) |0 ~; g% W; n
Dim StrMessage   \% }8 M6 F6 Z- R6 ^
Dim ObjRSA & g$ C/ ?  Q8 z$ }7 ^7 P
LngKeyE = "32823" . z$ L) w$ y% C
LngKeyD = "20643"
6 z. k, D$ {) T9 o; V$ S( V* }. U8 y0 i# vLngKeyN = "29893" & v% Q: {3 h5 k
StrMessage = Message
7 R. t, ]8 L! w- m& c9 N6 M2 v. \  WSet ObjRSA = New clsRSA & r2 W8 u8 a$ d3 s# V7 q5 Y+ p2 ^, v, h
ObjRSA.PrivateKey =LngKeyD
( [/ }% Q" D8 c, g+ cObjRSA.Modulus=LngKeyN
; d% p" v! ]# g" L1 _. b) w- ^0 Vdecryptstr=ObjRSA.Decode(StrMessage)   E; G4 ]9 ?& z7 W
Set ObjRSA = Nothing - B) e# \% x/ o% a! |
end function
- r: C- G1 T3 y8 }& a$ idim last,first
+ t; l7 ]4 g! X4 O5 Y1 ufirst="!@#$%^&*()" 3 D, H3 y$ O2 l: a( b
Response.Write "加密前为:"&first
% L2 V, p0 X  U% s# R/ Ulast=Encryptstr(first) ; F; V# h* o* T; T% a
Response.Write "加密后为"&last , r; ~! @# f6 Q8 C6 \
Response.Write "解密后为" &decryptstr(last)
# y( W% w0 A5 C; o- j%> ==============================================1 c7 p/ ?$ M; X: Z
剩下的就是字符的对照表了
( R/ Z8 S5 E, I9 V7 ^: ?===================字符集================# l! @9 X: j$ c$ H6 ]% H2 G1 A
1_____6EBB5 Z2 P8 N$ B) {' c& p: i1 Y% j
2_____5C1F
8 f$ E9 z* |6 o# E3_____4D75
5 o) S/ a1 M5 d$ A& a# ]' M+ ~& ?# f4_____26CC
8 K3 A2 n* x' e. \5_____4F88
' E( E5 `) S4 L; [4 a' h- q6_____3F4E
9 c. I$ S" e4 Y: _5 A5 A7_____0A9D- c" N6 ^# y2 ~3 }
8_____1A1C
% s- d! o5 q% M% n9 R( S) w4 H9_____6D205 J) l( [5 v9 |, q" C1 Q) o
0_____1089
, i- J2 t( R$ s0 M8 l# t* Fa_____0F3E
. y' L* J) `* E) Mb_____3159
1 u* g, b% }2 L0 N9 Cc_____3517
7 I1 f- u, Y, ]9 O4 f4 u4 k: G! hd_____419C- m5 H# [! H1 \$ a1 b* _
e_____615C
" F4 C5 T2 l( A, p3 I# z  E$ if_____556F7 j" C) U8 }- ?7 F6 j( D
g_____2B7F& H% K9 [" O" T5 Y' _1 O, }
h_____0F9C" d* I$ ]& x; D9 Y' h( b( W9 {
i_____00FA$ i! Y. d) x: G! o
j_____5A50
# r9 Q- ~; [( {k_____2850
4 q/ A" Z5 U0 J0 h2 Tl_____3E7B
1 U1 p0 x" x5 qm_____71C5( V- M4 U% y+ o: h. R5 \# c
n_____1FC8
4 V% W$ x4 z* ]3 v9 S6 j8 I1 To_____74C1
+ {2 r5 l* A& s# H6 k, ^p_____5FB8! F/ H, s+ w6 Z! k
q_____6085* B, [( R! n) L  k
r_____3AC4" [3 y4 F8 Q  g; x4 ~6 ~
s_____2F50
1 k) j: h' w; E! q4 `* |t_____36F8
6 V+ S4 @0 y! A* n- l: ~# Uu_____7010
, F& k# X# l/ _- k/ s, Jv_____0B42
9 c: V; D7 c( aw_____1C7A8 V: \4 D$ ?2 L8 _- K* H
x_____16F8! `) s* V2 i6 a
y_____2EE7
, h6 d) {. U% r/ `z_____5CF3
& S, X4 |- T8 o6 V; B' i1 I2 I!_____6233
! T  C/ \) H7 R6 J@_____3A452 Q0 y& r+ J9 A+ D7 D0 O2 x& g$ X
#_____2291
" Z- p# U$ C0 n& _) @: u$_____5D5C
3 T+ o( `9 x8 c) _" u%_____09B9
  E, z6 s/ \# R, x4 E6 t5 p- h^_____43EA2 }5 t% m; F. V) _& Y8 C
&_____62B94 j# r/ t4 t/ y% E& q
*_____6301
$ c. A' `1 A# A( R1 k3 s(_____46594 L; Z% y, S/ c: W
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表