返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm! ?+ x- C, n6 P
原始出处:http://www.3ast.com.cm
4 m6 O- E% m5 D5 d
6 J" U( O4 d! }看不懂的直接绕过
2 u7 C) X- a) c9 ]( g8 [9 ^加密前为:hwy123456& a+ ?8 t! Z" n0 g
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  |8 W5 B/ i7 L7 E
1 ^- J. e" e) `============================================( g) q# @) x) j% q' o; c4 j( N
上面是当时自己校内的心情。现在已经解破出来了,分享给大家# H4 Y. K1 o/ A. k) @4 Z3 T
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法( g, Z$ ?5 i. K$ A: m
以下是RSA算法文件; U- t! S0 q6 V6 `3 d6 s% y
# _0 a7 E& H  C0 K
文件名RSA.ASP% N9 z; E* P# h% H3 H/ ~% F6 Z. J5 @6 ~
===============================================% Z8 }7 l/ ^$ o* ~' U& ?
<% 1 O% P8 W0 @* S& A' `
Class clsRSA 7 e* p; l7 k& ]  K
Public PrivateKey - C+ P9 o! N. m4 L9 |
Public PublicKey 9 ]: U; `3 D1 L+ f0 K
Public Modulus
% E7 O9 N. S- v4 E0 x7 @5 HPublic Function Crypt(pLngMessage, pLngKey) 5 U% Y& x/ k2 _
On Error Resume Next 6 b4 m8 G9 b! n9 H+ n
Dim lLngMod
9 f  t, a# @; c- r7 H/ `) }- O: ^Dim lLngResult
# G4 v; @5 ?* z3 K  n: y, gDim lLngIndex
2 @0 Y, d, n! R( sIf pLngKey Mod 2 = 0 Then # G+ ], ^1 i  t
lLngResult = 1
$ Q2 f: |7 w9 \5 z  [9 ?& {( tFor lLngIndex = 1 To pLngKey / 2
- S; ^* w' o/ _/ b( TlLngMod = (pLngMessage ^ 2) Mod Modulus & z" R% S, [( e* |, S
' Mod may error on key generation
5 J' U  G% p- m( [: K3 _lLngResult = (lLngMod * lLngResult) Mod Modulus % [9 i6 J( N$ M1 ]' m& d0 b  c2 f
If Err Then Exit Function
0 o+ ?( J- W! JNext
. Y4 j" j9 G: N/ I9 w. D, ]8 V6 e3 ]Else - Q4 j2 ?% B$ D7 ~
lLngResult = pLngMessage 1 g2 ]* ^5 C: @& o) S) h  l
For lLngIndex = 1 To pLngKey / 2
( ~' H( |! Z3 ]2 F& `lLngMod = (pLngMessage ^ 2) Mod Modulus
- d0 O: A+ B# O1 \7 s0 u# o$ FOn Error Resume Next
$ _. @1 t8 o+ b0 |" p8 F' Mod may error on key generation ) @" b2 d9 i1 p  O2 X& q
lLngResult = (lLngMod * lLngResult) Mod Modulus
! y* k0 G% e- u# ]5 Z2 yIf Err Then Exit Function
9 |. x- z0 r+ G: l8 y9 W5 ANext 0 X1 B8 h" G# a4 B$ U' V
End If
4 @: c% a" r3 Z- cCrypt = lLngResult + g9 r5 I. G3 x8 \8 d# W0 L' r
End Function0 o" I" O( v; C% F7 K' |7 U

% O1 g- U4 w. q" qPublic Function Encode(ByVal pStrMessage)
4 B$ I* p9 M$ t0 C0 ADim lLngIndex
  a$ m" G3 w$ `/ J! j4 a) nDim lLngMaxIndex
% t+ B; k' q. dDim lBytAscii
) h8 Y( Z% q7 y; {/ f7 `# p- YDim lLngEncrypted
) ]: W# s) S" A' U( f# d& ilLngMaxIndex = Len(pStrMessage) & l: |8 ?9 E% G+ g, }  ^  C
If lLngMaxIndex = 0 Then Exit Function
' v9 @1 A; Q$ T% l2 `1 rFor lLngIndex = 1 To lLngMaxIndex
4 G, r' k5 t: o0 O1 O3 O8 UlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) - S$ M( h4 ~: H/ c, }
lLngEncrypted = Crypt(lBytAscii, PublicKey) " K# i$ F! I9 ]$ D
Encode = Encode & NumberToHex(lLngEncrypted, 4)
) |! w$ x; b/ h# XNext
* l2 f8 R. L4 J1 k. |End Function 3 S& h5 N" Z, m* V
Public Function Decode(ByVal pStrMessage) 7 x9 h% X) l% B% C5 {
Dim lBytAscii # i" J( G; I/ z; @1 R# P& `' \
Dim lLngIndex $ F4 {2 N" `9 K
Dim lLngMaxIndex
: x) {8 h( q9 V! uDim lLngEncryptedData
! R% j% N% F5 B! q* B$ b4 KDecode = "" ; t% x( y3 O2 e8 A5 P
lLngMaxIndex = Len(pStrMessage) " {' A& t# u- z! S+ u9 _
For lLngIndex = 1 To lLngMaxIndex Step 4 2 a" Q/ m( D3 o: k. h, ^  `/ k
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
! `  l$ a" A: h) S: ylBytAscii = Crypt(lLngEncryptedData, PrivateKey) ; |# ]7 j; w" G4 S. p
Decode = Decode & Chr(lBytAscii)
: L4 a$ I) G$ p  S+ a( T6 NNext
# e4 b* R) s7 e; |& @( c% aEnd Function   S- r7 b0 T# t% }7 a
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
6 v5 Y4 s% u, _+ r% f5 c& b! S9 ]NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) / a, W' w# a; l5 B# Q
End Function
2 I& Z& e# A9 P+ yPrivate Function HexToNumber(ByRef pStrHex) 6 P& ~! B, M9 I$ m# v
HexToNumber = CLng("&h" & pStrHex)
( z9 D4 G, T# ~* vEnd Function
  U# l& y, t6 {6 uEnd Class
& f+ k$ [3 o# m2 P' K2 e9 G2 T* @function Encryptstr(Message)
+ q* }- Z) e0 wDim LngKeyE
1 y3 E% [2 S6 P$ W1 f% GDim LngKeyD
5 H0 U1 ?" O2 Z6 g  fDim LngKeyN & g1 L+ o/ I1 W# E0 \) ^' Q
Dim StrMessage
: S/ e1 V! L( H: LDim ObjRSA
& D) {; V; Q9 B  C+ cLngKeyE = "32823" 4 K8 L4 P* M( N: ]$ X, T9 _" f
LngKeyD = "20643" $ s1 S) {: b2 F3 {7 @
LngKeyN = "29893" & z3 |: V# p, g9 j3 |" Y% y
StrMessage = Message
7 G- c6 F8 E$ O# z" wSet ObjRSA = New clsRSA # @  F4 n" C7 B2 N; Z
ObjRSA.PublicKey = LngKeyE ( b5 v" M9 [0 [
ObjRSA.Modulus = LngKeyN
7 y7 S6 ^* H& w* jEncryptstr = ObjRSA.Encode(StrMessage)
. q- P) z8 Z/ O0 W/ H) [4 pSet ObjRSA = Nothing
0 Z3 L5 |+ i" ^# aend function6 W5 B+ ]/ R1 Q; G8 V! z
Function Decryptstr(Message) ) i4 q; K" V! Q, z. n7 M% \
Dim LngKeyE * v. B: T1 E) Z9 Y' U3 R: M: {
Dim LngKeyD . ~2 A& W+ A/ h4 ~1 g' r
Dim LngKeyN
, l/ _; A1 ]- O  o6 ODim StrMessage
( c* s# \) O. k! Q( ?Dim ObjRSA
2 B% n, ~- V  D( Y8 o1 D3 G  F/ ILngKeyE = "32823"
0 s. [3 i8 T# m% p, @/ C; ELngKeyD = "20643"
+ ~7 f# D0 T, u* XLngKeyN = "29893"
: M. {3 m- r* v; y" k- Z/ PStrMessage = Message
5 X4 Q) u# S5 P9 r& F7 |9 o- kSet ObjRSA = New clsRSA
$ X) j- c! ?  S0 |ObjRSA.PrivateKey =LngKeyD
. }% ~9 [8 \: c" yObjRSA.Modulus=LngKeyN + t" g0 s  Y: l' }. v
decryptstr=ObjRSA.Decode(StrMessage) 6 b: m4 m. w( G$ E; ~) F# ^4 t
Set ObjRSA = Nothing + N  m3 P6 M7 z% K7 x+ _+ _3 U# h
end function
. s# b/ w( ]( f" i) M6 ]8 v3 ]%>
9 l* c( a7 `% P2 ]! l===============================================
$ @. n# V& W2 _
8 K0 B" X0 A: z" a, W$ x& @还有一个用于测试这段代码的test.asp
7 }- N+ _/ K# h! U  F有兴趣的自己搭建个IIS测试下" H: g: T6 ~  `: w: J% S
<!--#INCLUDE FILE="RSA.asp"-->
# c6 y/ y0 n8 Z& p4 x<%
, ~& F2 C% l* H5 b# D' gfunction Encryptstr(Message) 9 f% M4 D& i% i* |
Dim LngKeyE 2 A' t1 w1 ?# u9 h' _" z
Dim LngKeyD ! f( U) I3 f' \
Dim LngKeyN ! i6 b0 J9 [4 K4 P0 |, ]* r, g
Dim StrMessage . T. p& j2 ]  G; [6 N
Dim ObjRSA
2 j4 w, I  b2 c7 ]2 MLngKeyE = "32823"
6 W2 I; r7 \4 ?4 X3 ULngKeyD = "20643"
! R& \- w% B# w$ |. [( I6 I( f1 SLngKeyN = "29893"
" R1 e5 \! E" v, {StrMessage = Message 5 K6 c3 J* w" ?) j( L$ \" Q$ O% ~
Set ObjRSA = New clsRSA
- A( l6 b7 {/ V/ kObjRSA.PublicKey = LngKeyE % F+ c( D% |/ Z8 n0 q' Z
ObjRSA.Modulus = LngKeyN : \! a' |9 `/ N. J
Encryptstr = ObjRSA.Encode(StrMessage) * Q# _5 z0 C' N- R( P; n7 I
Set ObjRSA = Nothing # m2 W! n$ x+ t& e: r9 t( v* S7 Z
end function
* B' ]9 r. a% ?2 [+ T) mfunction decryptstr(Message) & G1 _% J* o6 r( M" Y
Dim LngKeyE 3 k9 e1 y* f3 A% }' {! a: ~8 Z
Dim LngKeyD
0 g- v7 e# M, j: e% }: _1 g5 yDim LngKeyN 1 ]7 d' P5 x6 p$ |+ _9 X6 W
Dim StrMessage : `+ K9 Q9 I: Y1 d* v- h
Dim ObjRSA
6 I3 x# ]+ t- Y  x# v8 nLngKeyE = "32823" 1 c& S3 P; m9 o
LngKeyD = "20643" & w* D9 {! d1 ~# }: Z, |& S: G! i  J: q
LngKeyN = "29893" 5 O9 Z) t+ S* e9 [, K5 u/ T
StrMessage = Message ' ^8 A9 X- o* B/ X- J* D9 e
Set ObjRSA = New clsRSA
* ]- D2 V& R! ~/ q' s8 NObjRSA.PrivateKey =LngKeyD 6 [/ l" J; ?$ a  V' E' x* v
ObjRSA.Modulus=LngKeyN
' F5 w& Q$ Y& m5 j) @decryptstr=ObjRSA.Decode(StrMessage)
' P& z2 L  \$ A2 |% D9 U6 CSet ObjRSA = Nothing
1 X0 D* R1 m# _% P% Q0 pend function   m; S, B) ]; C8 O4 w5 F
dim last,first
8 {7 @* A7 R' B0 a$ ?$ c' p( \first="!@#$%^&*()"
' t6 {: C4 b: s1 L, v7 H/ T2 ZResponse.Write "加密前为:"&first
8 J$ s) q2 w% \last=Encryptstr(first) & U* R: H& i* ~
Response.Write "加密后为"&last 2 y" I8 r" h: |5 q+ K9 z' A
Response.Write "解密后为" &decryptstr(last) , v6 e$ _$ F/ `! x# |  X  d
%> ==============================================
2 W2 }+ ?9 E' z4 G/ W剩下的就是字符的对照表了
# i1 p# a1 ~+ W9 E% P, n. N===================字符集================
# x4 [8 H& r5 ]. R$ K1_____6EBB
. B; g& J/ U7 t  G1 U3 e2_____5C1F
' G2 A. r' O! {3_____4D757 R0 }& {/ k& y* n
4_____26CC) g9 x( R# ?* {% d4 @
5_____4F884 A) D* V7 ]7 P+ m
6_____3F4E
- p# l. y7 V: r8 c  _3 {! d0 x7_____0A9D3 c! h" D) v' r( Z; X1 q% L1 N) r
8_____1A1C
! r  c% y) [# }4 }* h& j9_____6D20
( D% }4 F9 }6 ]7 ?, u$ e0_____1089  m/ f5 S/ l5 J5 y- \3 p' I
a_____0F3E% W/ |# H1 d" C6 a; y
b_____3159# A  d, y+ q# J2 w2 T/ h
c_____3517
2 G" j6 a7 X1 Xd_____419C, m+ M9 ~- k+ I9 u. F7 B
e_____615C
; O8 o2 c  z+ M+ {) s" Ef_____556F
' S" c- v, Z! U2 @' Q: xg_____2B7F
' U( _, }* S* p% E; Q' K, F8 Sh_____0F9C
2 T6 f2 D. W3 u, ii_____00FA
7 H+ ~" W  e# F0 m7 p( |j_____5A50( C4 z/ U, r8 `: A1 \* Y* Z( `# @
k_____2850
0 T& u# t+ F0 B+ I" A2 cl_____3E7B
) s& U# ]$ p% i6 I, J4 E$ c% Xm_____71C5
5 l, r+ ^* _4 ^$ A3 [) ~! K8 Zn_____1FC8
5 Z3 r/ c  L5 K( o) f( M- ~, k3 E' Ao_____74C1
; n) U6 {" Z# y8 |1 hp_____5FB8
# f# |7 ]3 d8 f; z5 ^q_____6085
" L7 u. T% q, D$ wr_____3AC4
3 H0 W5 @8 ^" Ns_____2F506 T! f, l7 V3 a* \
t_____36F8
: v8 R4 _( h2 Q3 R* O+ G; r. Qu_____7010- U2 _% G( b/ u* \* J$ E
v_____0B42" i+ u/ ^% [- v
w_____1C7A5 I9 \) j4 g1 y9 \) t1 u- s9 e5 f
x_____16F8
) O2 W' b* C* h0 xy_____2EE74 w' ~2 C9 @- r! U9 [
z_____5CF3
7 H3 b7 ~- c) K, G) @6 q* w0 |!_____6233
8 e  f7 g3 \  C$ q# f& x* @@_____3A456 ~7 _+ t6 F8 Q& o8 t0 `5 G
#_____2291
- ]) i2 n  i8 F$_____5D5C
) J2 B/ b& C% g4 N' l& e%_____09B92 t! ?3 Y, \: J8 m, c; x& L5 }
^_____43EA
- m9 k: u, b5 V# O/ O% T+ q- q, o&_____62B9
* A- F* l6 ?7 z# r*_____6301
+ K. {9 C6 }/ Z+ d5 Y" q& r  j& W(_____4659/ r+ K$ P: s& C9 `6 R9 w
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表