返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* {# B: \6 ?; ~0 S2 y$ T; f) |6 s2 b1 l原始出处:http://www.3ast.com.cm
  A# w9 C+ u- {# y( R. n* Z6 z- n+ e, j& h" T
看不懂的直接绕过" ?3 |, q9 N1 p9 F, X6 v
加密前为:hwy123456
: _7 Y( g& A4 B加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E% t3 k' m) Z+ i) z' E- N) v  c" d
4 g$ y$ B& q  B
============================================
( A6 a1 |( A" F( x. J, c  q) O, F上面是当时自己校内的心情。现在已经解破出来了,分享给大家# N6 v& K& J; j4 y/ g
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法+ `7 {; X+ |: E4 }( w1 x9 F. I
以下是RSA算法文件
. k! g. T. I5 B, C! s& I8 k1 w$ u$ c5 y$ @; y
文件名RSA.ASP
( l' H& f  v; h+ i3 ?& v===============================================
3 T! E8 p: u! t; L* i<% . P* b) p$ E! e8 m* I" g
Class clsRSA
8 w- b# m  X( ePublic PrivateKey 6 N( B+ Z" Q" e& i0 E' ]
Public PublicKey
) e* k( t2 c0 C6 K- R3 P' _# _Public Modulus
7 j  f, q8 Q) PPublic Function Crypt(pLngMessage, pLngKey)
8 c  b9 a! n8 xOn Error Resume Next 4 ^) E0 n  u& W. O5 ?  m& d. S$ Y
Dim lLngMod 2 D; l5 ^" g# M4 l# v
Dim lLngResult
% \! \  O. o3 `6 \; kDim lLngIndex 4 p5 n" ~6 `3 i  y" Y. V
If pLngKey Mod 2 = 0 Then
) L! m; d$ e1 \lLngResult = 1
6 M& z/ n( Q- V$ H( Q3 d: u# UFor lLngIndex = 1 To pLngKey / 2
1 J# P+ r8 I1 W0 r2 ulLngMod = (pLngMessage ^ 2) Mod Modulus . c! C8 V& T% T, G
' Mod may error on key generation 6 @; s& z3 k; B% t9 Z1 u
lLngResult = (lLngMod * lLngResult) Mod Modulus ; z  x' K. J  s7 |" {
If Err Then Exit Function
/ _9 }9 d! c0 }6 Z) W6 GNext 6 o% s" W  ~; i: {) S5 \5 f! V9 K
Else ) ?' D& X  E1 b6 M' O7 U
lLngResult = pLngMessage ( n- Y& d' K1 ~  k
For lLngIndex = 1 To pLngKey / 2
0 ~! n3 E5 g# ]- C+ D% Q6 Y, t  m6 F5 ?lLngMod = (pLngMessage ^ 2) Mod Modulus 6 B6 M' \7 i9 M, O8 V+ {2 k; a4 @: f
On Error Resume Next   y; A1 `0 a1 D4 e3 K' }" ^
' Mod may error on key generation ( {* r% w  _/ u3 Z- |8 d/ y
lLngResult = (lLngMod * lLngResult) Mod Modulus
8 n2 V7 |( |5 T# K# L/ ?If Err Then Exit Function   H8 S) B- B4 B2 F
Next
: M7 j6 R, L/ s$ nEnd If 0 [- m$ a# K, y* _+ L0 W* X) h
Crypt = lLngResult
# Z, q3 d9 Z4 [$ i1 O4 sEnd Function3 y- R) z: _: E. z& C; m: i* f- W

0 L8 A, e+ X  w, ~: sPublic Function Encode(ByVal pStrMessage)
/ x7 }) w3 f# \8 R# bDim lLngIndex
- r) m+ ~, c- f4 D9 o3 h/ {Dim lLngMaxIndex 4 {+ I) J; h& b5 E
Dim lBytAscii 6 W# x; s5 R+ r! [7 A1 n0 D
Dim lLngEncrypted
, O  r' {5 U4 C" s2 C  ylLngMaxIndex = Len(pStrMessage)
+ @) @! e5 b0 Z! S8 q% |+ JIf lLngMaxIndex = 0 Then Exit Function
& ~# P5 z1 B7 ^For lLngIndex = 1 To lLngMaxIndex 1 U, B" }& \6 {" E8 L) D
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ' d7 O3 H% [9 a2 [! [/ V
lLngEncrypted = Crypt(lBytAscii, PublicKey)
0 }" \! ?6 e4 Z3 \Encode = Encode & NumberToHex(lLngEncrypted, 4) ! Q" G/ U6 @7 J( W4 p9 G2 ?
Next ) H8 h' Z/ e3 }2 @$ F1 n, ^
End Function
$ g0 ?) K7 o& f- u5 P5 i, P8 B# ]Public Function Decode(ByVal pStrMessage)
7 I& b/ L3 L4 u: {0 u, yDim lBytAscii
! V9 U) ^; C8 h! RDim lLngIndex , d, \3 C0 J, J4 |1 E. |$ b) z3 |  l5 }
Dim lLngMaxIndex 5 h& T, K- j( g% G+ _  ~
Dim lLngEncryptedData
  U3 j  I$ b9 t5 Q$ Z: lDecode = ""
$ Z7 O, r( ?% }lLngMaxIndex = Len(pStrMessage)
+ s- I- `& Y1 M$ cFor lLngIndex = 1 To lLngMaxIndex Step 4 $ r& v7 F0 a5 @" Q( C# D
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) # U4 k, P6 Y3 U
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 1 M3 a) r1 o; r7 P& L& R/ |6 x, u  t3 j
Decode = Decode & Chr(lBytAscii)
  Q! t# I8 z2 `5 f! ^Next - P1 ~- o  P+ v6 V
