Board logo

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

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
) m( v3 U. M4 h9 B6 Z# q原始出处:http://www.3ast.com.cm
1 _& `  s) _9 o! Q6 {  `. T% p
  I% c& G% }" l  {5 z$ v# ]. N看不懂的直接绕过. |- H* w. Z+ V0 T; h
加密前为:hwy123456
4 q$ f7 G; [. [) S加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
8 a' Z% ~  l* B
. W( C* p+ i: t( B) m2 `$ M* g2 T* m============================================. Q+ `3 M* s4 q
上面是当时自己校内的心情。现在已经解破出来了,分享给大家! g4 \! z8 m) z
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% t5 {; q& z+ T1 ?
以下是RSA算法文件
  s) K2 o* l( l( h6 \2 v5 a& @, N" N
文件名RSA.ASP
" v* C% J+ C" {& |9 s# O# E! ]===============================================" s* m& k$ x+ s0 P
<% 3 d0 Y! L, Z  Q+ A
Class clsRSA 3 i$ j( ?- |8 P. Q# s
Public PrivateKey / l5 W7 @" U0 w) y# m; {" j
Public PublicKey ' C* ^; j: _: j- m6 H8 y
Public Modulus
8 M7 I" P- t# Q7 Z/ ZPublic Function Crypt(pLngMessage, pLngKey) 0 P( L" F1 F9 |
On Error Resume Next
4 m4 J" [/ M! a# E1 d+ nDim lLngMod
6 k" m/ T. k' L" m5 V4 G) rDim lLngResult
% _* T) C+ w/ O2 i" q) [. _Dim lLngIndex
- ?6 G3 Q! v- H" cIf pLngKey Mod 2 = 0 Then & r6 G) G% ?3 \4 H# ^! W. D4 [
lLngResult = 1
$ {; |2 v6 O3 |7 G3 k/ w$ h* x4 KFor lLngIndex = 1 To pLngKey / 2 + `4 ?0 j  r. x% \
lLngMod = (pLngMessage ^ 2) Mod Modulus
1 U0 q  h- s2 U7 z1 q' Mod may error on key generation # g2 D0 p2 \1 T3 d1 d7 C. s' ~
lLngResult = (lLngMod * lLngResult) Mod Modulus $ Z& _3 T- r  }' z( z6 b; m3 \
If Err Then Exit Function * L: x3 I' [( C; U* q- R
Next
, U/ [. b% l& x. [Else
3 C  r; x0 p& U- J$ @/ j6 ]( mlLngResult = pLngMessage 0 \" g7 a* Z. e5 s8 q4 U. [2 e
For lLngIndex = 1 To pLngKey / 2
& K0 l  Z1 O9 n4 f. d  c2 {lLngMod = (pLngMessage ^ 2) Mod Modulus # J' m5 m9 _8 I
On Error Resume Next & T; |) c& [9 {* B
' Mod may error on key generation , d! E- Q6 w* E( M4 y
lLngResult = (lLngMod * lLngResult) Mod Modulus
& ?% V0 K2 g$ H1 a  MIf Err Then Exit Function $ h5 }7 F8 Z- D0 H% y
Next
0 [+ z! ~& c( G2 H3 G9 R1 n' \End If $ F/ h. v2 D2 ?* I+ v- ]
Crypt = lLngResult 1 o6 t, K1 r# V+ u; T
End Function2 e# d% m+ _% d* x
* R% C2 B; h' ?' Q+ \
Public Function Encode(ByVal pStrMessage) : p# j  E6 y& T5 }
Dim lLngIndex ) G+ e  Y# }! Y4 p4 R5 w# S6 O% m
Dim lLngMaxIndex
" ]/ I, S' ]! BDim lBytAscii & ^) ?( u) m+ v6 E3 t
Dim lLngEncrypted 6 ?  @% e9 F' f% C5 q. r. c
lLngMaxIndex = Len(pStrMessage) + H; H7 v1 l9 W( |- t& z7 a5 |$ E
If lLngMaxIndex = 0 Then Exit Function
7 E' e7 l* k6 r% y! x: \For lLngIndex = 1 To lLngMaxIndex
0 D1 ^# t, A* D& |3 Y& tlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
6 R1 z. U* b3 g+ t. PlLngEncrypted = Crypt(lBytAscii, PublicKey)
' g' w0 Q/ G8 [) R+ T  I- C% uEncode = Encode & NumberToHex(lLngEncrypted, 4)
, e0 [3 e5 ]3 p7 f1 K9 ?Next
3 b# q7 J9 N) UEnd Function 7 I0 F1 I; {& u  G, i& `9 S
Public Function Decode(ByVal pStrMessage)
! ?, X/ k8 e0 v& N9 A9 a0 iDim lBytAscii / b- P' Q! O6 E! g" P' U
Dim lLngIndex 2 `! j! K8 P& c
Dim lLngMaxIndex
9 l, z1 }7 V3 LDim lLngEncryptedData
1 ^5 b7 ?2 S9 ?. n  pDecode = "" 7 I) |/ X" O9 f+ u8 M: q: m" Y
lLngMaxIndex = Len(pStrMessage) ; g6 T- b% G7 }) }
For lLngIndex = 1 To lLngMaxIndex Step 4 ) }7 e+ G0 Z2 L5 ^4 _8 a
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
* k' T. u# D  `0 G1 ~3 klBytAscii = Crypt(lLngEncryptedData, PrivateKey) ) C, W% w+ O. g# x& E& ], O' ]. w# i
Decode = Decode & Chr(lBytAscii) 8 x6 u! [1 i  v8 f7 T/ h. ]3 X
Next
' b* `8 }0 q  ]4 G% \End Function 3 [$ M. k- h, L: _2 \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) - S" Y  s+ c6 y+ [$ B0 U
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
) `  T" P( c) |& X$ P; m  U8 T6 gEnd Function ( @4 ^0 a$ ]: C0 y
Private Function HexToNumber(ByRef pStrHex) 0 ^1 @' a9 I8 Q- q7 N. ^
HexToNumber = CLng("&h" & pStrHex) - w- v6 {1 y* b
End Function " p8 D1 z1 C8 m
End Class : n4 U2 f- S. ]. u. m" A
function Encryptstr(Message)
- }7 c% d3 R1 h/ iDim LngKeyE / j: t, j7 u% Q# d4 }9 r/ c; T+ c' v: k
Dim LngKeyD $ A: o6 T; |9 N5 w# ]- ]
Dim LngKeyN
% \4 {$ M, `2 t7 n, ODim StrMessage ( |. l% |, G6 u0 z0 ^
Dim ObjRSA
7 T8 Z5 [3 n  u" T9 qLngKeyE = "32823" ; U; L3 u9 d" Y7 i& N1 E- x
LngKeyD = "20643" ! u1 a5 O7 i' ]4 x2 X+ I9 T
LngKeyN = "29893"
" X8 e5 l8 F; l$ K' k3 j! L4 AStrMessage = Message
) F( H  a# O$ W3 s5 s% o. PSet ObjRSA = New clsRSA
5 Q7 H/ v9 U1 ~ObjRSA.PublicKey = LngKeyE   L' j2 r3 X6 N* k
ObjRSA.Modulus = LngKeyN
3 b" r7 e7 H  L# d, R. b4 NEncryptstr = ObjRSA.Encode(StrMessage) 8 B- \* v  r* B; N+ v
Set ObjRSA = Nothing + w8 j5 R& Q; q7 x
end function
* F; o% g' B3 B$ @Function Decryptstr(Message)
( o5 {- X$ C6 ]! PDim LngKeyE
, G- x4 q) Q2 m4 DDim LngKeyD
3 v7 J! ]7 U! t' ADim LngKeyN
* M1 L+ N, R$ W! H& EDim StrMessage 7 {6 {4 D  e$ S: T; R# q* V9 R
Dim ObjRSA
! Z6 p* e1 V" S; {3 _LngKeyE = "32823" + ~; v3 r' F; C
LngKeyD = "20643"
2 @" t- j. B; v9 w# uLngKeyN = "29893" 0 B: [( B! D8 f
StrMessage = Message - B9 S( F  m; w9 A
Set ObjRSA = New clsRSA
! m& u0 V7 c3 W* cObjRSA.PrivateKey =LngKeyD * X" }1 I5 \0 x: s& R% p8 O' V7 u
ObjRSA.Modulus=LngKeyN 5 ~% n$ n$ c% F4 o+ C) P) S
decryptstr=ObjRSA.Decode(StrMessage)
  U; X3 i6 i7 H' B4 USet ObjRSA = Nothing
$ o8 F- N  K( Gend function
* I" B+ D; ]! n  }, E- ^# h%>
9 {* l- A7 }8 U9 r9 ^! _: |$ h===============================================
- @8 D9 E8 Y4 L! n- p
' Z6 b  p% y# F: _, M0 _还有一个用于测试这段代码的test.asp3 D5 y" n; L1 l3 {$ D3 J
有兴趣的自己搭建个IIS测试下4 [3 n) E5 I1 n3 w
<!--#INCLUDE FILE="RSA.asp"--> ; D  Y) @9 E; l$ S" T7 P5 S7 z
<%
5 h+ |. e0 F. s8 e% O' ]function Encryptstr(Message)   W+ v( C% Z: j! q4 {
Dim LngKeyE
% b' h# v( h' `) x# G% TDim LngKeyD
' s6 I$ ?- K/ a9 jDim LngKeyN " v/ J& a" R5 s6 P8 {" s% c1 h) G( i, ^
Dim StrMessage
0 t+ K' x1 ]3 z, `7 sDim ObjRSA " o. t9 u5 O) p" Q7 ]
LngKeyE = "32823"
, D: B' \/ T# v. iLngKeyD = "20643" 8 L/ H, |, g! A2 C& F# ~" T
LngKeyN = "29893" : o  k" C+ {% R4 r, I7 l
StrMessage = Message * A8 @) s3 Z, w2 g. H
Set ObjRSA = New clsRSA % a. V$ c+ p9 r; \* T7 L* l
ObjRSA.PublicKey = LngKeyE
) z: H  d# y7 D9 W4 v0 MObjRSA.Modulus = LngKeyN
, R" v4 W; q& w9 @$ EEncryptstr = ObjRSA.Encode(StrMessage)
: Q" Z' d1 p5 d; f" DSet ObjRSA = Nothing ) ^# w5 w! J0 `5 ]3 r- w
end function 3 t0 r" c& B. G5 e
function decryptstr(Message) / R7 _( s. B- O$ P4 }* b
Dim LngKeyE
* Q& {2 H7 n8 J9 V/ H) RDim LngKeyD
& M  A4 ~( J; K9 y0 Z3 tDim LngKeyN 5 b5 h6 A* d3 m9 o, O" |
Dim StrMessage 6 t' i: v% v7 T, V
Dim ObjRSA : N8 Y( s2 n8 g- w
LngKeyE = "32823"
) S# ^# u" Q$ [8 C+ ]LngKeyD = "20643"
6 C) S2 E7 e% f( l" |2 K$ TLngKeyN = "29893"
: E, S) A, D& u5 A  I- }StrMessage = Message 3 f" g! m9 Y8 v
Set ObjRSA = New clsRSA
/ ]1 x8 T2 h6 V# o% fObjRSA.PrivateKey =LngKeyD 4 A7 w. \6 ]1 `, w6 y5 _" e+ M
ObjRSA.Modulus=LngKeyN 2 J# M; H) T+ Z. Q
decryptstr=ObjRSA.Decode(StrMessage)
+ U. T+ P8 ~$ D& f; I+ F) Y' \Set ObjRSA = Nothing % {; B* _, X- s7 P4 F2 m$ S
end function " u5 A6 _) `) u$ Y, a) _
dim last,first ) y/ O' E! b, `# d1 |9 R
first="!@#$%^&*()"
0 o6 l4 y* O4 rResponse.Write "加密前为:"&first # u6 J/ l/ b0 I' Z, ^
last=Encryptstr(first)
& \' M' B  Z9 v. x" a$ _: yResponse.Write "加密后为"&last 4 K2 ^; G6 t# n; {6 e7 l
Response.Write "解密后为" &decryptstr(last)
  T. g  `5 `9 G. X6 [- Z%> ==============================================% a6 `# d, L; }0 r* \) v9 Z! W
剩下的就是字符的对照表了/ h$ |. }3 q8 n
===================字符集================
: X1 @/ x/ C8 g$ A& _9 g: {0 j1_____6EBB
8 O/ s3 R/ Q! i3 q2_____5C1F
) j% O% h. }1 L9 O, k3_____4D759 i9 B' g) J# U, H5 {
4_____26CC* d3 r% C  x# y4 H
5_____4F88' f: w. H0 A3 Y% r0 B
6_____3F4E
$ N: w$ `% U* r$ k( c/ l2 ?7_____0A9D
3 L* `# e1 h6 ?1 `% ^+ Y( S8_____1A1C" _7 A+ w5 {: d) }0 T
9_____6D203 L- O4 h3 s# @7 V8 O& {" ^9 ^
0_____1089
  Y1 w2 Y) R2 ?; N% y7 y1 @a_____0F3E
% h1 [! c( z) ~, ?4 g; Y5 }b_____3159
" Y/ y$ Z( ~6 `+ N% jc_____3517
) ?: X& z5 p* X/ ~4 Q% l( M1 p# Gd_____419C
# m: n) S: y7 U! ve_____615C8 r. M7 s+ Q) |
f_____556F
, `% r$ ]: R& U. g  ?# H: tg_____2B7F
2 z' S' ^( E8 y6 V: Kh_____0F9C  G9 L7 q9 _, l. ]
i_____00FA
1 d4 [2 l( V* w) k1 sj_____5A50
; p: J; \  k. l# Nk_____2850+ f- W2 a$ I# [3 V. N
l_____3E7B
6 h& v3 @5 d+ t$ ]m_____71C58 P, q# d' ^  Z/ t7 L' M
n_____1FC8
; v7 U/ `* r& To_____74C1( [) Q7 _  }7 t; f: L& {9 x
p_____5FB8
5 E( R) C- m% L* G8 w- @q_____6085
- A' Q* e& L, }1 ?" a( }r_____3AC4
2 }1 P0 {- ~- ]1 n7 ^" ?2 R; Vs_____2F50* j7 t4 w$ N- z1 u/ y- W
t_____36F8
& L8 O2 p0 ]  K; ou_____7010
0 c) X/ B  e! p+ p. |- ?v_____0B422 z% ?+ @) y  L8 p  P  a% M9 y- @
w_____1C7A# g( n; Z; P% E8 d; [3 y9 h2 e  ~
x_____16F84 m1 k! A. ]8 L# x
y_____2EE70 v/ l' X5 }% C* Z4 u+ G- I4 g0 P
z_____5CF3" ^' F  d# d/ d( `
!_____6233# g  Z& U: `8 q% `5 z* l1 n0 N9 r
@_____3A45
7 E/ ]5 v8 L1 t4 I7 w#_____2291
& A' q' D, k/ w+ K0 e9 |$_____5D5C) x; v8 O- y+ z8 l& G, l; ^
%_____09B9
0 x' ^9 O2 T* g% O% m^_____43EA& |- Y) s  M1 U2 S0 S! d" {* |- m8 c
&_____62B9
1 w. Q: R% v+ q, v*_____63013 n4 x2 M3 {9 L. |3 O) W  o/ c6 Q
(_____4659/ S0 Y( C8 g7 |; z0 A
)_____5C82
作者: 鱼儿无心    时间: 2011-12-4 17:17

收藏了。。。。。。。。




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