返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm  N! h4 u, }, ?; E3 J
原始出处:http://www.3ast.com.cm! ~6 H0 R1 R( o, m

3 i) l+ `. P/ t看不懂的直接绕过
9 T9 x% a- }7 T; \% x, b+ m6 E- o/ ^4 w加密前为:hwy123456
! {2 B0 u# [7 W! ]4 R- k加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 H3 g3 p4 P/ ]& p6 d) ~; a3 `8 y7 f1 W
============================================) l" c* z0 K5 x* D3 p
上面是当时自己校内的心情。现在已经解破出来了,分享给大家1 W9 ^# z/ U/ A9 l# |
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
5 a) S8 z) H# s! _. R, G2 Z( H以下是RSA算法文件- b2 R3 z; i, P; v1 M
2 p& I% E- j  u# N
文件名RSA.ASP
+ j1 G6 y& p. o, t0 q. e; @; J. t===============================================
# R$ m) m+ c3 q' U<% 4 F4 F9 J. Y; F7 U* [7 _
Class clsRSA
( a8 T4 N% o4 X5 E2 I: LPublic PrivateKey
5 _- q5 J7 H! h5 R) d0 W, ]: bPublic PublicKey
" n+ N4 ^* W8 n$ TPublic Modulus : g* ^7 p+ G% H. A# v
Public Function Crypt(pLngMessage, pLngKey)
+ d( e  ?0 @  b8 f- M1 kOn Error Resume Next
( t/ G8 F) k4 d6 W# HDim lLngMod
. a% w* _# W, z: N7 q# K2 SDim lLngResult
4 S5 o5 s( ^9 {# [  g6 oDim lLngIndex
0 a7 p1 ~1 p* t0 H5 uIf pLngKey Mod 2 = 0 Then
" R+ O3 O; r1 G. G  c8 ?. S# `" v9 OlLngResult = 1
; W- f. E& v" u5 e* z2 N+ bFor lLngIndex = 1 To pLngKey / 2 - v/ r: L7 h7 I  |, V! ?
lLngMod = (pLngMessage ^ 2) Mod Modulus
9 b& E- I3 ]  f7 ?! F: L! C' Mod may error on key generation 9 c5 v* f# V6 c. k' l8 @, [
lLngResult = (lLngMod * lLngResult) Mod Modulus : O) ?7 z' n6 ^9 r3 D
If Err Then Exit Function
2 N$ Q0 z* M, |; M! \Next ! L6 a& I6 X; m) {9 c& t
Else
( j; L* {5 F" O1 q7 N( O* l4 QlLngResult = pLngMessage
9 l; |5 T; ~: n  m) V; XFor lLngIndex = 1 To pLngKey / 2 / [3 A8 S0 y6 E3 N
lLngMod = (pLngMessage ^ 2) Mod Modulus 2 ^7 D5 z! _( ]: I9 U, G) z
On Error Resume Next
% t% Q2 e- s# T% m; N' Mod may error on key generation
( p5 r4 r# ^9 \4 N8 W& t4 `0 w9 ClLngResult = (lLngMod * lLngResult) Mod Modulus
# W6 C; q+ c; p% v3 K# b& {! FIf Err Then Exit Function
7 u- Y8 F$ B# L4 ANext 2 d$ S3 I  W  b$ @6 Y
End If 7 t# Q6 K: T5 E$ g2 q& p+ V
Crypt = lLngResult ( B) |6 Z% }8 Z: n  F- u
End Function  D# Q- v# \7 d# B" F* s6 ~
" b% x9 O, K/ n; Z' i( X
Public Function Encode(ByVal pStrMessage) % M4 @3 A$ ~" y9 o
Dim lLngIndex 5 _& D& F. o/ J& d/ k/ E" I/ [/ r
Dim lLngMaxIndex - f" b: p+ v+ x  G
Dim lBytAscii & k6 L- r- f$ t4 ^- T( R8 P. A
Dim lLngEncrypted 8 n4 R7 ^' d) j% n! B
lLngMaxIndex = Len(pStrMessage)
8 p2 Q4 j3 D# c- A# vIf lLngMaxIndex = 0 Then Exit Function
$ d9 [$ i# H0 b( P: ?For lLngIndex = 1 To lLngMaxIndex
$ V+ c7 |. q/ p) }; k# }lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 M5 g+ [7 \9 H: g+ f: @; TlLngEncrypted = Crypt(lBytAscii, PublicKey)
: Q0 `' g. K8 ~% ?- h1 HEncode = Encode & NumberToHex(lLngEncrypted, 4)   o% ^* n& _- D9 m3 g5 O, G
Next   q& P9 r1 M6 q" }* g8 |, V+ w' d
End Function + p$ @1 o' F* ]8 Y4 I& S4 K- |. `5 K
Public Function Decode(ByVal pStrMessage) ) W/ u, m4 L# w- [, m# R! X% c7 L8 p& o
Dim lBytAscii
( i% d" Z( p' B+ ]3 b# cDim lLngIndex
  N' g# P: \. k+ G  q& sDim lLngMaxIndex
: K3 Z6 R: |$ X" c! _1 y, c. @Dim lLngEncryptedData
, U, C6 X7 E, I5 H- S1 lDecode = "" ! N; W9 C: K; S2 b
lLngMaxIndex = Len(pStrMessage)
* v1 K- _9 t- k" v  }/ A3 ?For lLngIndex = 1 To lLngMaxIndex Step 4
. \# T) o; b, |  dlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) - P  \: r/ x9 Z. q
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) * K* x+ u& k9 E& z
Decode = Decode & Chr(lBytAscii)
! j5 D6 p: y8 m. e. L1 n1 gNext
6 w4 d7 J2 V4 ?3 p- Z: KEnd Function 7 p$ }, k4 O. G, N
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
, G8 H% G$ |; E# ^& N# P8 s: pNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 2 D& l4 G- S5 J1 W, T, H
End Function
# N1 V1 q) o( O" kPrivate Function HexToNumber(ByRef pStrHex)
) p. ~1 \" T: x& ~HexToNumber = CLng("&h" & pStrHex) 8 ?/ g! b+ ?1 t
End Function 2 c- x: l/ f2 ?; Z
End Class
8 {2 V- V! y7 A+ pfunction Encryptstr(Message)
4 ~  m% |' e! V% y( C( tDim LngKeyE + G# d0 y* p! P5 w
Dim LngKeyD
& V4 O+ H) M& a% vDim LngKeyN
* z9 U  e2 n' jDim StrMessage   W9 C% j8 H  j  b5 C5 K6 b/ f$ M5 a
Dim ObjRSA
7 v7 X7 r3 h7 ]6 z3 A. b5 sLngKeyE = "32823"
( Z9 K9 c  ~" P0 qLngKeyD = "20643" 5 T+ w) t, V0 y
LngKeyN = "29893"
' L$ a! a8 f( ZStrMessage = Message ) I$ d1 s! S8 C
Set ObjRSA = New clsRSA : ~  d6 Z* W6 H2 I3 [
ObjRSA.PublicKey = LngKeyE
) [5 G9 d; q% a0 g6 EObjRSA.Modulus = LngKeyN 0 X- ?- @! d6 r# N) E( J: A
Encryptstr = ObjRSA.Encode(StrMessage)
) }5 l3 j  q0 [: K2 w  P: ]$ h, hSet ObjRSA = Nothing
9 g  Z8 L, z. d, aend function
1 f! E9 \) d) eFunction Decryptstr(Message)
% `8 b' Y# \' BDim LngKeyE : ]$ i/ D# a+ \
Dim LngKeyD ' _1 Q& u9 c2 l  l
Dim LngKeyN / z8 C. S* L3 i( W$ @" e+ e0 G4 d  T
Dim StrMessage ) {, R# W( m! A3 V
Dim ObjRSA
0 U0 S+ }+ K6 V! V3 c2 }: ?& G1 Y0 Q8 ?LngKeyE = "32823"
0 f& S/ ^8 N; ILngKeyD = "20643" 3 J5 |  }: J: i5 x
LngKeyN = "29893"
9 h* Z$ a4 _. f5 R; TStrMessage = Message
; ]' r$ h: \- A3 D4 h4 V6 dSet ObjRSA = New clsRSA
6 ^* J( E$ @0 F. w9 Y7 ~ObjRSA.PrivateKey =LngKeyD
# m$ |/ L6 F3 ^9 p3 ?/ }+ gObjRSA.Modulus=LngKeyN + p- L6 Q; t9 e
decryptstr=ObjRSA.Decode(StrMessage) ! m# p+ L- o) C+ K
Set ObjRSA = Nothing
, l4 m# `' G- x) F' G" W1 Zend function : u- L- o. r4 C/ U
%>
5 ^5 Y' E  E* ~: i- ?===============================================% H) V3 k0 n5 k8 v$ H1 M5 X
& G1 o- t/ _& ^/ h0 i6 V7 ~4 B4 W
还有一个用于测试这段代码的test.asp
2 N3 J7 H; `  `2 N' o* w有兴趣的自己搭建个IIS测试下
& E* T+ y& P3 t3 o4 B2 w+ j& e& |<!--#INCLUDE FILE="RSA.asp"--> : d; S1 _" J' x* ]" e1 t
<%: T4 O5 j4 k5 r7 b+ J: H% X
function Encryptstr(Message)
  Q6 D$ p+ x( M# U, w0 MDim LngKeyE
) V' n  ~8 f7 R6 c5 b& eDim LngKeyD 4 i6 K! a1 @# k7 v6 y& s7 o$ |
Dim LngKeyN
8 j7 C3 z" \1 K2 d" X( jDim StrMessage
* j2 P4 {6 K" K2 s; ]Dim ObjRSA
. y; T3 c- J8 t2 \LngKeyE = "32823" & u* q8 c. D, @. T' @
LngKeyD = "20643" 6 U( p+ K5 q: X( y# q7 w
LngKeyN = "29893" + T/ n) k. W0 \2 H1 y* G/ Q
StrMessage = Message ( p* D. {4 s# D" N
Set ObjRSA = New clsRSA 4 }* T1 Y7 x2 g1 D4 i
ObjRSA.PublicKey = LngKeyE
7 b, i8 L( m4 }) }. I: p1 FObjRSA.Modulus = LngKeyN
+ W1 I. ]4 \4 rEncryptstr = ObjRSA.Encode(StrMessage)   C$ r8 ~+ `4 t2 w, d# J7 @; q
Set ObjRSA = Nothing
: u) N/ E0 h. H1 rend function
2 r7 u% L- k: m- r* E7 ?6 m% Nfunction decryptstr(Message)
/ q2 g/ G! Q" F, q1 U" X2 KDim LngKeyE 3 k2 u; S; ?: }7 O8 P: B1 W' w
Dim LngKeyD
8 Q/ H/ D# `4 `0 GDim LngKeyN
* I4 x2 R/ K5 }3 qDim StrMessage
' e! `2 e, k7 C: S. `; [& rDim ObjRSA
& f$ g- F% Y2 g- Z. d7 u% ]2 HLngKeyE = "32823"
- a, J; r; p2 T: D. p3 P% g2 v! T2 MLngKeyD = "20643"
6 f. \+ w! e0 `% x5 l1 F3 j+ BLngKeyN = "29893"
) K9 c7 K6 |9 K' Z$ Y3 wStrMessage = Message * Q' {8 E4 X% M8 m, R& ?
Set ObjRSA = New clsRSA
/ ]9 j7 u; w- qObjRSA.PrivateKey =LngKeyD
4 e1 \0 a: p/ p! cObjRSA.Modulus=LngKeyN
# m9 g  J6 U9 Xdecryptstr=ObjRSA.Decode(StrMessage) ) A4 J6 N7 f+ r
Set ObjRSA = Nothing
3 s) M8 c5 _% Z/ }/ k7 s& nend function
) V) o# s+ ^: E4 t/ ^1 hdim last,first
1 X2 h+ F4 _0 _first="!@#$%^&*()"
6 N, J7 G' h  @$ M& M  zResponse.Write "加密前为:"&first   \  y7 P0 \! s, K
last=Encryptstr(first)
) A) Q/ o& C5 e9 ZResponse.Write "加密后为"&last : E9 l# n9 @! }& V+ v. l- O6 C0 q/ H
Response.Write "解密后为" &decryptstr(last)
6 N6 j: m9 Y" {& X%> ==============================================* V' ^) V! |! k3 t4 [1 N1 H$ X+ c, w- u
剩下的就是字符的对照表了3 _. |3 {: v9 K4 y- R0 ~
===================字符集================
; p3 L  {6 R' c; F8 E4 J1_____6EBB) S( f, I& ~$ A
2_____5C1F
/ _) @& F( E/ V& _5 S) [3_____4D75# ]0 l8 u7 Y; u. h
4_____26CC+ H! l7 k4 `! t" |
5_____4F88: K, v2 T$ A; x) h% g& i/ x7 Q
6_____3F4E
0 B/ H+ ^' Z& W7_____0A9D6 o; I, m- X& k# g% K) Z- A* C5 ]
8_____1A1C1 D0 N, N5 I1 _% o
9_____6D20  i, j! _1 j1 I  _! W" _( A
0_____10891 O3 i  A+ c" O8 \
a_____0F3E
2 j! j: H! @& K! i1 I/ Hb_____31598 Z( F6 W- B' r: n- Z
c_____3517* R6 T1 k5 K; k7 u1 v, {
d_____419C
) \6 D1 A4 }# }* w& re_____615C4 H* V1 u3 c6 f* ?
f_____556F
- _) c+ ]4 o' kg_____2B7F
& Q& I4 E% R+ i& t. z% X! ]h_____0F9C/ a8 Z" r! ?. q5 T
i_____00FA
% I! r( A6 b1 o- h6 {6 zj_____5A50
6 E% B5 a" a1 b6 f! Rk_____28503 x$ V8 \  @3 h- B0 e$ |5 k
l_____3E7B9 q5 _" {( \2 h0 I+ g& ~" G
m_____71C58 ?3 u8 I; f! L8 ~) t% j4 q
n_____1FC8
# O& t6 a* R4 B; q! {$ [o_____74C1
! Q+ i% o: C- T) ~# H2 t- vp_____5FB8- I* Q; Q$ r& C6 N/ m3 Z# o
q_____6085$ M4 t( U, R( l
r_____3AC4: I4 `( y" J& T5 ~8 X& R
s_____2F50
" i; P4 B0 M# t2 i9 Yt_____36F8% S# W0 l0 Q! G% J' A9 j! J6 z& d6 S
u_____7010
' N  a" g+ @9 |2 fv_____0B42
$ n% H' `: m: Q( V. j% Qw_____1C7A
/ F, O7 B5 I1 {  e+ L3 s  ix_____16F87 P4 \5 N  l  u" L, q
y_____2EE7" w4 M) m+ B$ Q% I1 ]
z_____5CF39 b, J6 X. b' Z: l$ s
!_____6233+ Z" ]- t# r% _
@_____3A45
+ b2 i3 @- Q2 s" E0 l! w+ r/ J* f5 Z# n#_____2291
4 G  K7 C3 m2 j, r& Y$_____5D5C! Z& |- ]* }. p; W! d1 W
%_____09B9
' z7 A, @8 n9 @) G* Q6 [0 H^_____43EA8 _9 n7 Q9 ]* I- @/ H
&_____62B9
0 l; N* x. x* K7 k& H1 T& m*_____63013 Z  Q% U" a5 l" G$ J" p/ O& p4 A3 a
(_____4659
# N, y' V1 H# R5 Z' \)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表