Board logo

标题: [原创文章] 关于国内某知名大学网站加密算法的研究 [打印本页]

作者: 柔肠寸断    时间: 2009-4-19 21:52     标题: 关于国内某知名大学网站加密算法的研究

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
" E; R6 b( J! b5 E原始出处:http://www.3ast.com.cm- x# B/ t: q) Q9 R% T- ~

: ]2 z# w1 _" f1 `看不懂的直接绕过
; j0 H' x4 P4 W% O8 t) Z- e) S0 i; }加密前为:hwy123456
- A- |! v9 ]6 g" A加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% X1 H6 B4 J: {  ^* j" i
5 z  u: ^3 T0 g5 F============================================
8 C- t4 `2 K, |上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 o$ s$ q6 o1 z4 c; d也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法2 z5 ], n& E! t: S% h% G
以下是RSA算法文件
& S' n6 t1 J- T' Q) h* B' \% {  m; d( b/ q! c# w- F1 J
文件名RSA.ASP
: y$ C2 w) N. M$ M===============================================
9 J1 s! i0 N1 \* i, v& {: b<% + k' e  U( q+ G: l/ |& o
Class clsRSA
: @4 P5 b1 e! r; m& H( Y2 zPublic PrivateKey ) `) V  `* `3 e$ u. D% Q3 f
Public PublicKey
% _  g+ `9 h% i9 i9 }( [Public Modulus
! v  S( S$ J9 d- Q) TPublic Function Crypt(pLngMessage, pLngKey)
8 [1 D: Q/ d2 l0 I2 W+ TOn Error Resume Next / Q$ q) [; `; b3 \8 U4 D4 j
Dim lLngMod
$ U8 j4 ^/ r1 d7 s& dDim lLngResult
9 ^. W% O* r( `# ]Dim lLngIndex ; g! x6 c/ B6 `; |6 d' h: Y, x) v; n
If pLngKey Mod 2 = 0 Then
- S: c* @; m* jlLngResult = 1
% A  G4 ]2 a! }9 L5 |For lLngIndex = 1 To pLngKey / 2 # e9 ^" Z* D( u* X0 r
lLngMod = (pLngMessage ^ 2) Mod Modulus
$ w6 }/ _' R# G' D7 X3 L0 @& Y' Mod may error on key generation " T5 u7 u# u0 {+ l
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 t9 ]5 p8 z& u( HIf Err Then Exit Function
, ]& d- m* S) ~Next
* ^# h: x+ X# ^  e3 l. q4 RElse # D  l( \9 q+ G. C
lLngResult = pLngMessage
% X' I( x" z6 z, C9 i5 [; Q% eFor lLngIndex = 1 To pLngKey / 2 4 q( e2 M0 C8 P+ a4 L
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ `  p  b( t" q/ W- T, O. L# ~6 x3 ROn Error Resume Next 4 f! n' S5 k. I9 C# c, D' V
' Mod may error on key generation / I4 o. l4 `1 L3 {7 [" ]
lLngResult = (lLngMod * lLngResult) Mod Modulus
2 z: ~# Q# M4 w; o) ]7 pIf Err Then Exit Function
& r$ @! y5 ?4 u  @Next ' n" [! @8 @: @
End If / m. y3 x( T" r1 l. V) u, {  s/ g
Crypt = lLngResult ' n3 W8 w. o9 S4 w" e5 g2 {9 l
End Function
% V! z4 d$ O: r: s1 G7 W% e6 }, Q! [* ]0 @
Public Function Encode(ByVal pStrMessage) 9 V3 _8 x- W% B* V
Dim lLngIndex ! d6 h+ F9 I( Z1 `& G$ g& T
Dim lLngMaxIndex 2 A1 I" S7 ~  U# q3 Z4 |
Dim lBytAscii
! w1 v. H+ o5 k! g1 E" D7 cDim lLngEncrypted
$ i% Y% R- z: olLngMaxIndex = Len(pStrMessage)
5 E' D! l, R$ A6 P2 m' Z& cIf lLngMaxIndex = 0 Then Exit Function : w% o, X4 O8 w  C  r6 d, z
For lLngIndex = 1 To lLngMaxIndex
- z: J+ ^( f- x0 ZlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
8 @5 y: L. Q  C; H7 o/ qlLngEncrypted = Crypt(lBytAscii, PublicKey)
# \8 Z6 a( R7 O  ]0 bEncode = Encode & NumberToHex(lLngEncrypted, 4) % t' P5 M3 V7 x3 l( F! R' Y
Next 2 w0 ~" a* B- ?
End Function
" s1 a) {. s# }Public Function Decode(ByVal pStrMessage)
6 y* f2 s8 ~7 d) J& p, G, @! M# N3 V  ^Dim lBytAscii
6 k5 D  Y! E# c+ e6 IDim lLngIndex
# D" p5 t' k& m: a4 M+ zDim lLngMaxIndex * D( w2 f; T5 X% n* h" h
Dim lLngEncryptedData + |" M+ q( o4 {
Decode = ""
4 A) a; g) D2 X7 {  B# G$ V6 C  slLngMaxIndex = Len(pStrMessage) 6 T+ `6 I0 Q. x$ ]0 n4 W( ?
For lLngIndex = 1 To lLngMaxIndex Step 4
! K7 ]* K% }  b1 F7 klLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 4 I" ?1 n5 B/ f0 I; d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
* O# R1 z: l: s8 O  C! ]Decode = Decode & Chr(lBytAscii) 1 F) Q& ]) s) z) l
Next ' i2 U$ {  M( D- K6 Y+ V. l
End Function
. V" u1 o$ z9 |% f- \Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
# R! Q+ d" K. f7 c5 aNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; a$ G: Z9 [6 k5 W
End Function
5 v: t( O) }, m+ A- APrivate Function HexToNumber(ByRef pStrHex) ( P. X: S9 o8 U. q( Q, H& }
HexToNumber = CLng("&h" & pStrHex)
& j* v; |$ b0 @3 uEnd Function # C* j  G( W% J- e8 P5 E
End Class . P- V1 t/ E" z
function Encryptstr(Message) % \; X' w3 L6 L" g; F
Dim LngKeyE - u+ ~; `/ ~! Z, B+ P
Dim LngKeyD
' N7 A, }( @4 ODim LngKeyN - [3 w) v6 @2 g; e5 t* L# B
Dim StrMessage & ?9 p0 \. H* F* `4 i/ J/ o
Dim ObjRSA 4 _! j" }0 S/ p4 B; s$ e
LngKeyE = "32823" , R+ w3 Q6 C: Y' i
LngKeyD = "20643" % w8 d9 z1 P, Z( G0 D! P3 }% F
LngKeyN = "29893" & b: r1 a6 J8 f8 ~/ N3 t8 g
StrMessage = Message ! N3 O, b8 p  q( l/ B" U, g
Set ObjRSA = New clsRSA 5 d  `- X3 Q, d9 O5 s8 T$ h2 @
ObjRSA.PublicKey = LngKeyE
9 Y, [5 S3 Q1 J5 BObjRSA.Modulus = LngKeyN - E& \4 M$ j; c4 b
Encryptstr = ObjRSA.Encode(StrMessage)
2 ]; A3 R4 v4 m: J6 x3 d! ^# hSet ObjRSA = Nothing ; v0 G+ M) A5 F! \
end function9 U. S$ r9 V. @# r0 R! h: v
Function Decryptstr(Message) ! Z2 w  v! P/ A% S; ?
Dim LngKeyE
0 @& r& H3 U6 @: P, B" J: ]Dim LngKeyD 1 ]% J4 S+ v$ u) Q5 A2 c
Dim LngKeyN $ _: U' Q* g# W+ _. h# [8 V
Dim StrMessage
- B  Y) a8 R2 c  ~5 o" Z% aDim ObjRSA 8 S. N; [) s1 e2 c# P
LngKeyE = "32823"
; V8 V5 J# l3 J4 Y4 V% D1 RLngKeyD = "20643"
" I  q) e, q2 c% TLngKeyN = "29893" 5 a% i& Y+ P& X" d
StrMessage = Message
8 j1 l9 d8 U, V" wSet ObjRSA = New clsRSA
+ c5 U/ R; |7 C; X* AObjRSA.PrivateKey =LngKeyD ' c& O# H; e$ o& e7 Q! |
ObjRSA.Modulus=LngKeyN 9 {" x6 K; l) K0 Q" F
decryptstr=ObjRSA.Decode(StrMessage)
. A8 P& v; I' S) WSet ObjRSA = Nothing
; Z8 n4 {# }1 oend function
$ r% [; N* h: D% r+ c8 v% ?) l%>, }( Y  }, R# s2 P+ ^' N$ l
===============================================
* K: z) _* u2 D7 K: X. R, d+ i
7 h! w+ J! h' ~4 @" F! s* _5 S还有一个用于测试这段代码的test.asp& X6 ]8 F, O, ?  T0 y
有兴趣的自己搭建个IIS测试下, }; m( [  o+ G$ j
<!--#INCLUDE FILE="RSA.asp"--> ) j' K8 }! b( `- g! R* n9 Y$ q0 @
<%
0 O' A3 J: r; ~" m" ^4 }) p! z+ tfunction Encryptstr(Message)
  ?  l) Y8 b0 ]  ]Dim LngKeyE
