返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
$ C. F+ ?8 {# i6 i: q原始出处:http://www.3ast.com.cm
* n2 D! \( C  B4 K) C9 _$ R) u
+ K4 d/ O& |7 c, D% z* g$ K看不懂的直接绕过
( k7 B: [1 u2 W  C加密前为:hwy1234560 |& A4 O7 C2 [8 D; c" c# h1 m6 o
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 z& y6 L: n! g
  |3 Q* d# ?# T! g' k============================================% ?; {7 ~! u) G% P4 K' ^6 u& o! L
上面是当时自己校内的心情。现在已经解破出来了,分享给大家8 O8 j3 Z, R! j' Y' x, k
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
3 p! F  ]( b% E1 |  O! t" J: G: U( G以下是RSA算法文件
! a( v0 R0 e* \* I; q3 C" e7 W3 ~, s3 P
文件名RSA.ASP# m2 J/ z1 S! j0 `9 U2 i
===============================================5 a7 a. m% Y5 @$ w+ M' P
<%
' g' B) L5 Y# `9 ?+ @. jClass clsRSA
* l. i3 U  ^: p! `. ?Public PrivateKey
. ^" \3 ~: n+ l6 t; VPublic PublicKey $ t8 ?! l3 P6 a1 E  @
Public Modulus
8 T2 @) S& O/ |; E6 v: LPublic Function Crypt(pLngMessage, pLngKey)
  l( `2 d# h8 o3 i) Y( i2 d* G: p; ~On Error Resume Next
2 `+ a- {* Z6 Z: c& v9 C8 I# oDim lLngMod
5 U" e# @4 @  H* k8 t+ |0 W7 q5 MDim lLngResult ' G; D4 C: Q+ h5 Y3 ?
Dim lLngIndex % m$ _* u1 r6 @
If pLngKey Mod 2 = 0 Then " B, a! y# q/ m1 z- F# R4 R. u
lLngResult = 1
6 g, i' R) b5 w  `For lLngIndex = 1 To pLngKey / 2 & Z% n2 q2 H. T* h( o& y
lLngMod = (pLngMessage ^ 2) Mod Modulus
1 N2 O- C3 {$ C2 K' Mod may error on key generation
0 a; M' o# U8 {& Q0 o6 [- g$ ~! E/ NlLngResult = (lLngMod * lLngResult) Mod Modulus . L& U8 x# k6 i* _
If Err Then Exit Function
7 E; s( w/ k7 p, |& S, D$ KNext 6 e* H1 z' R9 w8 R1 k
Else
6 U6 ^2 S% G8 H+ Q+ F3 ElLngResult = pLngMessage # T: `' h9 q/ B! ]
For lLngIndex = 1 To pLngKey / 2
7 N9 C4 [7 A- H$ u+ E3 HlLngMod = (pLngMessage ^ 2) Mod Modulus   I+ t/ O4 A) s6 T- G
On Error Resume Next - D: j! F4 C5 |- K& Q- y
' Mod may error on key generation * @9 f1 ?7 p4 m4 E4 G
lLngResult = (lLngMod * lLngResult) Mod Modulus # C; U0 s% Y7 j7 K& s3 j  @, d
If Err Then Exit Function - o6 a& D" u( v. }0 G5 `
Next + z# i: s! e) Q
End If
- c$ O/ Y6 L, B: |% E+ f6 y0 MCrypt = lLngResult
+ L# m) H' v  Q+ {End Function1 ?( O% |6 \; U! ]8 @
  G6 a7 T9 L; K
Public Function Encode(ByVal pStrMessage) % y% s: V+ ~  F0 f" {
Dim lLngIndex 0 Q+ s" [* V+ B& x. R; i" k8 u) S
Dim lLngMaxIndex
! T1 ~7 K5 I% x/ C+ \2 CDim lBytAscii
2 J. Y9 S2 @, ]' ^( K( v- _9 m1 ]Dim lLngEncrypted
$ T) W: `& R: ^0 |: NlLngMaxIndex = Len(pStrMessage)
* V8 c9 ^% m8 G- xIf lLngMaxIndex = 0 Then Exit Function
. u1 ^9 v1 ?& }* bFor lLngIndex = 1 To lLngMaxIndex * u- d/ n, q9 Y- c
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 Q  N0 r2 S( [( }
lLngEncrypted = Crypt(lBytAscii, PublicKey) 0 R% v% c+ v2 q' N0 u& j
Encode = Encode & NumberToHex(lLngEncrypted, 4)
* H# k- g+ n9 H$ CNext ! J$ v  p! s) a  b! U# f4 d" @
End Function
2 I, r; l& t- L% X) C. aPublic Function Decode(ByVal pStrMessage) ; o" ]. p8 D. Y, |) [! J* O; E
Dim lBytAscii
# E4 a/ ^7 o+ ~/ DDim lLngIndex $ [( m0 }0 y/ ?0 S+ _4 b& Q
Dim lLngMaxIndex
1 X& I+ ?& B6 Y, _. o& ?, lDim lLngEncryptedData - N9 x; k/ v+ ^5 S; O
Decode = ""
- f: q5 ?3 t. @; {# N1 g" x- r8 QlLngMaxIndex = Len(pStrMessage) . J' f2 Z: j3 P
For lLngIndex = 1 To lLngMaxIndex Step 4 ( w! I$ v, a1 y$ N: L% \
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ w- b2 N# m+ U) q. MlBytAscii = Crypt(lLngEncryptedData, PrivateKey) * f2 O- b) o9 K& z: I
Decode = Decode & Chr(lBytAscii)
- K! x. P- `6 W$ b5 x( v  Y0 zNext
$ }% @) h  ]( H) WEnd Function & P; c$ t5 I0 n
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
$ K  K! p8 E- Z* D7 U" X* `: ~NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
4 Y/ X/ U6 p/ h7 ]" SEnd Function
% a- C# H( b. G8 E3 U1 ]Private Function HexToNumber(ByRef pStrHex) * ^: C* \4 ~& W
HexToNumber = CLng("&h" & pStrHex) 1 q2 Z6 J% T, A5 F; `
End Function
1 A2 q) D, \2 F- YEnd Class
; z' T) G2 _$ j3 O/ n8 mfunction Encryptstr(Message) * [$ p: @. g/ e7 y, I. j6 |
Dim LngKeyE 4 ?' ]1 k$ K2 g# m  y
Dim LngKeyD 8 y6 a: H: ^8 G0 }+ ^5 c  O) o
Dim LngKeyN
: Q$ h4 B+ h0 |+ `) f: NDim StrMessage ! e  b$ ?- p0 R, p, \
Dim ObjRSA $ X3 w% m" l9 j  ^2 Z7 H& O7 i: h2 \
LngKeyE = "32823"
" b$ _  m$ l8 v# X2 i, O+ {8 s0 {LngKeyD = "20643" " Z/ C" S8 f- ?- @. C, t
LngKeyN = "29893"
3 F: c. [& {0 f- G! @# K3 l( rStrMessage = Message
0 X- K/ J+ t0 l. A& CSet ObjRSA = New clsRSA 2 `) H4 ]) ]/ D& l
ObjRSA.PublicKey = LngKeyE
& C1 Z4 D" b0 d- v( u1 Z& {ObjRSA.Modulus = LngKeyN , L( ^" |7 {: m4 W
Encryptstr = ObjRSA.Encode(StrMessage)
6 u; u  f- b* K  J& R. ASet ObjRSA = Nothing : q! d# A( b9 Z. G! |! u
end function- H  I9 E% m9 A+ N, r6 B& Z
Function Decryptstr(Message)
- c- h5 D" ^' u2 P, y, C' E. u' MDim LngKeyE 1 d& j# N& L5 z
Dim LngKeyD
/ K4 X; T: m0 g$ a" HDim LngKeyN
# e  J! [$ h9 N- ]; q, ]7 I% sDim StrMessage
/ F0 p2 v' ?! Q3 T. Q/ q# TDim ObjRSA
: z; R" f: P. u* _0 x9 z5 s3 c; GLngKeyE = "32823" $ \0 K8 p7 q: Q" `% W8 T
LngKeyD = "20643" & S0 a$ D( @$ K. y: }6 V
LngKeyN = "29893"
# ?7 l2 _6 ^% z$ c# N  H  S+ [% A7 qStrMessage = Message " F1 x4 E( H$ T6 W
Set ObjRSA = New clsRSA : r) I6 N2 D5 _1 a. l
ObjRSA.PrivateKey =LngKeyD , u9 H1 O, o8 q" T+ _
ObjRSA.Modulus=LngKeyN
- w3 d2 O. H( B4 p; |decryptstr=ObjRSA.Decode(StrMessage)
5 u# z7 |3 S4 _- w: G" NSet ObjRSA = Nothing % w3 g- E4 N' B+ c3 K& m% r
end function
: g- q4 z  o1 ^1 B7 k: B3 G1 B%>0 s& S; _0 K' W7 t* i% a. p. a1 n  O
===============================================9 _% }: }) `& m% |3 B- F- {
2 ~3 s) z, }/ g
还有一个用于测试这段代码的test.asp
9 v, r) e/ P+ U" [有兴趣的自己搭建个IIS测试下
* F+ C$ G' r8 [# A; i<!--#INCLUDE FILE="RSA.asp"-->
* {$ U& O6 s' Y% g( y- n2 c6 L. l<%$ V* J$ z# W/ G, c% N' R' q
function Encryptstr(Message) * `8 {8 j: H( |* P; _& n1 Q
Dim LngKeyE " V1 {' R1 M) i- d; [
Dim LngKeyD
) e4 j6 j3 A2 Q2 aDim LngKeyN 1 z; r3 j: K: P2 F* g. ]9 A
Dim StrMessage
/ P! V2 P: j; y+ @Dim ObjRSA
6 u% h+ v7 P$ ?( dLngKeyE = "32823"
2 w/ j* v  M5 R2 v" ]LngKeyD = "20643" + v: C) q; l' K. T: m
LngKeyN = "29893"
8 ~* s* d$ Z8 L" N7 F% @StrMessage = Message
2 R! F/ |0 o5 M2 U( xSet ObjRSA = New clsRSA 0 g3 Y' U0 C* p
ObjRSA.PublicKey = LngKeyE : ]* h6 I1 d+ b+ b8 D9 C' P
ObjRSA.Modulus = LngKeyN " B3 p% m1 c3 @& e5 L, d' J
Encryptstr = ObjRSA.Encode(StrMessage)
1 p0 B! q  ]/ S# ~5 a- tSet ObjRSA = Nothing   t$ g& j. b- o
end function   m4 [; ?1 p3 |8 z% h, ]7 R
function decryptstr(Message)
) g! \5 N/ K  t# w& ~( V/ n" z3 j% tDim LngKeyE
0 B0 z0 J% M, M* hDim LngKeyD
& ^  _% F1 a0 g8 SDim LngKeyN
3 x  z% W3 d+ [Dim StrMessage ) E2 H& x4 k! u. ]; M" [+ P. q3 v: l
Dim ObjRSA & ?9 j: f  U6 ?
LngKeyE = "32823" ! h8 C7 |6 c! n  @$ K1 M
LngKeyD = "20643" 1 {, Y4 r& d9 @" ^' t0 [6 t; m
LngKeyN = "29893"
; v9 y7 J: {, W2 x0 {StrMessage = Message
" e% a6 _: t" f, H! b8 b% |( MSet ObjRSA = New clsRSA & k$ N1 ~) U& K  F( J
ObjRSA.PrivateKey =LngKeyD
8 Z3 Y. G( q" d6 BObjRSA.Modulus=LngKeyN
5 T6 S, A; r; _- e5 vdecryptstr=ObjRSA.Decode(StrMessage) $ [/ L* ~# c4 l( u  v
Set ObjRSA = Nothing
# A9 K& u7 {: E6 ?( U* v) k$ V# yend function 6 Z  d3 B  L# g2 l) ]. {, F9 u' h
dim last,first
; E0 b# O* i1 q. s0 Q6 |, d& {first="!@#$%^&*()" - L5 D' E1 F* m  c7 r  X4 X- \
Response.Write "加密前为:"&first
; Q  a+ y3 b! glast=Encryptstr(first) 1 F, `( C( e$ Z
Response.Write "加密后为"&last " p# U; o5 D4 `+ F0 H# x  d9 ]/ H
Response.Write "解密后为" &decryptstr(last) $ @; c5 {; }$ f( z: u+ K
%> ==============================================
( ~& W; a% {: U& p1 Z剩下的就是字符的对照表了
  ?8 f3 r" J' Y' w. ~% g6 H0 Z; j: X===================字符集================
, H' h, B6 W$ X6 e1_____6EBB2 U( H" s2 j( h0 O6 g; d$ k
2_____5C1F
: c2 `. p0 O  f6 g7 C/ O3_____4D75* t3 h/ j/ v: z$ R" J4 A$ r
4_____26CC: s: u7 S7 Z& Z6 G. d* A" }2 f: z
5_____4F88
3 Q) w" l( P' H6_____3F4E  r, O3 M8 y* d) E0 Q) y( u" M
7_____0A9D7 |: ]& G* L5 K
8_____1A1C
) `/ P4 |; x2 Q5 x/ T- N9_____6D20
1 n! L8 |/ I! v( f0 x, J5 M9 e0_____10890 b- z9 |& @8 V
a_____0F3E
/ t' F% W; T; z2 g2 [( Z0 |3 P% J7 G, sb_____31595 t: p8 ^/ H2 k, T6 O4 t
c_____3517
( I4 Y; [  C. c5 d- @) f( J/ Fd_____419C
  M5 r. S5 y+ A1 s. U6 j$ Ke_____615C
+ x4 F- [4 S' y- J& q: a# I/ If_____556F
# t& h3 C6 f0 g5 }1 ?* eg_____2B7F
; i6 X" [* u+ T) B' [* \3 oh_____0F9C) F% Q7 y3 C) d
i_____00FA4 ~/ {& ~6 ]0 {2 f. _
j_____5A50. T1 ?2 M! p7 x8 E# E0 S' ~; P
k_____2850
0 K) L& `) E( ~& h2 R% Ll_____3E7B. s0 J7 u0 |$ n# p
m_____71C5
: ~' m# A+ Q9 D$ C6 R* V8 yn_____1FC8
& c! u+ a. A; W: q2 ?9 ]* Bo_____74C1/ H  E' ~4 J% d+ h+ w8 V( ?
p_____5FB80 C0 _: Z" }7 v7 I/ E
q_____6085
- R* [8 N9 K! M. y) u: G  d2 _r_____3AC4
% ]3 `8 S, Q) l/ G9 Ns_____2F50
6 L& j! ^* Z+ @8 j1 u# S: ~t_____36F8( n# g. f$ Y9 ~4 w) J5 `/ h
u_____7010
2 m$ u" q4 v& z' k0 G6 Bv_____0B42
1 z. i+ B2 O7 N* d: C, b3 a9 Iw_____1C7A' C: t4 w, R, Q) d, U' M/ i
x_____16F8/ _) R& g1 }! z' l
y_____2EE70 C* b6 g7 s, |# Q* V* U
z_____5CF3; x7 y, M& o' [, x# C' U
!_____6233& y1 y' n( p. |% p& f
@_____3A456 M6 C* I5 M* R! {1 f% Q7 G
#_____2291
- O, K4 I- e+ r' M1 O$ L7 o! [/ e$_____5D5C
9 M; E1 v6 n! _9 r%_____09B9
- l3 u( n. y! ^^_____43EA1 i3 {7 b/ b9 P( D+ ?
&_____62B9( @& y  q. G& s9 ^
*_____6301( g2 a; u5 L# m: }; _
(_____4659
% r4 \- \( m  X  |0 K)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表