返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
( K$ a7 i2 p0 U* w1 [# V  l& P! n# ^原始出处:http://www.3ast.com.cm: V7 a+ C; l3 h! l+ w

9 }- p6 z9 ^5 _0 I! ]7 n1 H看不懂的直接绕过  o8 N4 N: ~3 G7 @" A: s
加密前为:hwy1234563 f! P/ p$ J* ^* Q1 a  W
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 y* X* U; f  \  @. \3 [# C7 V4 o8 R
/ e% `# X! a' \1 H) t7 M. W
============================================) H4 I1 I0 z) ^5 ?- P
上面是当时自己校内的心情。现在已经解破出来了,分享给大家/ r/ M8 f* r3 B7 k7 \. X* Y
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, L2 w$ x7 H/ {6 B( ]7 M
以下是RSA算法文件; F8 u% I& v: |  U
$ {6 [8 N- ?: \5 U* f  E* r3 s2 {
文件名RSA.ASP0 Y( p  N# `* I! h% x7 k. M# Q5 U
===============================================- a8 e6 S$ G! n% ]7 X6 e  l3 B
<% + j' u- m$ y. a+ n% b. R( }
Class clsRSA ) k! i1 f7 a: r8 ]) s
Public PrivateKey   w1 L( f" }: p  K- r
Public PublicKey ) g8 s1 m, \9 K* z1 `
Public Modulus " P" K$ ~4 }# M/ c  A" @8 A
Public Function Crypt(pLngMessage, pLngKey) / y# |, F* T# C$ \1 e
On Error Resume Next 4 a1 k3 n( }* R+ Q" B! v% J7 H
Dim lLngMod
8 V2 Z) u& Y' q8 W( a7 |1 f0 hDim lLngResult 1 ~& u0 j2 |  W) X0 p
Dim lLngIndex 1 g  a0 ?0 O$ B) N9 r: c0 l: [
If pLngKey Mod 2 = 0 Then * y/ O4 b+ q  Z
lLngResult = 1 : B- Q+ f, X+ T# l( }( |; p% Q7 G; t( f
For lLngIndex = 1 To pLngKey / 2
$ U' B; \) N9 ^0 FlLngMod = (pLngMessage ^ 2) Mod Modulus
  a9 X3 r' }+ k8 q  ?1 @' Mod may error on key generation
" E6 L6 e9 R0 n4 @% s8 b* P) [lLngResult = (lLngMod * lLngResult) Mod Modulus
) |# {' J" B. K! |. S- {% ~If Err Then Exit Function + e8 p1 ~. M* L( U2 @
Next 0 @& q+ X6 n( \6 o3 P1 {* `
Else
/ ^+ p9 j7 n- |& v4 D7 T6 HlLngResult = pLngMessage 4 C! |2 Z4 y8 T- U) u9 S
For lLngIndex = 1 To pLngKey / 2   {; v- E4 P: T$ m% r
lLngMod = (pLngMessage ^ 2) Mod Modulus 3 B& F! `2 n4 L5 s' H/ v; ^
On Error Resume Next
5 F0 b( f9 C) G$ B: X5 M' Mod may error on key generation ! {  m: k* v/ M* h+ _, m: @# ^
lLngResult = (lLngMod * lLngResult) Mod Modulus
6 |# ?+ m5 q$ {, \! XIf Err Then Exit Function 8 }2 n) s2 B  K  \/ e# `6 i0 ]
Next
; K9 `/ P0 I* w5 {5 q) |: Z5 QEnd If
" R1 @! B9 y6 R# MCrypt = lLngResult # t- O* U; i8 f
End Function- w; G3 v( p+ |: t" {& a( \# W" ^$ a
) Y0 S  d$ B. \1 z% P
Public Function Encode(ByVal pStrMessage) ! b/ C+ o2 k8 {2 O/ _( A/ k, B
Dim lLngIndex
. I( L- A* I9 g; l6 kDim lLngMaxIndex
9 N/ Z/ P' m% g* a( B' u# t# IDim lBytAscii
  P* C& t- ~# D* PDim lLngEncrypted ) h$ w& y; z8 e3 }5 M" a
lLngMaxIndex = Len(pStrMessage)
$ u7 X1 _' L! d2 T* W/ i! P- {If lLngMaxIndex = 0 Then Exit Function - Y% [4 b1 O% s2 @5 ?
For lLngIndex = 1 To lLngMaxIndex
( q5 _3 j3 t/ ZlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: ^; m6 L% }& i& X% x/ j% H: KlLngEncrypted = Crypt(lBytAscii, PublicKey) ! o! ~8 g5 G$ H& V( q8 \1 w: M
Encode = Encode & NumberToHex(lLngEncrypted, 4) 6 s3 I& R" A; _8 c5 P4 j
Next
$ O. S6 p1 H0 m( S. X, XEnd Function ) M; Q$ O% L; _( l0 J) _8 Q( {
Public Function Decode(ByVal pStrMessage) 9 U) G2 y. w/ d$ b- y
Dim lBytAscii / P& O; w3 |7 H5 J, [2 x
Dim lLngIndex " a3 S0 z4 F( S3 i( X" p
Dim lLngMaxIndex
/ s* b- i0 e: Z8 x* [5 EDim lLngEncryptedData $ p1 _4 ?" R2 w: U- Q
Decode = "" & k& }, J+ @& |& C
lLngMaxIndex = Len(pStrMessage)   }3 ~& f$ @+ H# F7 W
For lLngIndex = 1 To lLngMaxIndex Step 4
& J$ M6 s# f' z) FlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 q9 |/ H/ a0 _6 S; a
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) % y' p- Y# w& Y* \) G$ {: M+ M3 b
Decode = Decode & Chr(lBytAscii) 2 f) P3 b" q0 a5 f$ f, Y& g; @
Next ) V7 g7 e9 P) V- A- W
End Function ' }+ B+ V8 g8 _. d$ J4 ?
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 I: Y% ~1 S6 ]9 lNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
/ D: W/ O7 r, F2 s1 z+ D. r/ ^, s% NEnd Function 1 T8 z1 m9 V5 x1 L# e1 m
Private Function HexToNumber(ByRef pStrHex)
1 Z) v6 U+ d! L4 F  FHexToNumber = CLng("&h" & pStrHex)
$ o, F: T4 K0 R: a/ tEnd Function
* o! o# d+ ]: X" X) NEnd Class
0 p  [# P; ]  dfunction Encryptstr(Message) ( @; a5 }# [. N* ^! W- n* u
Dim LngKeyE 2 B+ r2 i6 H  Q5 F4 b) U) {
Dim LngKeyD 6 Q6 e9 b! g; b
Dim LngKeyN
. v: s" n. P* cDim StrMessage ( p+ P1 @6 L" [5 G9 v- o# Y
Dim ObjRSA & D+ z: s  W; B+ e5 m
LngKeyE = "32823" # A/ L1 ~- q2 l/ p% |7 z( d5 J2 e
LngKeyD = "20643"
! ?: q4 w4 k0 x7 V4 q" _LngKeyN = "29893" : ?: d0 g& ?, U8 P6 s7 w7 a
StrMessage = Message
$ Q% ?- H7 f1 \& W% {Set ObjRSA = New clsRSA 0 b6 U6 H$ U: R$ J9 [1 {
ObjRSA.PublicKey = LngKeyE 1 q( _& `- l! W6 m/ h1 ]
ObjRSA.Modulus = LngKeyN
. ~" V( T& P- t3 s& Y, K& `9 }Encryptstr = ObjRSA.Encode(StrMessage) 2 I* z5 N4 U8 j5 V/ b; Y% _
Set ObjRSA = Nothing
# ?, H( ^' s4 p+ z; k$ R2 pend function
" B& |1 @8 x; [Function Decryptstr(Message)
9 L- o, C+ T4 F' G+ |8 yDim LngKeyE 9 x; i$ b) d4 k4 i+ M0 e2 R2 v
Dim LngKeyD
' l5 E& w1 f+ B- D/ L& yDim LngKeyN
8 q  l5 t! p( u1 @* @1 @Dim StrMessage * ~: L3 Q: Y' _
Dim ObjRSA 1 y! o; R# F' A$ x) R( P
LngKeyE = "32823"
& X& j, v! p. t8 `) F* i0 cLngKeyD = "20643" ( z! p9 X+ a" `# h; }/ L
LngKeyN = "29893"
+ A! B3 a% }; ]$ m: ~StrMessage = Message
* W8 y9 E0 I1 ]9 L3 JSet ObjRSA = New clsRSA
& R/ q4 q3 _/ j3 T$ m) K, m* K% M/ cObjRSA.PrivateKey =LngKeyD
' H9 B) I; ^7 y" W  K) {ObjRSA.Modulus=LngKeyN
- v5 @/ h' `0 V* q$ W* E5 l, Ddecryptstr=ObjRSA.Decode(StrMessage)
: @- x& D/ _; c# pSet ObjRSA = Nothing
- i: }$ h6 [  a; j  Q: T" Gend function # k, i# p& i5 I2 i8 _
%>6 S8 O+ {% I0 T! D9 E8 C
===============================================
" [3 [8 Q) l8 V+ G+ Z! o
3 T3 D2 h- H- v! W7 \" r还有一个用于测试这段代码的test.asp
% N) W' E7 r2 X) z% c有兴趣的自己搭建个IIS测试下
' w0 w' l. K& o. A/ a# C0 A1 R<!--#INCLUDE FILE="RSA.asp"-->
: ^+ H/ L3 x3 e7 m, ^# J<%/ W% [4 a' J$ ]3 B% c# [
function Encryptstr(Message)
" u: q. v# p$ Q9 ?- VDim LngKeyE : z  M% k2 j0 ~/ j7 m  ~, L4 m
Dim LngKeyD
; K& ]& H0 x# l0 s% S3 P4 q* CDim LngKeyN ) s& x/ `3 L; t0 _+ g# [
Dim StrMessage
8 G& H, a  m8 G9 x% YDim ObjRSA
) M) L# N4 r* y% |+ C: rLngKeyE = "32823"
# v' `" ?; f! M. |% Y; cLngKeyD = "20643"
$ Q5 ^# S4 @+ y: pLngKeyN = "29893" : L8 g6 _! b% C( M
StrMessage = Message 4 S! |# [( e3 s3 h( R1 u2 ?1 |
Set ObjRSA = New clsRSA
' B( L0 m" Q* PObjRSA.PublicKey = LngKeyE " s5 I9 c4 [9 g  T- J
ObjRSA.Modulus = LngKeyN $ z  ~( J. i* u5 f' ]- G* }
Encryptstr = ObjRSA.Encode(StrMessage)
# E: \, d' k& @( O: rSet ObjRSA = Nothing
1 y# k4 m* P2 W' T7 i8 _5 l: j3 tend function
1 Q$ ^) v( Q& Z) qfunction decryptstr(Message) $ v5 t  u/ v3 ~& S9 [
Dim LngKeyE
" v, v. f/ p: |, d- d, K5 m! D( Z. }3 pDim LngKeyD
1 H; S! v  d5 {( ~8 w2 E+ E( mDim LngKeyN
$ x, k% H& W) J. `Dim StrMessage
9 T/ N% f- [$ J1 L$ zDim ObjRSA
2 t  C0 D4 C; Q, _$ m1 Y4 L! GLngKeyE = "32823" & P6 u8 e! {9 T6 T1 R8 X
LngKeyD = "20643"
  d# e" t; D# l9 o0 oLngKeyN = "29893" 4 ^4 ~8 t$ L* m# Z- G, E
StrMessage = Message 4 [* d* F: [4 A$ m- g% F% S, P
Set ObjRSA = New clsRSA & i# P1 F( v: [7 O' ^1 s' a: F
ObjRSA.PrivateKey =LngKeyD 9 w: j% j0 f; b) d% L
ObjRSA.Modulus=LngKeyN
8 e, v* Q: T6 o$ f. O4 udecryptstr=ObjRSA.Decode(StrMessage)
0 `/ K% U- G3 M" v7 S/ P/ ?Set ObjRSA = Nothing ' ]3 M  [0 M6 m, ]. K: l
end function
5 V9 o  O+ m  Z0 u6 Zdim last,first
  O- T9 B- e( F5 r4 J6 ~first="!@#$%^&*()"
1 g. a2 y& C8 x9 tResponse.Write "加密前为:"&first ( n0 x8 V9 A, Z8 T( V3 q; e4 z+ C
last=Encryptstr(first) ( b  G4 K$ h- A& W5 o
Response.Write "加密后为"&last
3 V1 _/ x# m) f; fResponse.Write "解密后为" &decryptstr(last)
" ~4 k- y& n# ]: b/ E1 E* s%> ==============================================7 _7 \7 k. Q- \; N! C. Z3 p
剩下的就是字符的对照表了
/ X6 ]6 v. o$ s===================字符集================
4 `) d% k. R. L6 O# O# L! G. Y1_____6EBB4 Q/ v0 x: n* s- z) w
2_____5C1F
4 `: D  ?. J; e" ^0 ]5 B3_____4D75
* D9 W7 x2 O4 X  d7 m6 J  U4_____26CC
2 O, D& w. i) D1 y5_____4F88/ s+ ]% {; h) I2 F" L- _; E( E
6_____3F4E% f6 v+ G5 `+ Q# S
7_____0A9D
3 |6 H- i$ @2 ~( t+ o( s" {8_____1A1C
* O0 d% D3 r( w9_____6D20' ~# e& c) Y/ r/ y2 \  d% }
0_____1089
0 R! X2 u' f* Z/ f% B2 i, K8 d+ ja_____0F3E; Z" H/ e7 J0 u. Z0 ?0 v
b_____3159% T' v! Z$ C1 V+ y% }
c_____3517
# Z$ y2 s" |, X6 T: h: b" {d_____419C
/ i  z5 H+ {  |5 M: \: Te_____615C$ w0 k/ t% V, y  y' `2 d
f_____556F4 e2 K  R: v2 d7 H$ N
g_____2B7F
$ r! }9 D6 f3 A0 a% U6 ~  k7 Vh_____0F9C
$ j8 w# @! x4 ?i_____00FA+ H+ Q5 Z8 p) S2 ?1 V7 C
j_____5A50- ~( I5 A# w3 `# `/ a! _
k_____2850
8 w( V% J5 f5 g& e- U, C7 gl_____3E7B$ H$ s" m( p) I$ E( v' P
m_____71C5
& V" J' t- m# ^/ Z# gn_____1FC8
  t" l$ M8 R9 m2 R/ A2 v  so_____74C1+ h, J  g4 e) v; Z: b
p_____5FB8
5 U' |) P6 E& E- Q5 s( F" eq_____6085
) l* D, Z" N/ U- |9 Y. ur_____3AC4
5 p6 M5 k+ ~: u2 J8 c4 {s_____2F50+ {" C4 h, U' Z- w2 Q" }7 U; ?- Q
t_____36F83 i8 Y1 v$ x, ~/ m8 X2 V% k
u_____70104 {- {7 }- C- E1 ]! a
v_____0B42
  U+ P( t- ]6 h( r7 W4 yw_____1C7A* X2 `- T7 }2 \* Z* A
x_____16F8
/ W3 |; x3 ?: M+ Ry_____2EE72 d, I. {7 i/ c5 o0 ]
z_____5CF3
4 u/ u1 {7 i6 p) @  u8 u+ K$ R!_____62335 H& t% A% _2 B" c
@_____3A45: n. D: ?) z+ @! Z! S
#_____2291- U7 V- B4 ?/ ^0 M
$_____5D5C1 I7 S) A* W2 V
%_____09B9
2 U3 c5 P; y! v% N2 V: E  h- A^_____43EA
0 ~2 K( T7 f2 Q  S% G. n&_____62B9" V  i( j# h9 J# d! u; ]
*_____6301
; \1 i/ t* L: o" _+ F(_____4659
; d  D4 r( h7 T) J2 m: X)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表