- f4 h  u' z/ n4 @; z: Y- r' v# `7 KDim LngKeyD
& w+ q( R2 q9 B6 N. ]Dim LngKeyN
' ]. F+ v, S' E, X5 i+ IDim StrMessage * C- Q  Y; Y8 y! B
Dim ObjRSA
+ L% M! H5 Y$ g$ w! K  w8 YLngKeyE = "32823" 6 U# I" J9 _( R6 C% c
LngKeyD = "20643" 2 x5 w' C' p- n% K) m$ s: }
LngKeyN = "29893" 9 m; t! G0 U2 S
StrMessage = Message
  k6 A2 y: \) L1 n# P1 ^8 GSet ObjRSA = New clsRSA - u2 S7 V# q3 ?! q* V! m
ObjRSA.PublicKey = LngKeyE 7 ?! J% K9 ?" P4 u$ C: Y
ObjRSA.Modulus = LngKeyN
, A1 I1 h% z5 W$ NEncryptstr = ObjRSA.Encode(StrMessage) 8 O9 m  l/ k9 _' s* J* v
Set ObjRSA = Nothing
9 O$ V5 V  d9 `0 a* M$ D4 Cend function 7 n3 h% c7 n- l8 ?7 x( O: ~1 }
function decryptstr(Message)
& P' v! s3 B* N0 z- T" J; NDim LngKeyE ) _5 X. R% ^" V' q. V* I1 g
Dim LngKeyD
: z6 d" x$ r  E+ A7 q* w# W) `Dim LngKeyN
2 s6 F! f1 h, a+ uDim StrMessage ) V8 }5 B" E# ?' m  o
Dim ObjRSA
0 |' W/ G9 U+ ~6 oLngKeyE = "32823"
, L: I6 M) g* kLngKeyD = "20643" 4 G2 R9 C) {7 i9 B8 \
LngKeyN = "29893"
8 R$ m+ ?. Z) X7 uStrMessage = Message
, S. D5 k6 K# e0 f" i# u* mSet ObjRSA = New clsRSA 1 C% Q$ ^; ~5 P( l6 G4 O
ObjRSA.PrivateKey =LngKeyD
$ m  q9 N4 Q6 k- c- }ObjRSA.Modulus=LngKeyN
  @  D4 Q: h( Ndecryptstr=ObjRSA.Decode(StrMessage)   [7 a2 a1 m. U5 i- R9 {: T* M
Set ObjRSA = Nothing
: N6 _! z3 z' b. e; ^; Lend function ; k3 p: I: j6 p& U  a. ~4 o4 b
dim last,first
7 s5 `7 P6 B8 Xfirst="!@#$%^&*()" ! d% k) z7 r. ~! \1 F: A
Response.Write "加密前为:"&first 5 X% i" m/ o1 {& ~1 J+ P
last=Encryptstr(first) + F  |( y/ f, G" u/ p$ @
Response.Write "加密后为"&last
8 l9 U& Q, T, {% n5 w* l; AResponse.Write "解密后为" &decryptstr(last) ; s$ l/ n0 H5 `+ ?8 g
%> ==============================================: v2 |+ G, X! m$ l2 `$ x, o
剩下的就是字符的对照表了
- c  V6 N& a8 |$ L- o4 n===================字符集================
9 u9 u! u' C7 v1_____6EBB  l1 L( p/ P/ Z, `, [
2_____5C1F4 P# i0 t6 s* ]8 \: n9 E  i1 J
3_____4D75
) l5 H; Y. ^) v" D) ^! e4_____26CC
; C" {' S4 ]9 I0 @9 ~5_____4F88$ {) c5 u+ m' ^9 |" p
6_____3F4E
2 A' _  o  J" ]9 `1 y4 I6 i, L7_____0A9D, g/ |8 e8 R2 U6 k1 b3 ^/ z
8_____1A1C
% M  e4 f2 g; j9_____6D20
8 z- S7 h, I! i, i9 |0_____1089
: F4 U0 ~, p9 u/ X/ A2 Ma_____0F3E* D+ P( @" n$ h+ w/ T3 ?3 O
b_____31596 o( z, p+ j6 B6 D* M5 p) N! V6 s: j: N
c_____3517
! r* h) h2 ^; _8 Yd_____419C" H$ D! n" j/ P- I1 S4 f
e_____615C" V: o+ \2 d6 F4 U, X. }
f_____556F$ u/ i) \7 ]8 k# ^9 k4 b
g_____2B7F
: k! B9 @, q9 d- \- E% K$ mh_____0F9C
9 Z2 t; L! q7 \# m, Y, N" Y6 ~; Y# Ri_____00FA4 `6 r* d$ d" h. _0 t4 M
j_____5A50
3 j% t& h" ]% P) ek_____28501 P/ p' e! S/ I
l_____3E7B
$ }9 v4 x$ \' k. W3 h3 Qm_____71C59 d$ Z# o4 }) _$ E% i. K) Y
n_____1FC8
$ Y" f. i7 b& N+ V4 `o_____74C14 U2 I# F& n& v2 U- O( _
p_____5FB8
& g& k. M4 W! Aq_____6085
/ o; K4 M2 D8 m+ C2 }* B! `& er_____3AC4
' Y" P! a0 j6 A. h$ W' Hs_____2F50; ?& m8 f8 k! I: s4 q
t_____36F8
$ c! K) |% U0 N1 d+ C8 b% s" U* Gu_____7010
3 a; _1 ?. }9 @4 b+ S6 zv_____0B42
# W7 W% z+ i$ y6 C) m$ |w_____1C7A, ^4 \* ~$ h! ~& O) {2 ?4 r
x_____16F84 v# a1 Q' u3 B( D
y_____2EE7
- t7 ^( N0 Z+ q- W" D9 vz_____5CF3
, p( f( g4 r8 W+ T/ O$ [" N!_____62339 y4 x" o/ R9 K/ d/ |9 U0 c+ K* y* x' c
@_____3A45
) F7 ?2 \" |0 `1 f8 e' {* [+ k4 `#_____2291. |0 o- v  @6 N2 |8 H
$_____5D5C+ r$ ~% }% w, y* ^+ w; Y
%_____09B9
. n3 ^: e; |* V! e; ^" K^_____43EA
# X0 z: V8 U0 {! @# z% U% W: P&_____62B9
" p- M0 T3 m* |, r' Y! z*_____63018 \3 U9 x8 W" T% x
(_____4659
6 N2 \* O% m. G4 h5 M$ ?1 G/ T)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2