返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
0 H" \# h3 p+ r# G$ M7 {0 p原始出处:http://www.3ast.com.cm
3 B. ], s6 s$ ^/ Z/ P* M
' A; }7 @( s, `& v% g( C. w看不懂的直接绕过" r; X: O  q& p
加密前为:hwy123456/ Q" F& Y; ~. E+ n2 T
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& j9 D, j: d: V$ F" ^, W

# W% N5 H& U2 `& G/ C============================================
. k9 q, f, x, g2 A. Z/ U# |9 d上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 _7 J# B0 ~, b: C& n5 t: b, @5 W也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法9 o+ t, x, l( E: h2 G/ \
以下是RSA算法文件( m5 M! q- K4 J
; [' M/ A; ^8 S: i. y3 k$ J
文件名RSA.ASP
0 o; u; t* m2 n+ m0 X8 W2 g% ?===============================================: g+ t( h8 z9 c$ @+ q
<%
2 U" |4 O5 z" M+ yClass clsRSA   d) G1 D6 @7 r: H, L: R& l
Public PrivateKey 0 w: T/ A! P, j4 d0 s
Public PublicKey
9 p4 }+ s9 A- e" H) vPublic Modulus # d. m5 ^$ X( Y1 [8 J
Public Function Crypt(pLngMessage, pLngKey)
3 d! Y. O7 x9 V: X( xOn Error Resume Next
; [2 @$ E- Z. {  _) ^Dim lLngMod
- b+ |% p4 Q, W& _7 I6 N6 vDim lLngResult   C, _  ^4 z6 p* V
Dim lLngIndex 5 \" [; R( F( g! ~  |* @
If pLngKey Mod 2 = 0 Then
4 S9 \" l+ U9 J. jlLngResult = 1   @* d0 p% {: P, O/ g
For lLngIndex = 1 To pLngKey / 2
( j( g. w2 R5 G! u& G. _lLngMod = (pLngMessage ^ 2) Mod Modulus
9 u0 J2 ?( v5 W: T6 w3 W& ~: m, x  p' Mod may error on key generation 8 V- s! x2 p8 T7 G% v3 Z# G* z) I
lLngResult = (lLngMod * lLngResult) Mod Modulus 9 Z4 a4 z. R- J6 i
If Err Then Exit Function % [! u0 [3 K, C) W7 N" p8 L- c
Next " S- k) f+ V: Z3 J2 r# N
Else
7 |% ?/ u& a' z+ A6 J; AlLngResult = pLngMessage
: a& I. {. G! a& W; p' l0 _* {For lLngIndex = 1 To pLngKey / 2 ) O) @% s! z' j6 n( b) }6 O
lLngMod = (pLngMessage ^ 2) Mod Modulus & ^9 ^0 z) F9 x( X
On Error Resume Next
, ?% s) p. H' e" I' Mod may error on key generation : N) |1 ]" P( y5 J  [5 z
lLngResult = (lLngMod * lLngResult) Mod Modulus 7 w- Z0 i( ^3 O$ K( ^/ D$ S
If Err Then Exit Function
0 s4 }9 t7 t" rNext
. v& {: _! J. o* K) D& tEnd If 1 Z4 B8 t1 v  X6 C
Crypt = lLngResult $ Z5 |9 G, \. i' q+ b0 N* u; l# N
End Function/ F0 q, v# v* m9 ]8 B+ T: T

' J: W$ f. K3 R4 V, y$ ?9 j( MPublic Function Encode(ByVal pStrMessage) 7 b" S& S% r2 Y: _0 y+ [3 A. c8 K
Dim lLngIndex + Y; x, g5 _" f
Dim lLngMaxIndex 9 m2 L" ~% Q# r# ]; q3 |/ a
Dim lBytAscii
8 U! N# L* R' d; {  P8 ]# RDim lLngEncrypted
& _) d* ]! i7 w$ ~2 alLngMaxIndex = Len(pStrMessage)
' i7 y& m0 {/ q' cIf lLngMaxIndex = 0 Then Exit Function 0 V2 W( {* G1 b# I
For lLngIndex = 1 To lLngMaxIndex
7 M/ n: p# T" M8 slBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
: K9 ~. e, y% _+ X' B! @5 `7 `lLngEncrypted = Crypt(lBytAscii, PublicKey)
; V) g; Q' y4 e( Z* y4 o9 GEncode = Encode & NumberToHex(lLngEncrypted, 4) 8 H. y7 U' `! D2 n9 D: ?6 ]
Next " H3 _" e9 ^: T' x# ]1 Y
End Function
. _, x8 F/ P( \( X4 ^2 iPublic Function Decode(ByVal pStrMessage)
5 r# d" Q9 S8 H1 ~3 {! ODim lBytAscii
8 L: Y6 l1 ]4 SDim lLngIndex
! `& i/ k( b  s: B6 U  i/ j! |Dim lLngMaxIndex
7 j; ~+ M, J3 }6 pDim lLngEncryptedData
4 A# U3 k% K- O$ c! o# o% g9 ZDecode = "" / y) S  d% w- b0 T' T$ S2 @5 w( H
lLngMaxIndex = Len(pStrMessage)
7 @# L2 @. Z0 Z" JFor lLngIndex = 1 To lLngMaxIndex Step 4 5 J3 V. r: @* g- O
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- ~$ z7 F+ w+ V' o" ZlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ Z; K# r- I% [* j$ E/ m! W; P$ VDecode = Decode & Chr(lBytAscii) 0 _! `9 s9 n) h: r; J
Next ' k& e" |( t3 z
End Function
8 ^% }4 Z7 C1 n$ }% f, Y3 y  `Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
" A4 C& s! C1 l  A  R  ]% yNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
+ N1 z4 \$ U7 o6 s, b/ jEnd Function
8 B( |$ V% i7 X8 g1 XPrivate Function HexToNumber(ByRef pStrHex) $ `; i0 P4 x5 i
HexToNumber = CLng("&h" & pStrHex)
9 h1 B4 N- Q7 f( M! x+ t! q+ V) Y7 R% EEnd Function ; P: W3 s( y* a# Q3 \/ Z
End Class 2 w2 R- Z- Q6 u
function Encryptstr(Message)
( j, z# F5 X$ b, P4 I7 FDim LngKeyE
) R5 y3 M* I1 P; Z' m( tDim LngKeyD ) M& Y1 w& G9 z3 R
Dim LngKeyN ! v4 g: ~+ F$ X# ?. i
Dim StrMessage
) s' L! X1 Q/ k! H; E9 l& hDim ObjRSA + x4 R3 k- w! ^
LngKeyE = "32823"
$ i+ ?- N# ?; d2 B, ^LngKeyD = "20643" 1 x5 P- v; v9 i& \) j% {
LngKeyN = "29893"
0 Z; S0 i, t7 B- sStrMessage = Message 4 g( X+ M# G  s/ F2 x4 e" U' c
Set ObjRSA = New clsRSA
, t0 `" T. e# E* [- SObjRSA.PublicKey = LngKeyE
) U: e8 W( O% y# g4 F" S8 s! PObjRSA.Modulus = LngKeyN $ C+ p  ?0 }; C, _, B6 P- d( X& F
Encryptstr = ObjRSA.Encode(StrMessage)
% S9 H* [  ^0 |3 B* H+ nSet ObjRSA = Nothing 1 D3 A# `; T7 p
end function2 Q! i4 w# \0 X8 n  F# W
Function Decryptstr(Message) ' H4 [* |! }0 V6 O
Dim LngKeyE
1 |$ y9 C4 o! f; v# M# zDim LngKeyD
! \6 L0 b) Y2 C( P+ @( B! RDim LngKeyN
' B, k' [# j# ]$ L6 UDim StrMessage
! l: M- C1 R/ ]- {& YDim ObjRSA 8 k* C7 L8 N; F# D
LngKeyE = "32823"
7 c# d. I' Q$ |5 o& v6 T  NLngKeyD = "20643"
; w4 o  z" Z5 lLngKeyN = "29893" * J- s9 U8 q1 T" Q
StrMessage = Message
6 l: K" p$ M  b; S% QSet ObjRSA = New clsRSA + l7 @3 ^9 P0 u6 D/ K1 K
ObjRSA.PrivateKey =LngKeyD
8 _; z* Z5 m, K: q2 tObjRSA.Modulus=LngKeyN 7 |4 {6 L  Q0 h0 H& A6 i2 w
decryptstr=ObjRSA.Decode(StrMessage)
6 {; S7 `4 k' ~8 QSet ObjRSA = Nothing
, a! u! ^! Z. \" y8 E% i" h( Lend function 5 K2 F3 T& e1 ]3 j. _
%>/ L2 d1 m8 ^6 c& |$ r
===============================================
7 U5 v# R8 |; {3 M$ {: y! k$ _' [5 ^# Y
还有一个用于测试这段代码的test.asp
9 K7 e  ^2 B9 z4 B' p! L! t有兴趣的自己搭建个IIS测试下$ |. s  B7 x; n# Y; Y
<!--#INCLUDE FILE="RSA.asp"--> % e$ v7 ~# g* J0 q/ b
<%
5 D1 p+ x! `+ f& ?function Encryptstr(Message) * ?2 R1 u' n8 |( [2 c7 @6 B* l
Dim LngKeyE 8 p9 a/ V  F2 ]% g2 W) ~
Dim LngKeyD 8 E) e9 O& L3 i" ^
Dim LngKeyN 6 _- ~, ], k$ v# P
Dim StrMessage " r) c2 |. K$ f1 p! ~
Dim ObjRSA . O3 M4 U5 N2 W+ l( ]
LngKeyE = "32823" ! Q# F  P* h0 |% d% s, ~
LngKeyD = "20643"
: K: d' ?: v# Q, i, ]1 B( U- XLngKeyN = "29893"
- y$ R* q3 w* W1 n- sStrMessage = Message 4 U: q% ]3 i3 \" o: _1 N
Set ObjRSA = New clsRSA ) i( p' `; ^3 H" B6 j- U
ObjRSA.PublicKey = LngKeyE & ]( G5 {6 ?7 t" E, X( |" ?
ObjRSA.Modulus = LngKeyN & U; x- K% Q' K) v8 {
Encryptstr = ObjRSA.Encode(StrMessage)
6 |* }# j' d, g: d, w8 N7 tSet ObjRSA = Nothing
% n9 }' v# @' t: k  R  zend function
  E% d" E' l3 B) x, ffunction decryptstr(Message) 8 @2 N7 O7 B/ \* a
Dim LngKeyE
4 L; O* t4 \+ r$ zDim LngKeyD 0 @; E1 ]! x  C/ A9 ?
Dim LngKeyN - C5 i; u1 e7 r/ e' r( v' b
Dim StrMessage ( ]- e+ p) M5 R. c- G* ~
Dim ObjRSA ( V' Y* T! f- c/ ?4 Y* a/ Z
LngKeyE = "32823" # `3 j* m6 D% X9 C
LngKeyD = "20643" , w+ I( g+ ~9 y  U- {  p
LngKeyN = "29893"
7 @. i% x3 b! o: E: Q% B6 K2 C3 ?: DStrMessage = Message
3 T$ |+ u0 q2 ?& pSet ObjRSA = New clsRSA
; U& C. ]% g0 z- j: `* zObjRSA.PrivateKey =LngKeyD
' ]* p' J( q, ^6 m3 CObjRSA.Modulus=LngKeyN & \, ^7 }% e( x) S
decryptstr=ObjRSA.Decode(StrMessage) * Y( F& I+ s* ~! M
Set ObjRSA = Nothing
8 Q1 F) Z  y& {: Fend function * a" l# W8 b9 Z5 h. w. ~
dim last,first ) {" D0 y- V" b& c* e: }6 V. L
first="!@#$%^&*()" 7 d1 S. p3 @  f2 x/ d, Y
Response.Write "加密前为:"&first
, d% g0 [- g9 d% e. s+ @# \. vlast=Encryptstr(first)
0 b5 ]! ]0 e& H/ C& _Response.Write "加密后为"&last 0 A" e; U# ^0 l9 v
Response.Write "解密后为" &decryptstr(last)
+ i8 A" _& H* }%> ==============================================% ?% Y1 e% T2 r$ n/ n
剩下的就是字符的对照表了
2 z) q+ L& D/ l8 y5 b$ W===================字符集================
- M* C  @7 S5 f9 }& f8 A+ P0 ]1_____6EBB
5 ~: d" W1 h4 H2 @2_____5C1F0 L4 x& b- @! _; m1 g9 H) K
3_____4D754 u" W0 X( W5 O1 n, T  u4 g1 n
4_____26CC  s% G& O, f: x+ H9 t' V4 I
5_____4F88
/ J9 w) }  I; S6_____3F4E1 i+ C8 z" [2 A
7_____0A9D; U' G' P0 ~$ U& n1 {0 H7 r
8_____1A1C
5 [3 T. g4 k& }  h1 K9_____6D20
( X: Z; S  C2 n$ N- U0_____1089
; N* y0 J- f3 x; f0 Aa_____0F3E6 I9 I& i! t) Q2 ^5 h1 G: C7 ~
b_____3159, Q. b7 G( U# m
c_____3517# F. ?0 c" p  j/ r
d_____419C
: O( F9 `' Z$ p8 s% `# Ve_____615C
. R, e0 ^- i" m1 J7 j$ j5 d' gf_____556F  P0 N% u- L. s" d
g_____2B7F$ q) I! N( C  V# R' H" }9 M
h_____0F9C; T8 i6 F. Q6 M- P' B6 ?( j5 J
i_____00FA
: t2 [% L4 `: d; W0 a5 Ej_____5A50+ F" c0 G3 v7 w0 M, Q
k_____2850. I( s* g' b. Z- y. h! q
l_____3E7B0 g& Z1 b1 h  l
m_____71C5
( o  k) T. j$ {, On_____1FC8' i' i1 m& V# w( a. M
o_____74C1
2 R) a& h& P; k' n6 n' O) op_____5FB8- u  N, ]: n+ E% H/ I8 p3 S' z8 o+ Q2 n
q_____6085
, g9 H. n4 k9 ~- Y* J$ nr_____3AC4
; i, s& U; o0 r; fs_____2F50: P/ Z" k  _+ O. u
t_____36F8
' A8 h+ s6 }# Ju_____7010
/ u5 o  ^- `+ @, k" cv_____0B42
3 K5 q$ l1 ?/ |: {; i* _, t2 ^w_____1C7A
- X+ k! Q" W* @& {( P- xx_____16F8  ^* B# G; ]# R0 v) W/ F
y_____2EE7( j( i, U7 E( x
z_____5CF31 b) c) S, R# Z; K" l% r
!_____6233
# T/ V! ]- J$ i# d6 n4 b( }2 k@_____3A45
: A+ H1 J' C. l. k#_____2291+ V' V- Y' z9 L" n5 k& \0 ~
$_____5D5C
8 b& ?2 Y$ |. N: [: {  D%_____09B9, T0 M! u2 j2 }
^_____43EA% X* K" x2 a$ _: a; ^
&_____62B9( L. I4 {7 ]- X3 d  x+ m
*_____6301
( r. Y  ^+ J; u4 V(_____4659
- l+ u' U+ G1 U" ~0 s' T)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表