返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm0 l' q" x# i( s5 y0 S0 z
原始出处:http://www.3ast.com.cm; Y2 D) M9 _- L" O" f% q% ?
- f/ r; t6 m  D. N  C% n# U
看不懂的直接绕过
) T% D2 d: L' ?/ x1 L* m加密前为:hwy123456
1 l$ a# y2 y, a7 @5 k% ?' `6 i加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E' r: w# n; ~9 f: g2 |, u' p

# {  ~, X/ u. E" H2 a============================================
4 |7 S$ m9 O* g- L5 e/ E: |, v上面是当时自己校内的心情。现在已经解破出来了,分享给大家
* U+ R( v$ G& t5 L: Y也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: I( j1 j) A1 z以下是RSA算法文件
8 n0 z- O, x1 u
' |* u6 w- q/ `1 o* l文件名RSA.ASP
0 j# A- m5 Z9 y# F( o===============================================6 L$ A! a: w! a- q4 v, S1 {( f
<% 9 F. X3 s- E: w/ ?* r
Class clsRSA
4 t, P# E  s8 ]: }  ^+ c$ u. tPublic PrivateKey - g7 x3 R4 q) {4 C8 R
Public PublicKey
; d, A6 N8 E% D) kPublic Modulus
4 L& }' s. v/ g- M( h$ aPublic Function Crypt(pLngMessage, pLngKey)
  a0 m' T% R) LOn Error Resume Next $ e9 P% V/ i9 @& x; s9 D# S1 }, P- `
