返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm! [8 K/ ~9 ^1 T. f/ K
原始出处:http://www.3ast.com.cm
+ b1 L; e1 r! j) J) O" D0 G6 Q/ e# V5 B3 v+ e1 H/ Y6 h8 o9 M) p. e
看不懂的直接绕过
; }* P- n1 h3 c( g3 U5 H% P加密前为:hwy123456
& N5 \3 T& x- d6 I4 \7 b' A( {' C加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 T$ `4 M2 H; P3 f, [$ a7 V
+ V. P9 O) B5 V; u============================================: g* T+ l9 O& q" ]
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
& B7 U! B& ]7 T% v2 u9 m, k也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法" T. |; l/ d0 j
以下是RSA算法文件$ n- f: {* U4 A% a! B  C* }
+ O( U" }5 s/ m! s
文件名RSA.ASP2 Y2 F8 w9 q: d9 J% K
===============================================. p3 j' Q* K- \) @
<%
0 o* H3 q1 a. k2 g1 d9 V% J5 j% k$ xClass clsRSA 1 v" \; }  i5 v6 ~
Public PrivateKey
6 z$ c) c" w- ^0 \6 `Public PublicKey # B9 U' m4 K& R7 J) d- k3 M$ h
Public Modulus : E9 w4 a6 ?4 S4 j; {: z* t
Public Function Crypt(pLngMessage, pLngKey)
# y( i: r: E9 N  H& _On Error Resume Next
, e2 Q$ c0 z% g0 r2 H/ QDim lLngMod
" ~8 i: S  I. y3 Z" IDim lLngResult
2 P: a0 m8 \* I# zDim lLngIndex 4 ?1 N9 F7 s; w9 K
If pLngKey Mod 2 = 0 Then
5 y; N" X: S$ |) M0 ?lLngResult = 1 2 q. n$ x: J* ~* n! |) w, W
For lLngIndex = 1 To pLngKey / 2 & |$ X' B- [) h$ u* u3 Q/ _
lLngMod = (pLngMessage ^ 2) Mod Modulus
% `8 p6 C! v0 G* j' Mod may error on key generation 3 T9 ~  D- o; t  l2 G
lLngResult = (lLngMod * lLngResult) Mod Modulus " @- _! |5 H: J+ _  d
If Err Then Exit Function
/ N. T$ t) x8 {2 i) V. a9 sNext
7 g+ r/ r2 Z* D% {. S1 UElse " h- e) K& S# M* Q5 m+ @3 R
lLngResult = pLngMessage
2 }  P: h$ P  S; ?" ]7 }For lLngIndex = 1 To pLngKey / 2 , |- W" h1 j& }0 b/ c: Y
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 O- B5 e% d7 ]% _, ?' g1 M0 S
On Error Resume Next
5 B$ |+ ~6 z7 w2 {, A# I' Mod may error on key generation 4 q, p* G, Q& T6 H8 A# v
lLngResult = (lLngMod * lLngResult) Mod Modulus
) q* q" S% ]1 C! SIf Err Then Exit Function # m  D6 K/ j9 x, l  f2 E. {
Next
. K& i' W, c9 ~$ x! d( a5 l  hEnd If
# U. i# U2 J: j' d4 [Crypt = lLngResult
8 A4 P7 z, j2 R4 u( ]1 y  r5 lEnd Function2 ~3 C, @- m6 y+ Y- n
6 @, D9 p) x" C' P; P* z# j
Public Function Encode(ByVal pStrMessage) * V7 n: e! o/ n4 u7 j; `/ k* A# ^
Dim lLngIndex
2 j( ]' V6 P2 c2 \8 w; |  FDim lLngMaxIndex ' H7 J4 ]" m/ J) X9 C9 O6 b4 ^+ j
Dim lBytAscii
' e2 T8 Q, m) z. N0 b3 X" vDim lLngEncrypted . `9 ^4 }9 j. Q2 C+ S- ~
lLngMaxIndex = Len(pStrMessage) ( |3 P0 B5 n- l% ?* t& z9 g( F" u
If lLngMaxIndex = 0 Then Exit Function
: \# K, S- y; s( A, N, {For lLngIndex = 1 To lLngMaxIndex
3 p0 V5 a  t; P& y0 P6 glBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 8 r' y. }7 {+ x! k
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 C9 z# A5 z9 K. A# w1 `
Encode = Encode & NumberToHex(lLngEncrypted, 4)
; M) f/ F4 O8 }) SNext
& Q" I# p* x3 t8 u% A0 E) rEnd Function 1 |* M. [- a" Q7 n# j. D2 ?. ]
Public Function Decode(ByVal pStrMessage) ) ]' ^1 b2 l# |5 U
Dim lBytAscii # ^& c% R0 c* Y8 ^: t( [4 K
Dim lLngIndex
& L' M% S5 v/ x8 D2 {# r( m  qDim lLngMaxIndex
9 s' }0 z' K) Q, U) fDim lLngEncryptedData
+ Q& y, I+ F  R9 s' q' HDecode = ""
: e. q) A1 I" d5 K5 j0 \lLngMaxIndex = Len(pStrMessage)
9 ^9 Z- Z: X# l# c, u' jFor lLngIndex = 1 To lLngMaxIndex Step 4 4 O8 H7 P" V% b3 E/ g7 r8 Q( D. J
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 d$ ]" Y( y* N% e. }! n! QlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
1 w4 @2 ]  U1 ?9 i4 o6 O8 PDecode = Decode & Chr(lBytAscii)
; x+ O6 z7 Q6 F# m, p, O4 UNext 5 M3 v, C- O' L" G  i5 _
End Function ' f8 `9 Y( b" f2 c& H2 e: B
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
+ v2 }/ I2 c. p+ ^NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. B2 f) H' l% J, l' JEnd Function 7 s# ^4 X, @. M- U7 E4 l! }! K
Private Function HexToNumber(ByRef pStrHex) 1 M3 c7 I/ f) u" f& z+ i
HexToNumber = CLng("&h" & pStrHex) + h: W) Z$ `4 N2 D: }0 H! F- Y
End Function # d. {2 ?$ \' U4 }  s+ A9 r' S
End Class
( `  t& {- h. s% @. L% Afunction Encryptstr(Message)
) b3 }0 W" {$ X: RDim LngKeyE * G* ?$ c0 \  N9 }$ u
Dim LngKeyD
  y. L  B3 }9 NDim LngKeyN
