返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm8 N4 J* L, z+ _1 ^$ p
原始出处:http://www.3ast.com.cm  S8 |/ n3 |$ ]1 ?* |: p
1 g$ G' L0 V4 a
看不懂的直接绕过
& F/ P. s; W1 {  V加密前为:hwy123456
9 Q" i  ^$ J3 ^/ ?) _加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E# H+ B; @9 R( m. }8 F+ I0 `% v5 r

( J. n* q& v5 |. D6 V============================================+ D) _; @4 F5 \% W" }$ U& B0 I
上面是当时自己校内的心情。现在已经解破出来了,分享给大家+ r. `6 B& `/ U. j, p! q
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法- G1 v: j3 G% B
以下是RSA算法文件
( F/ b& I/ x8 u8 J8 ?! w. Y5 v
/ @8 z; g1 O/ |; Q5 P  c文件名RSA.ASP# E4 l- b! v$ r+ ?
===============================================1 u: r$ [( I+ w; }6 y% S4 P4 O& U. O. J
<% 3 u. S/ f8 E: \  ]* m9 c
Class clsRSA / Q  X; w: m" g2 v& L
Public PrivateKey / o" p# Q/ P9 u9 ]
Public PublicKey
: H2 t  E) \; IPublic Modulus
/ a- ^7 G- b; A" ^" RPublic Function Crypt(pLngMessage, pLngKey)
' }( H7 ?" [6 N3 _  `* YOn Error Resume Next
9 z  |; ^7 U+ L6 e, N% PDim lLngMod
0 l6 e+ _; y  e. i4 C: _Dim lLngResult - n: L0 Y' `2 ?" t( z+ D" ~. q" \
Dim lLngIndex
' Z2 j4 ~9 H6 g/ }If pLngKey Mod 2 = 0 Then
& t( G- C, B$ QlLngResult = 1 % g7 [3 p" L' {" K0 A
For lLngIndex = 1 To pLngKey / 2 . `- B4 ?- ^  \' s( t$ b: e
lLngMod = (pLngMessage ^ 2) Mod Modulus
: z* O& h! E# |4 P! K  p" M% t" C' Mod may error on key generation ' e  d: V% Q7 O9 Q
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 A. t! g" ]  H! mIf Err Then Exit Function
. D/ W) n$ Z* O0 TNext
; Y4 I" b" M: L6 pElse + I1 q. f* \! i* N
lLngResult = pLngMessage
' [+ V0 y' t4 fFor lLngIndex = 1 To pLngKey / 2 ( R; P3 l; }7 o( ]! k, V
lLngMod = (pLngMessage ^ 2) Mod Modulus ! g% n$ h" Q5 l
On Error Resume Next
4 Y) A9 \0 ]" W! l1 Y' Mod may error on key generation % n) X" p! |$ ^) ^7 n
lLngResult = (lLngMod * lLngResult) Mod Modulus ) j& C1 c4 Z/ S5 ?5 v0 J* ^8 O5 g& W
If Err Then Exit Function
7 ]( N5 P, m/ O& G/ @Next
* C& Z6 a- N! D3 a+ y3 ~End If
  A/ ]# U* W3 g- gCrypt = lLngResult ! F% C  r( x6 g# k, \+ N* I
End Function
2 y# g% x6 u3 i5 P. c3 g1 z, U5 ]* F3 q
Public Function Encode(ByVal pStrMessage) 8 o9 O3 K+ {0 }; c- W
Dim lLngIndex , A2 M% m% d* F/ O' t
Dim lLngMaxIndex 3 |3 ]) x9 {9 ~
Dim lBytAscii
& @) V/ }& o* e, O- mDim lLngEncrypted $ V. i2 Z0 V6 L4 e0 L% |9 [
lLngMaxIndex = Len(pStrMessage)
' Q! Y3 e! [2 F/ Q0 Z$ uIf lLngMaxIndex = 0 Then Exit Function " g+ r" I9 A! n+ J' N% t+ U
For lLngIndex = 1 To lLngMaxIndex ' E' I4 ?$ t! B7 [
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
" l& T$ K+ h0 B8 r, ~) ]lLngEncrypted = Crypt(lBytAscii, PublicKey) ! S% O; O6 X+ T& N) m
Encode = Encode & NumberToHex(lLngEncrypted, 4) 1 J/ P! q% a8 Q& _0 _3 x( j
Next % @( s  d6 t1 Y# @9 B
End Function
' q3 i) }4 S4 w/ c5 VPublic Function Decode(ByVal pStrMessage) 5 g9 p/ _9 U, F% D9 f5 |9 O  U  U
Dim lBytAscii
. l" r0 `2 n3 ]; vDim lLngIndex : Q. r: y" s3 h& T* n
Dim lLngMaxIndex 5 l7 M: |0 Y: _1 C/ l/ p0 G
Dim lLngEncryptedData
- X" i" s; R8 m+ IDecode = "" + T: W! G. x7 n6 M  `
lLngMaxIndex = Len(pStrMessage)
7 h9 {4 `- P: E( n5 u3 g) KFor lLngIndex = 1 To lLngMaxIndex Step 4
1 Y$ Q! L/ P2 @* J% RlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" U" S. x7 t5 a# i( v& plBytAscii = Crypt(lLngEncryptedData, PrivateKey)
9 ^5 G9 r0 w0 D, E* |: lDecode = Decode & Chr(lBytAscii) & x5 Z  Z0 \- C) R
Next ! A' S  H% P4 ?. c+ H/ f8 C
End Function 5 [5 L. h# W6 x7 X! ?7 }- n2 L
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
& q5 b7 G; R$ R* D8 K; YNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& I# `  U$ p* o5 G# {! QEnd Function
; S3 j7 f( b! J7 q4 _Private Function HexToNumber(ByRef pStrHex)
3 r& u" ?0 `% u; ^- xHexToNumber = CLng("&h" & pStrHex)
8 F% N0 }0 J: H$ z) A3 X- z9 m* zEnd Function ! A5 Q' R- m5 A- E
End Class " N5 ~( ~9 C6 N+ X
function Encryptstr(Message) 9 a+ p9 S, x: P2 c
Dim LngKeyE
, a+ S+ ~, p3 K6 `/ z5 r. tDim LngKeyD
0 b& I" ?/ q8 T5 B$ `Dim LngKeyN 6 _1 e: f3 T) |! q2 q! x; m% _. `
Dim StrMessage / Z9 K" C* a0 F( b
Dim ObjRSA
4 d, V. ?% s# o/ OLngKeyE = "32823"
' O, t$ @, m- mLngKeyD = "20643" * t6 ~6 V" D5 e# M5 U7 P" a
LngKeyN = "29893" $ ?9 L" q1 A  t& {9 {+ j& p  }5 H
StrMessage = Message
! o# B+ c% ]; k  }1 }Set ObjRSA = New clsRSA
( _- F+ [( @% _5 Z4 ~7 s) GObjRSA.PublicKey = LngKeyE
/ P; z0 h1 z4 Z" l# X- g4 rObjRSA.Modulus = LngKeyN 4 {" Y" i# d' J4 x
Encryptstr = ObjRSA.Encode(StrMessage) ' E, S; l9 o7 i0 k; U3 M: A$ V
Set ObjRSA = Nothing 6 h; s6 {! T; J" I0 |1 o
end function0 z8 {" l4 s# h+ }* m  V
Function Decryptstr(Message) 4 S( c+ ]" v$ f* ^8 O: d, l
Dim LngKeyE + J9 x4 X3 x/ }
Dim LngKeyD % Z. b6 h& A7 e( C1 r( j1 A
Dim LngKeyN
, O2 y9 a; h, b' z* tDim StrMessage
  F. w3 T/ _4 u: i$ K0 I+ pDim ObjRSA
/ l" ]+ y3 t# Q/ X$ RLngKeyE = "32823" 9 s5 {9 k. g+ Y# `
LngKeyD = "20643"
2 S* V1 X/ R: t% g! ILngKeyN = "29893" ! c3 C$ T' f8 Q3 H* a3 f4 o8 r6 n
StrMessage = Message ; a0 u5 H* b+ G1 C' F
Set ObjRSA = New clsRSA
- f% z9 f& L2 [# Y3 K6 `7 SObjRSA.PrivateKey =LngKeyD 9 X3 H4 T+ f! y/ k' S; a& n8 A, o
ObjRSA.Modulus=LngKeyN 3 k/ [. a5 s5 f/ p4 w" |
decryptstr=ObjRSA.Decode(StrMessage)
6 t! {) N5 J" \' gSet ObjRSA = Nothing
: }9 j8 N; A1 o+ z9 F6 `end function
/ m4 L+ h" p- ~  ]& `& ^%>
4 |  ^* ]7 w( W9 V===============================================
" J& Z/ [$ j; Z
2 b# u0 F/ _! L* p0 `/ f; J* d* N还有一个用于测试这段代码的test.asp5 k; u# `0 ~. b, U
有兴趣的自己搭建个IIS测试下+ J- x' q  P6 s! _9 a( x
<!--#INCLUDE FILE="RSA.asp"-->
- f" p, [9 p1 Q3 j<%
8 b5 E+ n4 H' [% {function Encryptstr(Message)
( D9 G: D5 F- a0 G3 U# ZDim LngKeyE
9 d0 K* F# C8 C6 Z9 @Dim LngKeyD * i, m7 C* N+ |. w  @4 ~4 W
Dim LngKeyN ) N/ [) L: ~" x5 C' e1 U6 [
Dim StrMessage
, x/ f- H$ y  a; Z" {: M4 Q0 EDim ObjRSA / t# g, k6 P4 G# i  b
LngKeyE = "32823"
  x2 S3 J' L4 JLngKeyD = "20643"
+ U2 @/ @/ T1 m6 J) x. d, OLngKeyN = "29893"
# A- G6 P8 k# q0 z, ~8 l( H% h$ zStrMessage = Message
! `( y& ~0 Z& m, h8 qSet ObjRSA = New clsRSA
1 Z) }; H- W5 @) d$ ^- xObjRSA.PublicKey = LngKeyE
% u8 f' ^& D! t; B/ l4 kObjRSA.Modulus = LngKeyN ( L' O; A$ k& `, d/ z9 F5 v
Encryptstr = ObjRSA.Encode(StrMessage) & z  [- n1 N' X+ _' Y1 D2 B  C
Set ObjRSA = Nothing
" m" M! o/ P& S0 ~6 Q4 C! Q- f# Rend function + ?" c7 q; q2 I( Q6 L
function decryptstr(Message) # ^3 A+ y$ x) e1 M; B! K% e& L5 c
Dim LngKeyE
4 o/ b: z/ h- |$ z+ _. lDim LngKeyD
# p! {# v8 W" Y6 M8 S' D/ |Dim LngKeyN 8 @! q" g% q# N. R
Dim StrMessage
: i7 }3 S4 {, f4 aDim ObjRSA $ R* K5 M8 ^! b6 k' S' N
LngKeyE = "32823"
+ l6 u  @. Y' X. W, J/ e4 @7 s6 KLngKeyD = "20643" 0 X5 ?' `$ _  C- w/ r# |
LngKeyN = "29893" 6 ]8 B6 y) I6 P6 `2 f
StrMessage = Message
7 c+ X1 H7 y6 [" F0 I1 NSet ObjRSA = New clsRSA ) @& ^# k* R0 s; A% {2 S# N. g4 W
ObjRSA.PrivateKey =LngKeyD 0 O8 }; \- d2 }" a' l
ObjRSA.Modulus=LngKeyN 1 u" H& g! m2 Z7 H# A
decryptstr=ObjRSA.Decode(StrMessage)
8 ?8 I( E7 `- l# Q0 TSet ObjRSA = Nothing
) d: l, B9 T' t/ V1 |end function
. s: s2 j; i' P9 @# {dim last,first ' I6 }2 G4 Y# U& x& c0 h; e6 @7 Q, }
first="!@#$%^&*()" 7 ^$ ~) n7 \% {% m# M7 @, y
Response.Write "加密前为:"&first
4 p  o: C8 C* u# p# ], A5 dlast=Encryptstr(first) 8 x  Y' x' s1 X
Response.Write "加密后为"&last
+ A; L- p- g6 B9 PResponse.Write "解密后为" &decryptstr(last) ) y! i8 ]' x% M( M9 C* G( I
%> ==============================================7 o" P2 \" d. z! d1 k4 e
剩下的就是字符的对照表了# L% Y, }( M. z3 [& _6 \& g6 t
===================字符集================" T/ c! e# D) \6 C# j9 j" [% ~( `
1_____6EBB
3 A$ q# `2 G9 f" \7 _7 X2_____5C1F
0 J" T$ d3 r$ T- p7 w3_____4D75
; V% T9 V0 Y' u, I6 R$ i+ W8 C4_____26CC
$ S& u* s/ y* O: T1 H, F5 o5_____4F88* {2 [1 `. W: ~! j4 O+ o
6_____3F4E6 Q; i9 D, H4 u5 |
7_____0A9D; M8 U8 C8 h) u- K6 P# U
8_____1A1C
: u! Y- _. H, ~  |9_____6D20
9 N& X8 M  Q2 Y' q+ \* T+ U0_____1089
$ v7 s; s+ {2 ~0 J( k- }; w; F) ua_____0F3E
% x+ V$ k! \( ]7 H4 m- ~8 A! g# q4 p4 V& gb_____3159! n, X1 @+ i! u4 G- o1 K
c_____3517" M! X. [( U8 A
d_____419C* c" P2 n* Z3 t! j. C( K3 h, ?
e_____615C
8 x- P. F! l; `f_____556F) g4 |& }  Z6 \' u! }
g_____2B7F
* c2 _. W( f( Y4 z, F: u4 ah_____0F9C3 J2 q0 ]4 T& Y1 B1 ]; v* F* c
i_____00FA
+ u% W+ P" e/ m8 t4 t8 _0 H" q& Yj_____5A50( [0 B+ @3 t$ a- C  R8 O( k5 P8 t
k_____2850
# u( R# t. Q! X2 h' m8 j/ d& Rl_____3E7B
8 Y5 p% I1 H( M/ K0 R- vm_____71C5
7 f; g; n: d3 R# x' m8 Zn_____1FC8. E, q5 `3 ~9 c2 g: Z2 @
o_____74C1
. u- y/ P" L; j  D8 \p_____5FB8# S; m, V# ?5 s4 j8 v
q_____60853 U. c% _8 Z" x
r_____3AC4; i9 i3 J3 G. j/ A6 v; h, h/ Z
s_____2F50
) Q2 ^' [, E4 l* E) L+ Q9 U+ \* G, q3 i0 @3 Ot_____36F8
1 f' x, K0 [& j0 V' Hu_____7010
2 `5 m1 Z. M/ T/ {$ k  N8 [v_____0B42
6 f% F# X! w: h1 yw_____1C7A
- b% a6 U' a7 m6 E* F1 Q! k, t7 wx_____16F84 @( ?1 [% ]  J. R! `
y_____2EE7
/ K4 R: A; O- V" q5 S+ \  Cz_____5CF36 E! p7 }- b% u) n8 o  e8 m
!_____6233, l* r4 m% x' B' X# s
@_____3A45
& n2 f2 z& f/ Q9 a4 s#_____22919 r- a! B4 m: n$ L, A
$_____5D5C
# Z- n4 g8 s; e$ W' N  r  n. x%_____09B9
# P: X$ q" a2 k& r% R' u. n^_____43EA
$ E. x5 \, A' l9 n4 ^( @: C&_____62B9
8 t1 r6 G" z' Z9 k*_____63012 H' V3 s7 p0 b5 o0 a6 c
(_____4659  [1 N3 D9 U+ D1 H- G8 t4 O
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表