Dim lLngMod , Z) [( q4 w% e& @1 |
Dim lLngResult
: J/ E6 \& r% ~6 gDim lLngIndex + P4 T/ P- r2 E" c! V/ _' \, j
If pLngKey Mod 2 = 0 Then
; T5 q: q' X3 K1 [4 S( ]lLngResult = 1
# s) u. }/ W9 L9 q7 o, B0 LFor lLngIndex = 1 To pLngKey / 2 : m  c* F/ p$ E/ \5 e/ x
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 S3 k8 i2 O; Q% Q# G
' Mod may error on key generation
+ _/ E: n; ~& s( t) S" |0 \lLngResult = (lLngMod * lLngResult) Mod Modulus
2 F  D7 w3 H0 ?If Err Then Exit Function 8 t: T3 F4 D' m2 k% m0 m) e3 K
Next
7 d6 J4 O) x' Z' G  v8 g5 cElse 8 M) ~2 E8 m% J* r0 N8 [2 s' |5 W3 D* N
lLngResult = pLngMessage
9 j* W* k% B+ e+ aFor lLngIndex = 1 To pLngKey / 2   j2 `5 s! P6 E$ f/ |/ q; e
lLngMod = (pLngMessage ^ 2) Mod Modulus
( j' C5 d. Q2 b- r2 h8 }& `On Error Resume Next 1 G* A( G& y7 W/ g- D+ \+ z
' Mod may error on key generation ! C3 k% I. n/ n+ H- Z- n5 B
lLngResult = (lLngMod * lLngResult) Mod Modulus
7 `. Y. u/ y+ b  _+ v7 |If Err Then Exit Function * ?1 D6 q7 H' D( K
Next 3 u. q3 x$ g7 J# {
End If $ G5 R% A) h4 ]- B' P9 g; P5 i. a
Crypt = lLngResult % U* s& p! u6 ^$ ^. t% S3 `, g
End Function
% t; c6 V6 w7 A) x( t$ p, W7 Q  ~+ Q. N
Public Function Encode(ByVal pStrMessage) # l% I* X3 X( A# O+ U2 h- b9 n. B' I
Dim lLngIndex ; Q2 o& L+ K, b% F. ?
Dim lLngMaxIndex
) f1 I1 j* M7 X& M. o; w& E4 uDim lBytAscii 8 {* K9 M. n6 k- n0 J& t- w
Dim lLngEncrypted 4 q% Q, {' i4 F* Z, m
lLngMaxIndex = Len(pStrMessage) 9 C) d# q& f4 S) e' |) B; ~% o
If lLngMaxIndex = 0 Then Exit Function
) v) t' M' u* Z$ u0 ]For lLngIndex = 1 To lLngMaxIndex 0 F& f, A  Y2 J0 g7 b3 c! q7 d
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ u4 C# M2 U0 Z0 D* l& ?lLngEncrypted = Crypt(lBytAscii, PublicKey)
, |" g. M( V' P9 YEncode = Encode & NumberToHex(lLngEncrypted, 4) , t5 Z4 m* c) d+ ]: q
Next
1 L3 I: O# O/ p& B( V0 g5 E/ I) OEnd Function
' }* N( n6 L8 GPublic Function Decode(ByVal pStrMessage) ; H$ H% {# k! t, m) i7 y
Dim lBytAscii
2 L/ i$ F2 k8 e6 kDim lLngIndex % j. m. o5 e4 x
Dim lLngMaxIndex 0 k$ E1 C# \8 b! l1 t* w0 X" h
Dim lLngEncryptedData
; V, o/ r; f4 w3 a. [& s9 H+ l; }Decode = ""
' k5 d6 A9 `( q% \3 ~7 F" R5 U  slLngMaxIndex = Len(pStrMessage) $ ~; R8 r. a1 J( `
For lLngIndex = 1 To lLngMaxIndex Step 4
4 u! L4 T* a) I  n3 alLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 1 N& m" Q# ?$ C
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
: w( }8 `3 l3 E+ KDecode = Decode & Chr(lBytAscii) 9 X( n2 ~9 t- ]
Next ' _% @" v+ i' f& s$ g& q
End Function
9 g# [' g! d2 }Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ' I+ n/ P8 m1 C4 g' O: n( p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   m) I% d% P1 }% S, u( T% G7 ?
End Function , Q9 S: ?$ V/ U) M, z4 W
Private Function HexToNumber(ByRef pStrHex) ( l$ y. Q4 d$ N* P0 ]; Z0 Y
HexToNumber = CLng("&h" & pStrHex)
# k3 ~& u" H2 kEnd Function
; w8 n' a2 }8 e& C4 Q2 R7 P( wEnd Class
5 W# G/ O- m( J# w6 efunction Encryptstr(Message)
1 u7 l9 h7 q' z$ p8 SDim LngKeyE
6 y" R. q" p+ J* p4 x  pDim LngKeyD
. ]- K, c8 J, O  t+ k( }. [2 DDim LngKeyN . d* ^& E5 J7 L# G1 l0 R  B% [4 ?
Dim StrMessage
9 W2 K4 p; r' iDim ObjRSA / O0 y& i% Z: ?& H' e
LngKeyE = "32823" $ a2 B7 Q& a: t. g+ _
LngKeyD = "20643"
7 Z( k2 N5 F' Y. B3 Y  g1 \LngKeyN = "29893"
/ K# u/ g, y' ~* x, {4 q) sStrMessage = Message
2 h. ^+ y* e$ p2 O! f  NSet ObjRSA = New clsRSA 5 e; q6 Y0 k0 Q/ d2 g& `
ObjRSA.PublicKey = LngKeyE
  s' E9 V1 d8 w* w6 ^0 J6 OObjRSA.Modulus = LngKeyN 2 A- F  t  w: h9 r