. @' R( `' y2 S. ?! r; @% J& s" f) LDim StrMessage
) J& C! d6 r; F& T2 rDim ObjRSA
) i2 j: W# x4 {; ~LngKeyE = "32823"
5 ^: [+ P1 v& PLngKeyD = "20643" ' r0 P! ^/ c+ K% z5 w) h( l
LngKeyN = "29893"
+ a6 @# T/ N( m0 FStrMessage = Message $ d! x3 C9 K) w6 D4 K* S
Set ObjRSA = New clsRSA " Y4 O6 x* j0 e& l
ObjRSA.PublicKey = LngKeyE
, _2 [$ p9 V. t3 ]& aObjRSA.Modulus = LngKeyN
1 W+ _. q1 W$ x& Z, T5 {4 fEncryptstr = ObjRSA.Encode(StrMessage) 1 g5 U- O$ a& ?# F
Set ObjRSA = Nothing 6 T6 B% H* s$ G0 N; E* w
end function
, r. k# X  k: n$ UFunction Decryptstr(Message)
  K* O" F; g2 w- J3 G9 jDim LngKeyE , ^7 p, q* A8 ]: x% f
Dim LngKeyD
+ D- h1 ?+ |$ E! a* IDim LngKeyN ' A1 d& v0 A0 k6 ^& S" f% L% ?" O# V
Dim StrMessage ; i# y% n; g" A6 b
Dim ObjRSA
9 e: _1 ~% ?- M& u: ^: t1 ULngKeyE = "32823" . K3 l* H! k7 |5 ~7 g
LngKeyD = "20643"
% r9 R  d" _9 i2 N% E7 aLngKeyN = "29893"
7 y9 ?% R" y3 y" L# g$ z6 F7 ?StrMessage = Message ) l# i) i, e5 @! S. }% M
Set ObjRSA = New clsRSA
; c' l. m. h0 mObjRSA.PrivateKey =LngKeyD
- @0 Q7 C% `" P6 K' ?ObjRSA.Modulus=LngKeyN
" f$ Z3 `2 y1 `2 T" x. {1 c4 l0 Qdecryptstr=ObjRSA.Decode(StrMessage)
0 m9 p) t* n3 I! d' |6 V  ^4 \4 QSet ObjRSA = Nothing ' L$ _# h: ]$ k( t  O5 ~1 H* `
end function 9 ~  z  S" d- t, K3 c' ^
%>, m7 l" G* V9 ?, ]
===============================================$ T! H% X& ~$ D! V0 L2 i

, y7 g5 Z( v0 H- ]还有一个用于测试这段代码的test.asp
" \6 \1 j# A3 b4 {" [3 c有兴趣的自己搭建个IIS测试下! H  I3 g, f: R6 A
<!--#INCLUDE FILE="RSA.asp"--> * K; n) M( y0 ^$ `( S5 h" C
<%2 g7 Y6 z+ W+ |( x+ H( x1 a& {% p5 E5 H
function Encryptstr(Message) ; t1 a# ^# d- {) b6 D) n. W
Dim LngKeyE 7 [6 [# _4 Q* ?1 q( y; f- Y2 A
Dim LngKeyD / U0 \4 _) M8 R, n
Dim LngKeyN & T1 v5 n7 m" N# M0 ~$ s
Dim StrMessage + H  e3 p) k6 V9 Q4 k5 n
Dim ObjRSA * N4 n% P" K' e% y
LngKeyE = "32823"
' F1 r3 L4 X4 n3 Q7 _LngKeyD = "20643"
$ K( ?1 R4 \' x4 |( j) t6 _LngKeyN = "29893" 0 k; w+ f3 t2 g: \/ W
StrMessage = Message
' J# H9 f8 d* X9 c# M+ U2 b- WSet ObjRSA = New clsRSA
3 m: F4 z( N: U' V$ r) f. p$ zObjRSA.PublicKey = LngKeyE
. b( A5 V: M5 G- m3 Y- ^ObjRSA.Modulus = LngKeyN 8 M# r4 p3 s& B1 D% h
Encryptstr = ObjRSA.Encode(StrMessage) 7 B4 R" g& C1 U6 F7 Z" L6 G. u% n
Set ObjRSA = Nothing . {* E6 ?/ Y1 e) [$ q9 F
end function
  E* P$ o$ |& X- Z) o1 T0 kfunction decryptstr(Message)
+ t+ V& x: N' C% UDim LngKeyE % F" Z/ H$ e) t( b1 Y  M# c$ H
Dim LngKeyD
' @& m4 o3 M% @/ B  U' WDim LngKeyN , l. m8 h2 D, h, T. O
Dim StrMessage
, [' m  O5 D- C$ h! m) JDim ObjRSA 1 o, N% q) H( f4 G- E; O4 Z: ?
LngKeyE = "32823" ( t4 }8 s5 c9 D) y
LngKeyD = "20643" 0 G# t  \6 l/ V7 y* R/ v
LngKeyN = "29893"
# B0 B2 O/ }  H& DStrMessage = Message
* l* Z& p* q, i5 T  {8 `2 nSet ObjRSA = New clsRSA
: ]; e$ H2 x! _4 g( zObjRSA.PrivateKey =LngKeyD ( q* d9 {6 s& R$ N
ObjRSA.Modulus=LngKeyN
2 P; p8 b' ~& [9 kdecryptstr=ObjRSA.Decode(StrMessage)
4 ~  e3 s4 H. e' s2 A  wSet ObjRSA = Nothing
; S9 U: q% K& a5 L4 p) Yend function
( X- l5 R: g  R& h- Kdim last,first
6 [4 ]0 r6 [! v7 @first="!@#$%^&*()"
  |( D2 y# j5 V# UResponse.Write "加密前为:"&first * q$ X: t7 @! G+ H
last=Encryptstr(first)
0 b8 M4 q- g$ m8 H0 A# iResponse.Write "加密后为"&last
2 W: _, H& d* S5 b$ \% C8 K4 EResponse.Write "解密后为" &decryptstr(last)
% ~% d1 n' x4 c; O) Y; r+ q9 y%> ==============================================
  b  Z8 {2 d) M- n剩下的就是字符的对照表了" E7 x  {  e3 V+ G) @& l& B0 x; J
===================字符集================
& P' T9 _' A( ^# s3 @- v3 L1_____6EBB8 {  U! q5 n1 r. A3 D5 h
2_____5C1F
% {% z0 O( \# H2 g. g- ]3_____4D75  o/ p# l9 N8 A0 D6 D$ K4 D
4_____26CC
( R3 q& J( l9 f$ B* ~7 H% M* W5 E7 V5 i5_____4F88
+ H) i  P8 h, X6_____3F4E3 @6 @. J8 b7 x) C- z" O4 p4 `
7_____0A9D
0 ~3 r, F; ^- z" d8 ^8_____1A1C
* g' K4 z# R$ G- M9_____6D20
( J. N4 R. h8 ?0_____1089" M$ g0 c+ ]6 ^% ?' I5 D8 M
a_____0F3E, a( L1 P& d8 Y9 k0 U
b_____3159- Y0 j! Y0 v6 K- a  J  K
c_____3517/ D7 \* F+ e& f" _
d_____419C/ j7 k- Z* t8 _, T  V
e_____615C  @: N- Z9 g' Y4 {: J+ _) k
f_____556F6 s- g0 ]# W% c$ z5 d& \4 h% J, X
g_____2B7F; o' Z9 U! \- n
h_____0F9C
0 N" @  J8 G( E4 F. s1 wi_____00FA3 Q9 ~4 e- j! t" t/ [
j_____5A507 f( q& X4 c( m! n2 [$ T
k_____2850- H7 @3 T& V. P) S# I" |' o3 q
l_____3E7B
/ l! l" H: U& S% J! G3 q0 }m_____71C5
9 `7 R) q5 I$ \, k& G" Mn_____1FC8+ T: `# u+ @' j
o_____74C17 W& ]( [' q1 P( d
p_____5FB8
" }$ M2 t' J) n  z2 e$ ^q_____6085) }0 N( _( ~7 }) T9 N9 ^
r_____3AC47 N0 P$ B% M+ Y% U% q. Y1 r% X
s_____2F50- L! V% ^+ {7 e. }" c$ t, q$ i
t_____36F8# [( _( Q0 h/ Q$ Y
u_____70108 d% {  P8 ?# v$ v& ]
v_____0B42
0 {8 O& F7 ]7 }0 c$ O. r0 bw_____1C7A/ Q) N" a; X/ z8 A  t& S1 x! n( [# {
x_____16F8
9 S+ n# z, _: D" f  [- {y_____2EE7" A4 _  V0 M: G- \' I
z_____5CF3
& z; G2 k5 T" t6 O6 W+ j- o" p6 |7 b!_____6233
( H" `) f5 L3 L0 h@_____3A45: h4 X' e6 K- s: P# o2 K* d1 ^
#_____2291
. M9 ^: x; z. J1 o% R9 O$_____5D5C9 ~- l9 k4 n* P. r' }# ?
%_____09B9& W% Q2 S9 c; V( l- G
^_____43EA
7 L- r  v* p6 E$ `9 }( `* p* h, u) Q&_____62B9
( Q- K) Q2 z& g- q*_____6301
6 }6 j! p4 F/ P- I2 i& L; |(_____4659
0 T" j7 |1 ^1 O" o)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表