返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm6 p5 V3 i" v8 O5 F  S( \
原始出处:http://www.3ast.com.cm
3 [9 a; H+ n3 ]+ H. K# M! `8 B( a
) C2 O+ c0 J* U& j1 D2 s0 J看不懂的直接绕过
) I7 H' S0 p$ D' R0 G' e加密前为:hwy123456
9 a8 t; G, O4 b6 g+ O3 ^加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E0 @8 n, {$ e+ P9 V- l4 X' L
" G! Z' P. |) I2 C; \
============================================
% c. z; ^& i9 [8 n0 s: N上面是当时自己校内的心情。现在已经解破出来了,分享给大家$ [% g6 D) G) Y+ F3 N* e
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
1 g) K% U7 ^, O以下是RSA算法文件
. l. c2 T, x4 U4 M% C
3 ~/ n# j; B1 g( {( {文件名RSA.ASP1 i% H$ J" F3 u: I, ~! ]2 ^8 W
===============================================  q; o' Z; D: w4 `$ h
<% 7 n2 ~" c0 C' p1 z1 y
Class clsRSA
# v8 z6 v- S; {% qPublic PrivateKey
! [* w2 K- x8 XPublic PublicKey
$ c! q7 n# Z+ ]3 oPublic Modulus * o3 M2 O; n$ u9 v
Public Function Crypt(pLngMessage, pLngKey) 6 {  n; [! q1 u* [# [" G
On Error Resume Next
* q2 u% j$ {0 g# l8 g5 PDim lLngMod 5 v, D/ q1 W2 R! _
Dim lLngResult
  w+ u( [+ b6 x# P. ~0 r9 s/ O( W. zDim lLngIndex 8 ]3 q! [& ~9 _# W8 X( S: S; g/ z
If pLngKey Mod 2 = 0 Then
! k% ~) P& |9 G6 i& R( blLngResult = 1 . C' ]" x" h: \: L' i1 O
For lLngIndex = 1 To pLngKey / 2
5 A; U" c; E4 E9 h: i! z. hlLngMod = (pLngMessage ^ 2) Mod Modulus 3 u1 K; g* r: t; j9 W9 A
' Mod may error on key generation
9 c# ^- ~2 _, p7 D* SlLngResult = (lLngMod * lLngResult) Mod Modulus
8 A* ?9 E9 m$ [; v2 _; ~: Z7 JIf Err Then Exit Function - A: R& {. _2 d2 d  J
Next   n3 F7 b5 v' r  A" P) x/ m9 w
Else ; k: I; Q; g' s
lLngResult = pLngMessage ! i( m/ F7 T( ?% U! T" U1 x8 \8 T. J: Z
For lLngIndex = 1 To pLngKey / 2 1 Q  X% z# D7 V4 W6 \' J& C
lLngMod = (pLngMessage ^ 2) Mod Modulus 5 j1 `0 S3 r0 x+ e- L3 A8 h
On Error Resume Next $ V  x8 U' V3 Y; W
' Mod may error on key generation * z; v7 u5 t" }& o3 v0 p8 {- e: v
lLngResult = (lLngMod * lLngResult) Mod Modulus
1 d2 T3 W' A$ }2 Y2 t# F2 _If Err Then Exit Function
, k8 W% k( S" \7 `. q; [0 p0 DNext
0 E% @" K2 u& E& t$ m: @0 nEnd If 6 J! Z2 j- D+ k) b; u
Crypt = lLngResult
# `4 B7 B& h" _8 k. ?0 |) B2 SEnd Function- w/ o% {1 d0 U* F; ]; E( p" _

" J2 B, |5 X( m. m9 j+ m9 Q6 {Public Function Encode(ByVal pStrMessage)
7 x) Y9 k- F' v) }  g6 _  ]Dim lLngIndex , }4 K7 C) H% z
Dim lLngMaxIndex
) H! q$ U; ^* B( D4 w; @Dim lBytAscii
/ E$ B: \) c4 ]& TDim lLngEncrypted # ^- G; y1 E4 [0 p: x6 {8 ^2 L
lLngMaxIndex = Len(pStrMessage) " G# x1 f2 D. s; d* L$ y3 h1 W
If lLngMaxIndex = 0 Then Exit Function
0 u3 Q' j  d/ wFor lLngIndex = 1 To lLngMaxIndex
  J5 _/ i: i. `2 R* @1 ]lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ! k& i: A# ^: I; l5 s# S9 N, k+ y
lLngEncrypted = Crypt(lBytAscii, PublicKey) ' y$ f6 q3 X7 u0 I4 r+ G
Encode = Encode & NumberToHex(lLngEncrypted, 4) ; R. l/ F+ J: \' J
Next & J0 @$ v' w% O6 G9 `- r
End Function
# X) _6 E: m  W1 s) L4 BPublic Function Decode(ByVal pStrMessage)
+ H# g; R  P  nDim lBytAscii
6 W5 \& p1 u3 x8 J" yDim lLngIndex ; G: F3 k6 v; y2 O* [% Q1 }5 F" E
Dim lLngMaxIndex ! H0 a" X( C" j9 g
Dim lLngEncryptedData
# z; V0 X3 A0 W. mDecode = "" 3 H& R! P$ ?* g" p" \' Y5 h, K
lLngMaxIndex = Len(pStrMessage)
9 q6 P' s! y! o( F5 i% V) @For lLngIndex = 1 To lLngMaxIndex Step 4 ( i. U# T( q+ j: w0 \4 p; D) f5 Q
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ V5 ]* s& M: s3 K" qlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ S! L7 ]5 n9 U- X1 O& f0 i+ eDecode = Decode & Chr(lBytAscii)
8 i, Y. H+ T+ ]( bNext
3 E8 R: z  j; \( p, H; ?End Function # A6 X  ]& M2 F) O& I
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
0 M3 o/ Z( c9 j' g0 sNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
+ Y0 D7 d* \8 _8 h+ A. L( h8 ]9 b( rEnd Function
+ r. e0 R# X+ R7 gPrivate Function HexToNumber(ByRef pStrHex) 3 F/ G: b& }( ~! g
HexToNumber = CLng("&h" & pStrHex)
$ Y' @0 V2 \- z+ E& oEnd Function
' m+ r! D7 s4 y4 QEnd Class 5 A6 }0 F2 \- N* Z6 k0 c1 w& C7 R0 N4 T
function Encryptstr(Message) 8 B5 _/ E" V3 ~- K1 a2 j) E- C. \
Dim LngKeyE
  P9 k5 E$ b, s3 V. Q2 x0 [Dim LngKeyD
8 r/ i9 f  u  f& R9 oDim LngKeyN / J0 V# X& t3 _) i& C
Dim StrMessage
/ a. u9 _$ l. h5 ]+ nDim ObjRSA
( ?4 m$ C" O2 g# w3 }LngKeyE = "32823"
% R" P% S7 [0 G, wLngKeyD = "20643" ' S3 r1 @: H2 n" s% o* q) Z% r3 Z
LngKeyN = "29893" : j& t) W/ n% _5 w$ ~! d9 u
StrMessage = Message , R6 s1 O+ N: w3 @# @9 E) @9 r
Set ObjRSA = New clsRSA 1 R% J- s" b2 t" E: T+ Y
ObjRSA.PublicKey = LngKeyE
- U0 ^5 d) }' @ObjRSA.Modulus = LngKeyN & Q5 o- Z8 h5 \* y* N+ i' K' S5 F) r. a
Encryptstr = ObjRSA.Encode(StrMessage)
3 X$ ~  k: r/ x) L5 ?& BSet ObjRSA = Nothing 0 t7 @" v; ?$ C$ A+ h
end function
( a* z& b7 R* v/ kFunction Decryptstr(Message)
9 V1 f( k' f. b' i" }9 m9 JDim LngKeyE 2 l' x  @" l% y* _
Dim LngKeyD
  v" I& x- k% `Dim LngKeyN
( c/ L. y; X( gDim StrMessage
+ A( t* C4 B6 q0 {7 b# Q; _3 }1 YDim ObjRSA   q2 I; M2 h8 |, e# ?
LngKeyE = "32823"
" m3 s  j2 C$ R* OLngKeyD = "20643"
# S) o+ N2 P1 b3 e) F8 G: JLngKeyN = "29893"
+ k9 k/ y6 Q) o/ J+ ?6 B; vStrMessage = Message + _( j4 O" f% n8 {( C
Set ObjRSA = New clsRSA
! `4 d5 I* {# N5 P* ?: r; @3 x$ ?ObjRSA.PrivateKey =LngKeyD
0 j; I: x3 V; Z% jObjRSA.Modulus=LngKeyN , g! J8 I. c# }5 _" J
decryptstr=ObjRSA.Decode(StrMessage)
* R! U# P" a1 d7 s  x# _Set ObjRSA = Nothing 5 \$ F6 r) v2 o' ~$ b! ?
end function
2 ~% {/ p0 s7 w%>
2 g. o$ N3 e! C) T===============================================' n+ B. q. e; f- l
  \9 \3 K" }( R' X- z
还有一个用于测试这段代码的test.asp
' ]# @" A- H# ]5 N: y+ |" z有兴趣的自己搭建个IIS测试下7 W* h: u6 l8 t
<!--#INCLUDE FILE="RSA.asp"-->
/ N" l* W# P5 m5 I9 A<%
+ i0 M+ U, T3 |9 dfunction Encryptstr(Message)
2 P  N9 ^, L4 H3 ?: C/ x3 v1 N% ADim LngKeyE
: i+ H  x, @0 z  z5 A9 KDim LngKeyD
3 O9 C7 j5 P) y4 h! ^4 h5 ?Dim LngKeyN $ l- k1 e  u% f( \2 m7 c
Dim StrMessage - d  b; h5 b( F& w8 J
Dim ObjRSA ( R: Y7 Z0 T/ m+ ]
LngKeyE = "32823"
9 R% }! W8 ?4 w; y, c5 WLngKeyD = "20643"
) E& n9 M1 l- F9 JLngKeyN = "29893"
# h& P- z6 E; H9 b' N+ b% A+ GStrMessage = Message ( y4 z5 u4 Z, i5 u
Set ObjRSA = New clsRSA . V6 E# @  E# N: K
ObjRSA.PublicKey = LngKeyE 8 J7 S: B- c9 q7 b1 M% D8 A
ObjRSA.Modulus = LngKeyN
0 q& v. E1 @; IEncryptstr = ObjRSA.Encode(StrMessage) ' I3 a$ ?" G* c4 R/ ^2 s
Set ObjRSA = Nothing : ~  W7 {& ?; T, l# D: f
end function
' K! }5 H1 I0 S3 s" t6 p8 w$ L! Wfunction decryptstr(Message) + a: @9 _, i5 x6 ~2 \/ o4 h
Dim LngKeyE 1 |+ V; i+ M  A
Dim LngKeyD 4 y( i; Z4 S& ~! \8 M# W
Dim LngKeyN + @+ g0 R( |9 Q1 y" V$ X
Dim StrMessage
( G: f9 v8 d6 Q8 s  {( a, S  e  MDim ObjRSA
  T9 i  Y% d! S/ y) A5 L; Y  R: ALngKeyE = "32823" 6 ]" N# [# H) z' Y: c8 b7 t) F6 T2 R$ B/ B
LngKeyD = "20643" : d2 O1 J* }8 y4 Q2 v1 `( T! k8 w
LngKeyN = "29893" % ^3 Q4 p5 r5 U& j- m
StrMessage = Message - ]! n0 q8 u8 \3 f+ K) T/ Z, d
Set ObjRSA = New clsRSA
; ?) j- a+ _9 {1 S* S) |ObjRSA.PrivateKey =LngKeyD
, h& `2 G% i! G4 @* ^) N% sObjRSA.Modulus=LngKeyN
  _% F3 u4 D+ T2 r9 ~& Jdecryptstr=ObjRSA.Decode(StrMessage)
* z: o& g2 E; J' sSet ObjRSA = Nothing
; N6 f1 {8 p0 hend function 7 m, c( Q) U0 Q4 z& N3 m
dim last,first
& A  ^4 b& Z  ~! L  Kfirst="!@#$%^&*()"
% A. Q  ], X7 x4 _/ A9 [1 mResponse.Write "加密前为:"&first 4 s, g. x& A! s/ b' y. J  y
last=Encryptstr(first)
% D8 t* P' G: T& AResponse.Write "加密后为"&last
% g# u" c7 w  `' o* h5 g- NResponse.Write "解密后为" &decryptstr(last)
8 N4 I' }' \& |5 W%> ==============================================: P$ T" s7 }' U& S8 t
剩下的就是字符的对照表了
; D5 }1 `# R* ?4 B: ]===================字符集================
; b/ P) {$ A, Z% [/ p4 e2 b8 M1_____6EBB, b1 R& y9 d' b7 o! c
2_____5C1F
, d0 U; a1 s( J/ t3 l; _3_____4D759 A& `, O) z3 ]2 o0 R* T" l7 `+ [# {
4_____26CC0 ?; o. s% R, _4 o0 S  ?# T# ]
5_____4F88
6 v- q  w: x' Z6_____3F4E
; B* e' K# f) @7_____0A9D, K4 O1 F( v- h# U6 c
8_____1A1C3 v$ S+ |& U, ?4 k5 l- K+ L
9_____6D20$ ?+ Y2 F2 _+ j3 ?0 ?3 g% J
0_____10898 q( [) M- d4 k0 V" o
a_____0F3E0 f/ ~# Y2 |4 ~+ f$ r
b_____3159
7 V& |2 E; v2 C4 v) o) v; u* Q# b, r' Wc_____3517. e5 m* ^& _( S5 L' T3 N
d_____419C
; z8 k/ w' d+ |# P$ [e_____615C
- M. W7 G4 p, P5 s1 Kf_____556F
# C$ d8 {  `5 N) X( E7 gg_____2B7F% d' N1 w+ }- J& p) \
h_____0F9C3 p( z# s+ [/ [, h5 g7 \
i_____00FA. E3 F9 ]. x6 ^4 v* r
j_____5A50
- q7 y1 o4 z  Q1 P7 H; |k_____2850
  I1 P: r+ N" `& u$ jl_____3E7B
# Z3 {2 `4 x5 um_____71C57 X6 V% R8 ^& f6 V7 k
n_____1FC8
5 D' ]9 V$ }: X$ _! E0 ~o_____74C1
5 H( o% |% c6 b2 f) B$ f5 m% W; dp_____5FB8
2 @* x: l: X- z/ b& rq_____60850 Z6 Z1 u* e* M% S+ `3 [, {, g9 K+ [
r_____3AC4
( A9 s/ k) Z4 i. U) Os_____2F50- n+ C( f2 H1 b6 B
t_____36F8
# C( y6 R, W) }3 l5 wu_____7010! y, J1 H$ ]7 r- m" g
v_____0B42- \; j0 @8 G  X7 M- N
w_____1C7A
% Z/ W* ?5 f3 n9 H# t' v/ Zx_____16F8
- ?) z% P$ Q$ [. N: b" C$ yy_____2EE75 T4 |8 A/ g9 p0 j0 d! C4 w
z_____5CF3
* |& j2 L8 ?1 n4 S) a* ~* r9 n!_____6233
2 _' y* ^5 Y" t' R$ r  @. v@_____3A45
- i( n' [) M$ E#_____2291- K! u8 Z5 d7 m, H& [. o1 O* F1 I  m
$_____5D5C
' T* B) r; r9 f* v%_____09B9
& b( [* S) E0 a. e^_____43EA
! p8 \' H$ l5 D, A&_____62B9* d" ?. u3 q$ D* T4 E7 [
*_____6301! p) W% x  K2 t$ E# `6 Y) @) y+ w
(_____4659
- c& T1 ]( A; u2 x# w)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表