Encryptstr = ObjRSA.Encode(StrMessage) 7 M& y' ]/ H5 [+ ~1 K
Set ObjRSA = Nothing
; y  ^( r  O  V$ n% o# [end function) _% F6 s- ]8 ~# v
Function Decryptstr(Message) & Y1 H7 _3 h- D9 w" e+ b
Dim LngKeyE 7 y  g6 z# h! G% R( d
Dim LngKeyD 6 _" g. s- f9 M9 ?1 y7 L
Dim LngKeyN # H% M5 H8 n4 C7 \( ?5 X" g9 _
Dim StrMessage ' a+ `2 ^: ?( J) g
Dim ObjRSA 2 S* W; X% ~1 y, v4 P
LngKeyE = "32823"
2 U* ?/ [$ \# F* j+ NLngKeyD = "20643" 1 X9 w" ]2 I; l! |
LngKeyN = "29893" ' K7 h3 d+ I5 t, D! j. U! `
StrMessage = Message
9 |2 a7 J7 E. qSet ObjRSA = New clsRSA   s: z# C- z# n& U% L' o$ m
ObjRSA.PrivateKey =LngKeyD
+ P2 L6 p, I' S& o& TObjRSA.Modulus=LngKeyN
2 Y6 h" D1 G% ~% k+ X6 hdecryptstr=ObjRSA.Decode(StrMessage) 4 r# I/ r; [: c7 n
Set ObjRSA = Nothing
' Y5 M# }+ @5 Fend function
$ d5 ^" K# ?" p9 M% e%>0 i) X8 F+ z2 l
===============================================
. Z/ D% f, @- y3 `3 f9 d
+ E! b* d. A( I. Q  `! c还有一个用于测试这段代码的test.asp3 Q- J5 J0 \& f  ]: r  M' ]
有兴趣的自己搭建个IIS测试下
! m' A/ M% t! L5 f<!--#INCLUDE FILE="RSA.asp"--> 3 {/ ^; x/ Q  o0 ?5 _3 ~! \
<%
' K. D5 M5 c; [% A& [* z; ^function Encryptstr(Message)
* M( g$ Y' a2 M1 R" rDim LngKeyE
8 W8 o3 M0 W8 n# gDim LngKeyD 1 J+ Q  u  w2 V
Dim LngKeyN - s/ `% x6 e9 L- A+ f5 P
Dim StrMessage * `  g# `- \" k, Z1 ^2 u
Dim ObjRSA / ?; Z' R" G, [* g: [+ H- n8 E8 G
LngKeyE = "32823" 6 T' i; O6 Z4 v" [) V3 T
LngKeyD = "20643" / \3 g- g1 y& _1 z& T7 l
LngKeyN = "29893"
& Z3 N; V% W( x, N7 LStrMessage = Message 4 r) \% K5 g; f+ s; n
Set ObjRSA = New clsRSA
5 z& v; \& q+ z1 |) W: B5 g5 sObjRSA.PublicKey = LngKeyE 0 U9 _, E. q3 D( s: c
ObjRSA.Modulus = LngKeyN
% Q: U0 X% g- y3 i% X& }Encryptstr = ObjRSA.Encode(StrMessage) : M3 I0 m/ ~3 \5 g& a0 w
Set ObjRSA = Nothing
3 |( k; H7 Q. G7 e8 Y7 jend function 0 g% ^  g$ n+ n. {$ G8 p, `; u
function decryptstr(Message) # ~3 q! d6 y* P% Z
Dim LngKeyE
3 ^; m1 U' i% m. IDim LngKeyD , j0 O) ~' D# q" _! N
Dim LngKeyN
8 L/ Y' C; _$ P4 b5 Z; MDim StrMessage 6 z& ]5 e5 ]) k# h! k
Dim ObjRSA 2 ?  m, X( z( u) j
LngKeyE = "32823"
4 D+ U/ h5 [$ ZLngKeyD = "20643" ; V) x# D: R5 X5 m9 f' R
LngKeyN = "29893" $ r, z6 _8 S7 D4 s
StrMessage = Message
: E. l, w8 T8 K% r! f  fSet ObjRSA = New clsRSA
9 C! T6 d" d3 f) e8 r! {ObjRSA.PrivateKey =LngKeyD
* F6 u2 m6 Y- SObjRSA.Modulus=LngKeyN
! o5 o6 U, o4 l; ~$ N! {decryptstr=ObjRSA.Decode(StrMessage) 5 ^) f" f0 I" p6 G
Set ObjRSA = Nothing 6 e, [& X6 [$ s! e# |
end function
# h- b3 V  u  Edim last,first 3 z, a$ h. z) \- i$ `; J
first="!@#$%^&*()"
- u6 r1 p) p! o4 j) H7 B" o, f& VResponse.Write "加密前为:"&first
4 N* @, J" T* P6 a0 C; m4 Q; dlast=Encryptstr(first) ; |- n" f# b& m" H0 }+ I
Response.Write "加密后为"&last % J3 g6 {4 D( `) r3 E
Response.Write "解密后为" &decryptstr(last)
* i' C+ h6 H! X%> ==============================================, \6 X: R* s; N1 S* |
剩下的就是字符的对照表了
8 d1 V. B0 [2 B===================字符集================7 {3 `( E$ d: o8 X, \! L
1_____6EBB% L4 d2 K) P0 k4 p+ D
2_____5C1F" A5 _* r/ g, i: U/ q0 z" d2 G+ `! k
3_____4D75
+ d! x! n8 Z3 C# X& g4_____26CC
% _$ [7 Q; J# p6 g. b5_____4F88" _" e2 w8 x' T0 S1 E5 b7 {- H
6_____3F4E" n' ]) Y% J- [+ v9 y, k# S3 o! V
7_____0A9D
3 W0 l) i1 o$ U: t4 F& _8 |( w$ B6 _8_____1A1C# }, D  b: P9 J5 c8 u
9_____6D20
- T, q  {" {7 m0_____10892 ^, u0 X# E/ h
a_____0F3E5 Z$ H# s9 {4 C7 R( r
b_____3159
# n: v% H$ V- t, Oc_____3517& L' ]6 n) m5 C/ I
d_____419C
: D  b* r4 |( @* ^e_____615C
8 o/ G6 e& o0 n! Nf_____556F0 D7 u8 ]/ Y. x( k) k
g_____2B7F, [7 E9 }$ v& ^0 C* r' E! @1 G
h_____0F9C" I5 W; J8 u; S0 N/ q- ^0 [
i_____00FA
* v0 K" `  [3 k- c- v8 dj_____5A50
1 j' S0 M5 D2 d# R7 l# Xk_____2850% }( q7 D& F+ V' p" b; Y
l_____3E7B$ o1 m' e) a9 a4 f2 p2 w
m_____71C5
. S) d( a" G1 d' {0 J5 ?9 r, Sn_____1FC87 {, [5 H: P9 F% y$ O/ k9 X
o_____74C1
9 f! }' J- R  J& ?% E( ~p_____5FB8
) J) w! ~& l( r/ M7 R! ]q_____6085
3 z+ I9 j' X5 Q0 T1 tr_____3AC4
8 w' O! z% d0 y$ ms_____2F50! V; M* L8 x: T' ^
t_____36F8
' o$ m. Y; Q# wu_____7010
: p) q" `* e% K! j+ Y6 W$ A/ v7 O1 Wv_____0B42# W( H) a$ o/ i5 c5 h
w_____1C7A$ a4 }) Z# u2 L2 f" g" ?9 u5 D' l
x_____16F86 ?# A+ D! N" `$ t) b+ Y
y_____2EE7
* n5 C. c  x& Rz_____5CF3( x& R/ m' e  w; V) b5 J
!_____6233
' H1 x, J$ r  L4 w8 {@_____3A45
. L) _. x4 n0 H; O9 D( t' h#_____2291
2 ^2 a) p2 [6 X3 ]$_____5D5C
9 g4 L6 H% R  a/ W& f) c8 Y+ K. y%_____09B9# D6 D( i# y# }2 X
^_____43EA1 B* d$ j$ `8 a0 _6 ?
&_____62B9
: O& @, F: i0 k/ i" l*_____63012 j0 I5 t: R5 R
(_____4659
( v4 y& G: ~) O: p)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表