End Function
/ h3 L/ v( R- v' XPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) " x: S, G! z" @1 I4 ^, Z5 S5 q6 C( ~
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
# A. q* q9 _9 [* yEnd Function
- }0 p5 s+ s1 ?% T9 FPrivate Function HexToNumber(ByRef pStrHex) 8 l3 _! v$ e- O* R
HexToNumber = CLng("&h" & pStrHex)
3 }9 v$ y8 f% v6 L+ S( V* o* vEnd Function
. k% J1 y/ S( E! q: j0 [% ]/ SEnd Class + R( n3 L" v2 k; w6 Y" a
function Encryptstr(Message)
; e6 u2 p6 ^1 F, X) h1 r0 ^  w. W+ ODim LngKeyE ) a. `% ^9 v  b% e0 k8 r
Dim LngKeyD 1 W: x3 ?& L( V7 |; y
Dim LngKeyN ; P9 D5 P; \9 v! J7 q- n7 r
Dim StrMessage + A0 X3 I$ B& f# ^+ l9 P* T2 a
Dim ObjRSA   T- e' F* d; T! e
LngKeyE = "32823" 9 |- l% D9 h) G! [
LngKeyD = "20643" - m! k+ x- d& u- ^- X
LngKeyN = "29893"
, h6 K( b6 h% d) \1 _# D! k7 W0 SStrMessage = Message ' \% ?' o1 j5 T( b: e+ b& [$ [! `
Set ObjRSA = New clsRSA
! Z- b% p- l% J) ~ObjRSA.PublicKey = LngKeyE ' W1 ~( E  X6 `5 _! _* |' L/ j, i
ObjRSA.Modulus = LngKeyN + u# H) u' b- o
Encryptstr = ObjRSA.Encode(StrMessage)
" r6 L8 ~$ m1 Z- [Set ObjRSA = Nothing 3 S, b, i; P' D% j9 }  z
end function. n3 w; E4 L9 @; w% L( s9 J
Function Decryptstr(Message)
5 X; o" x# t( v' j1 a9 R: DDim LngKeyE
$ Q1 b0 `7 P& Q- t* g( KDim LngKeyD ! h2 E" J7 H/ m0 O4 ]9 a# d6 A2 X
Dim LngKeyN
1 q& G  _2 U+ v5 F( jDim StrMessage . C6 n! y. Y0 S+ P+ H* e6 u
Dim ObjRSA 5 c6 \5 P1 X1 T: ^) T2 E
LngKeyE = "32823" - ~1 r" B$ C. b6 Z  _
LngKeyD = "20643" 9 c% w& r0 i& ~! Z
LngKeyN = "29893" 5 `9 V6 l3 R* Q9 u4 m! M
StrMessage = Message . c$ n8 M! Q9 a# t% G: o7 O
Set ObjRSA = New clsRSA 3 w. d* r  b  Q( z. h
ObjRSA.PrivateKey =LngKeyD
$ k$ A  |6 h% W4 w5 ^  _ObjRSA.Modulus=LngKeyN 1 H7 A7 ~+ L9 ~+ n$ U5 e6 ]
decryptstr=ObjRSA.Decode(StrMessage)
# w3 L/ u+ J  v7 F& ^1 iSet ObjRSA = Nothing 7 m' U. p. [/ U& o9 L0 G2 [
end function
) [. l! C* X( j%>
* P) L9 Z( s; ^. y0 U( b2 ?$ \===============================================
( b, k3 q* M6 e0 d- o, v& L" K" r$ ]$ V3 h: d7 @$ O
还有一个用于测试这段代码的test.asp
* y/ Q& O& _. ?) i$ m. |' m3 }7 S有兴趣的自己搭建个IIS测试下6 A! M# `2 P# v% h
<!--#INCLUDE FILE="RSA.asp"--> 3 a: d0 h* x8 |8 \5 A
<%
8 [% E: T1 `) F0 c9 E* [8 c( ~function Encryptstr(Message) . |- s( l6 W  \
Dim LngKeyE
- k: h# ^, N- sDim LngKeyD 7 D. e) S8 y# c- R3 J6 j
Dim LngKeyN . W7 L  D; }( D1 @: W$ C
Dim StrMessage 9 I$ U0 _, d& ?0 |9 D
Dim ObjRSA
; Y5 f7 _* t8 f7 Z9 k3 k7 ^LngKeyE = "32823"
2 f/ X# B- u  f; F) M: yLngKeyD = "20643" 7 x6 D+ e6 r2 _! U( t% a8 y8 l+ q
LngKeyN = "29893"
( Q) J; X8 d" _/ wStrMessage = Message 5 B/ T( ]  X# l3 c
Set ObjRSA = New clsRSA : |/ g2 w1 L. S2 j. v+ V
ObjRSA.PublicKey = LngKeyE 9 E  Y3 k5 Z6 ]" t: u$ z
ObjRSA.Modulus = LngKeyN & Q9 p8 j2 t7 T
Encryptstr = ObjRSA.Encode(StrMessage) % q+ a3 @! n8 U: B5 M9 n. j
Set ObjRSA = Nothing
7 O. p- I1 `6 z- C: U+ ?end function   F! e' a; V! ~3 f3 p' V, i
function decryptstr(Message) 8 J& q$ b( d6 ]* U+ o
Dim LngKeyE ! x, a& I  N; O2 ?1 I( K
Dim LngKeyD
% |+ ]- e; o6 H/ G( h/ W+ p: C9 oDim LngKeyN
  p/ _& q3 s: U5 J6 X! ^' aDim StrMessage
2 r) R& I$ H% r0 }) C; kDim ObjRSA
7 j2 `7 K: ^) s! p# ]& N4 }) m# h' WLngKeyE = "32823" ) D, G: s0 X9 Q3 y
LngKeyD = "20643" 9 p' q7 T5 C( q9 N
LngKeyN = "29893" % t! x& q" a/ a& @
StrMessage = Message : p7 e: I/ _% b# w3 j0 {
Set ObjRSA = New clsRSA $ q4 k9 A+ {5 J4 ~) r* a2 e
ObjRSA.PrivateKey =LngKeyD
- e7 O- z1 h+ c4 x. jObjRSA.Modulus=LngKeyN
/ I. @- k  v; h0 G0 [. Idecryptstr=ObjRSA.Decode(StrMessage) # J. a% G) L9 [3 o% [5 w4 D
Set ObjRSA = Nothing - b+ W; B2 W& }& w6 ]: Y
end function ' ]# g4 g% k& V
dim last,first
. ]7 Q2 o# a) L; o9 L  Y: F6 mfirst="!@#$%^&*()"
0 n6 D. V" h5 TResponse.Write "加密前为:"&first
8 |( q  i7 W3 tlast=Encryptstr(first) % K! Y# g* m7 L; J  g& c$ q# \
Response.Write "加密后为"&last 6 k) M2 n6 Z2 e0 c$ N
Response.Write "解密后为" &decryptstr(last) * H# @" P0 ]. P6 k! r
%> ==============================================6 o% Q0 c" j. f: t( P. W
剩下的就是字符的对照表了
& n& [- N! p: h% Q===================字符集================
" K: d% z: T/ D1 j1_____6EBB
8 P( K: y( ^! ^1 j/ r! {2_____5C1F
6 z8 E6 M9 j% v) ?3_____4D75
! `2 h( z7 q" W# Y$ A# ~4_____26CC
0 x9 q  U. K" P5_____4F88' D4 m" T  a- N
6_____3F4E0 K9 |* i% M( P- F/ D
7_____0A9D5 \' l4 N' S, M6 ~
8_____1A1C0 `/ [$ ^& z; f+ r+ P
9_____6D20. e% n- S' m0 l; B9 ~/ H8 z$ u
0_____1089
- K) Z. ]: b4 x0 ra_____0F3E$ Z  `- u% ~: w+ l8 f. N4 E
b_____3159
$ ~/ L) R* x" H7 o0 Dc_____3517$ c8 u- Q- c" j. s# [8 L* Q
d_____419C4 ~% z0 |. F0 T# K
e_____615C3 x! c! g) c/ [& W) A5 H- c
f_____556F: s/ j# X. [! ]" ~* B, ~# X
g_____2B7F6 n$ V8 P! S# y. Q+ m9 h
h_____0F9C0 p# P- ~+ Q. ?1 ?/ Q
i_____00FA+ B, r  D1 A4 M; |9 }* k
j_____5A50
% o2 [) G* Z2 _0 l7 i, r% T. pk_____2850
- c8 W9 {$ |3 k- B2 @. Ml_____3E7B' J/ g) u, A# c& |: D- H, \
m_____71C5
9 D; T/ u/ d' o+ G0 r! in_____1FC8
; c. X+ m+ z# k. p5 Io_____74C1
$ Y8 w+ X: F; S3 G3 Dp_____5FB8* n- e* }& T9 t+ d4 x) Q
q_____6085% x3 N( P8 g1 g/ l  P4 s
r_____3AC4
; ]: s) H2 X7 m. ts_____2F50
: E; M4 [# ?, X$ F0 D, {t_____36F8
% g. L6 x" U" W) O5 Q8 Nu_____7010" G7 p( l7 ?" X2 {" t  h$ ~
v_____0B42
, \' b6 m# x: _% @w_____1C7A  s) B) v1 y( k+ ?3 C
x_____16F8: L8 E3 Q4 ?8 d
y_____2EE72 i; ]$ h6 `6 h3 A; e
z_____5CF30 ^1 |; b, ]- ^. H5 l! _* f& h2 p
!_____6233
6 e- [; w% `; a* ?@_____3A45, b! q6 S) f: @
#_____2291
  k* Z, W  Z0 _$ f( W, x- j$_____5D5C7 ]8 i3 `3 x0 z* o; k
%_____09B95 C: M! t7 F* E5 l  j8 _
^_____43EA# \+ ~& S. B( e" x3 p
&_____62B9
- J- A$ f: w: q/ V9 o$ _: F1 G*_____6301
. n. L! j; R: u, V(_____4659, ?/ Q, H1 H2 U/ R& t! q
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表