返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
  p1 O* \1 b0 f: s% A$ }& K原始出处:http://www.3ast.com.cm, \6 n1 B) P9 @6 L6 g" N, r$ u

3 _$ r: @6 z9 }3 I8 ?看不懂的直接绕过' U. w4 w: i: S7 `2 {
加密前为:hwy123456
% H( N7 n8 h3 f$ `# g& O( t$ S加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
/ f6 s6 j1 ^6 r& m( V/ J6 T% C/ Q, @* P2 d3 P* Q
============================================
* X. n1 ^% l. B) e0 |6 X上面是当时自己校内的心情。现在已经解破出来了,分享给大家
2 I; X5 ?6 u- ^8 Z也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
7 q, O1 b0 ?/ g4 Y* K以下是RSA算法文件+ w" D( k/ y4 c# }! n* S

9 @8 R1 v2 V4 P( w! S; e; I文件名RSA.ASP: r$ j- [+ }! r' \; c" X* C; `4 {( Y% C
===============================================
% p/ Z2 C+ j! Y. d<%
% E/ _: H- _) WClass clsRSA
- U2 ~9 h( W! r, L+ \Public PrivateKey
, t' i" ]6 Q1 J. }1 c( J# j" G* z4 JPublic PublicKey
3 Z4 V( G: |4 d" M. c" lPublic Modulus
' o* K/ \7 _* G+ hPublic Function Crypt(pLngMessage, pLngKey)
) j+ ?9 [# H& L: ]4 k! ]On Error Resume Next
% M4 B% P: r* }* vDim lLngMod
. \! @* i0 N3 \7 O- I4 rDim lLngResult & l) M- ^( o3 ~' O, v
Dim lLngIndex
, \5 N7 O+ ~% X0 [( KIf pLngKey Mod 2 = 0 Then ' i* N% Q! P( z2 h1 G+ O. y
lLngResult = 1 % ~' ?- o! K5 |
For lLngIndex = 1 To pLngKey / 2 % c& t( t( S: H# l1 @: f+ o9 Z
lLngMod = (pLngMessage ^ 2) Mod Modulus
- I' U4 G$ ~- `7 V( p, a, A' Mod may error on key generation - L- B# l$ Y: S
lLngResult = (lLngMod * lLngResult) Mod Modulus
. E3 d  ]2 Q9 B. oIf Err Then Exit Function / ]; s& ^6 c9 U8 s
Next " U+ F& a% T% {, S& Z7 Y
Else ) @% i3 N3 D/ X1 X. X) w( Y0 @3 L
lLngResult = pLngMessage
) o3 j3 O# }/ a. Q8 \, J# r( G) I' _For lLngIndex = 1 To pLngKey / 2
2 V. T  q6 S4 c6 h+ mlLngMod = (pLngMessage ^ 2) Mod Modulus
+ b& S. Q& r( G3 {' G6 cOn Error Resume Next
0 X2 e& h& H9 u/ v% C5 {" z, j! T2 ]9 h' Mod may error on key generation $ @) g; e- e3 p( S; {& C4 W1 M
lLngResult = (lLngMod * lLngResult) Mod Modulus
( j( h& Z9 f3 A% F9 JIf Err Then Exit Function
! K( E( M' T7 b' W% ~' `; zNext
6 W6 s6 c6 B* Q/ K* \1 W4 Q! ^End If
1 x/ b) J, B3 CCrypt = lLngResult : }* J" J) \- i2 u( J$ W
End Function
# k' ?( U5 _1 r; f, l
8 s3 r* c& ?7 b  F+ n' dPublic Function Encode(ByVal pStrMessage) ) \( h/ R  I1 e. R0 L
Dim lLngIndex 5 t( P+ R) t- ]2 u
Dim lLngMaxIndex - F7 d, {. P2 ?; \
Dim lBytAscii
# E4 J2 `! p; i; ?2 K: y$ Z5 p5 ZDim lLngEncrypted
! e, n3 i/ W/ [. i: i; ?( i4 f1 O8 {lLngMaxIndex = Len(pStrMessage) 0 ]& Y, g3 f, B% r8 D6 D
If lLngMaxIndex = 0 Then Exit Function / {; u8 |: s- X6 ]
For lLngIndex = 1 To lLngMaxIndex
. g; ]8 f  [1 k4 klBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 5 e0 K$ Z( d$ l5 A* {& a% s* x! j
lLngEncrypted = Crypt(lBytAscii, PublicKey) . b5 d1 E: ^: ]* L  s2 q! z! i
Encode = Encode & NumberToHex(lLngEncrypted, 4)
! K; I7 m" k* r% p" y, f  INext
. t, G9 M2 R7 A5 h) o: N3 h9 E; ~5 IEnd Function
$ b# p$ K. f+ N' ~Public Function Decode(ByVal pStrMessage) % P6 L' d/ A+ p1 a3 |# u  \
Dim lBytAscii
! N8 y2 \- i7 A$ s  s) I& P) xDim lLngIndex 7 F: f9 e: P  a. w4 s3 {+ ^" K/ F
Dim lLngMaxIndex + G# @7 \6 h$ C! J
Dim lLngEncryptedData
! g2 d6 Z' }6 W/ B4 `Decode = ""
! v6 a7 z& p+ I4 `, E2 [9 {lLngMaxIndex = Len(pStrMessage) ; M8 k- P8 f: J4 G
For lLngIndex = 1 To lLngMaxIndex Step 4
$ _7 C' t+ N: _' a# s) h" }* M  ^lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) / h+ j! l( N' v* f7 d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 }& r; n: Z" r! t# _* b/ g7 lDecode = Decode & Chr(lBytAscii)
3 J- {+ c) G5 C/ v" CNext - i9 F1 |& m# u' o
End Function $ u& q6 x# a  P; }+ b+ ?
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) / |  n& t$ l, [  W1 z
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 8 @5 T) k% |6 s- r, \
End Function # Q! K- t; j- x8 I% ~
Private Function HexToNumber(ByRef pStrHex) : B9 E% S& F- z( y+ s
HexToNumber = CLng("&h" & pStrHex)
5 X' o# M4 l& `+ I, KEnd Function
& E# Y/ N+ `0 {5 lEnd Class 0 e' s% j$ E; n$ P% J8 ]
function Encryptstr(Message)
+ ~  I% z9 e  w1 `! oDim LngKeyE 7 h4 }, p& Q' k
Dim LngKeyD 7 Q: q5 F9 q' h6 M, a
Dim LngKeyN   T$ A6 d- n  L7 |; U5 ^
Dim StrMessage ! q7 q- D2 Z1 F- E& |9 h$ \9 k
Dim ObjRSA
/ K1 |9 j2 r5 g1 `) q5 sLngKeyE = "32823"
' j3 n; o6 {4 A) d1 f4 T+ xLngKeyD = "20643"
+ A3 b8 F3 \% WLngKeyN = "29893" 2 A8 T  q9 ~4 Y4 \
StrMessage = Message
% b3 Q4 |5 S  x6 k/ w% c) [Set ObjRSA = New clsRSA 5 g8 K& g/ e( Y0 r  P
ObjRSA.PublicKey = LngKeyE
0 G; q; G! U! _ObjRSA.Modulus = LngKeyN
; O; t/ L% E( {& F* ]2 |& \3 D3 nEncryptstr = ObjRSA.Encode(StrMessage)
% f" l5 x- h7 E' t6 a; e) k, S0 |* XSet ObjRSA = Nothing % C/ ^& p9 ?# O
end function  o- _/ r5 ]: {9 D- k2 E
Function Decryptstr(Message) 7 \& B" M: m* ?! `
Dim LngKeyE $ {' A' p' l4 o
Dim LngKeyD % P$ m$ o7 E) e6 ]
Dim LngKeyN 1 m- d3 U, S. M" N! U2 g4 N
Dim StrMessage
& t% a& M/ S' y  G8 fDim ObjRSA ; R7 c& }* T5 N4 m: X( b, J
LngKeyE = "32823" & x& [" D; r% i, U* w
LngKeyD = "20643" ! Q; e( @/ p: T) M* }" n" X% X
LngKeyN = "29893" - B4 r' B, J; o6 q) }! N0 P
StrMessage = Message
8 ^  F& G$ ^3 N' e6 I* k; USet ObjRSA = New clsRSA
( L5 W1 A8 E/ F: a& {: fObjRSA.PrivateKey =LngKeyD " l) r& f% {  G1 ]2 l" l9 s
ObjRSA.Modulus=LngKeyN
, h0 z( m, l% bdecryptstr=ObjRSA.Decode(StrMessage) ' Z( @% A9 |1 r# H
Set ObjRSA = Nothing
% P: r$ G: w; G3 {8 Dend function
* u5 @0 z1 G' F%>
7 d0 z2 S3 s% Z1 l& D===============================================
9 G% U* [% z3 H
( C4 b1 F+ o( s! c! l& g( I/ c4 R还有一个用于测试这段代码的test.asp
8 ]0 I+ B: N# G" t0 h$ I; x有兴趣的自己搭建个IIS测试下
& V7 h% o' y* N  i<!--#INCLUDE FILE="RSA.asp"-->
+ x2 Y$ X* n. Q2 R<%
# u& c1 v# g3 U' [function Encryptstr(Message)
1 {2 Y% z7 x% h0 j0 WDim LngKeyE , R5 q8 t( F0 M, W+ y7 J
Dim LngKeyD 0 C8 ?; p* I- a8 p
Dim LngKeyN
8 T6 L5 u8 {) Y- G1 i, x! DDim StrMessage 6 L( R* P7 d9 z( E: r* v4 O
Dim ObjRSA
8 ?; {3 ?1 _+ G5 KLngKeyE = "32823" 0 R2 o) ]9 ]4 n! o
LngKeyD = "20643" 0 X5 H7 {/ A6 N0 I' n  r* A
LngKeyN = "29893"
* F5 O& k0 T0 ~  |. |* nStrMessage = Message
8 E  s, P! j9 K0 E/ \  ~6 oSet ObjRSA = New clsRSA
* B/ B9 C2 ]2 N- W4 ~) j# i" V. f; TObjRSA.PublicKey = LngKeyE
5 f8 ^; z5 \. C- m) n! MObjRSA.Modulus = LngKeyN / q0 E% U% Q+ _
Encryptstr = ObjRSA.Encode(StrMessage)
* g( z+ [& u0 ~$ e  P( V7 QSet ObjRSA = Nothing
% ?/ w3 G' l( e0 L" [# N: ?end function
2 z7 }) y8 |" r8 J2 _function decryptstr(Message)
% A4 ]' G$ ^; O7 o0 ?2 zDim LngKeyE % G7 y( D6 U  F9 i& ^9 l
Dim LngKeyD 0 K8 |6 z1 v, Z. \
Dim LngKeyN
- Z4 G/ n' [! E( W- WDim StrMessage
- B/ F8 r& t" \* E9 d, _Dim ObjRSA
6 U) S" |' M+ FLngKeyE = "32823" ; y' R  t7 [2 J3 v7 j0 F
LngKeyD = "20643"
: q# H. w+ W* r. wLngKeyN = "29893" - \" [" G2 D* ?. s& ?
StrMessage = Message
: \* `* O2 g; t& l3 [8 g3 S% ^' iSet ObjRSA = New clsRSA / F% ]& h3 I4 X! S# m
ObjRSA.PrivateKey =LngKeyD # O: T1 P/ h+ @/ K! B
ObjRSA.Modulus=LngKeyN 6 f8 g# \( V5 g4 m" J  ^
decryptstr=ObjRSA.Decode(StrMessage) + L+ M' _& L9 A
Set ObjRSA = Nothing ) K3 ?. F; K  `
end function
4 S4 b; c: M) v5 Ydim last,first : v; F, E8 ?" [) }6 @
first="!@#$%^&*()"
9 \- Q* R. [, w8 s" J; qResponse.Write "加密前为:"&first * h+ Z' w/ \. C5 S& X
last=Encryptstr(first) * `7 d( X5 E" z. M
Response.Write "加密后为"&last
$ L5 O; p6 {$ `8 NResponse.Write "解密后为" &decryptstr(last) & y; O; u" r  m. k
%> ==============================================
" T: \- h( v% H0 I0 T7 k0 D5 V剩下的就是字符的对照表了. h8 Y% h' u5 S2 W, l$ ~
===================字符集================) ]. V! ^4 }% m+ [7 Z9 A& Q0 n
1_____6EBB
* Q2 h9 w1 u/ [2_____5C1F) B& d; w! t$ u8 m( k" E
3_____4D750 x$ G9 r# O  L2 f6 P1 W6 J
4_____26CC5 Z$ n2 a' l' `) M& h- I$ _4 K
5_____4F88
7 C0 a1 d, d, Y6_____3F4E
9 ]6 h1 a) h" L) i# L7_____0A9D0 H; _/ p' B: k/ q
8_____1A1C8 B1 S/ i9 b; E: l/ ]
9_____6D20
5 X, O0 I9 o- m; d  l: J0_____1089" `/ y  \% \1 p4 L
a_____0F3E  d1 {8 l# _" x" c9 }9 K  _
b_____3159: ?% j8 r3 A  q( W
c_____3517& H, f8 g( s( s6 c( Q' I8 y% J
d_____419C5 s* ^) Q' x5 t( T, m# e5 k+ E/ k
e_____615C
& w6 {( ~- }1 M' }' p( Of_____556F
, s) e0 `+ @) g0 i$ o9 D% ag_____2B7F- p, R( K5 K2 l) k0 O
h_____0F9C
. [7 W; Q' a. s+ b; L# Pi_____00FA
* Y/ `- |% s( Lj_____5A503 V* \  [2 ?1 S1 X- _- e! _
k_____2850; y0 G  I# k& p6 ?; ~; X
l_____3E7B
8 m  c4 |2 a1 E( ~m_____71C5
& J8 w; m4 d" @. `) T+ cn_____1FC8
: |* g' e- J* h5 m% n! S! ]0 d/ N/ Bo_____74C1
0 u9 t! R) n; n) s* a: O+ Fp_____5FB8. f' I) w+ \5 c3 j. A  [
q_____6085/ @; c) o) p. k' X* e1 G, W$ o
r_____3AC4
( |' m+ Z0 }9 S+ ps_____2F50
+ d8 }  |7 |# r8 _( Y, _t_____36F87 G3 G9 C4 r# O# e# ]
u_____7010
- h: [. k1 b7 kv_____0B42
8 q- X9 o4 H8 fw_____1C7A
5 j% t0 ^, ^. _  n0 g! [, X1 j7 N8 Fx_____16F8
/ y# j; v( X5 Q4 C( S$ ty_____2EE7
8 w6 U9 Z. V4 S6 z: uz_____5CF3) i  l# ?) Q& j4 {
!_____6233; ^. z3 v6 u  F- O: Y0 r
@_____3A45
' [' m8 v/ E: h, _& @6 d; n9 ^#_____2291! U8 m+ o3 q8 S3 B, k' _' Q
$_____5D5C
$ n3 n! _2 S9 q%_____09B9
& a0 n  h7 D1 S$ Z^_____43EA
" v$ D, c6 M% N& h, s( W& E&_____62B9" B- g0 V: v  b" u; D
*_____6301
$ @/ y7 ?+ x5 K/ H(_____4659
2 w! E0 ~  M4 F( I& \- H)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表