返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm) O+ i! |+ ^, @7 m+ r" B
原始出处:http://www.3ast.com.cm
0 T) {) ]- }2 A- u9 A+ y- D: \  q( q/ I" Z+ l8 h2 i/ X: x
看不懂的直接绕过, H+ s+ D9 ~) c6 h
加密前为:hwy123456  l5 B' z3 u, o) w' O
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E" ?8 l) M4 U# O% Z. K5 h

- m3 }( d' \. N/ P* g============================================
& w8 Q  Q3 {5 B. }. ~# l上面是当时自己校内的心情。现在已经解破出来了,分享给大家) D$ {7 l9 B/ q- T1 c+ r
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
) u8 t: a+ A; r/ R以下是RSA算法文件% X/ s0 ^( Q% e  r* }

3 D9 i2 T5 v0 A1 F文件名RSA.ASP
& C8 j1 B# B, |7 Q7 x===============================================
5 F3 u! d& n/ n) {/ d! ^- h+ Q; d  b<% 1 I0 [5 }8 j) u+ G6 [
Class clsRSA ! B. n. z% d" I1 H3 t" ?
Public PrivateKey
+ T0 m* D/ F7 I4 n0 aPublic PublicKey 8 N) D" }# e- a, ~4 {
Public Modulus + E% M  a$ P  u" _0 c
Public Function Crypt(pLngMessage, pLngKey)
" ^! F% x  a4 F: b) ~3 DOn Error Resume Next
# j8 p1 A7 V1 G5 x7 U7 C/ VDim lLngMod ! S0 V! L6 S2 @! ?: v! B' J/ x
Dim lLngResult
2 q* X1 Z  ?& j) ~3 \Dim lLngIndex % ]$ `' m: Q1 X- X% L
If pLngKey Mod 2 = 0 Then & `1 h5 h- k, S& d$ o( i& o
lLngResult = 1 1 J( E9 y6 z4 E" _7 _8 |) R
For lLngIndex = 1 To pLngKey / 2
0 E/ Q" s) I" Z7 p5 N) ^% n' }) elLngMod = (pLngMessage ^ 2) Mod Modulus
3 i0 B. J7 `7 |# k. L0 [' Mod may error on key generation 9 ^; I( w- [. h
lLngResult = (lLngMod * lLngResult) Mod Modulus
2 g* Q0 K" P# Z4 dIf Err Then Exit Function
' ^9 `7 V+ }- M, xNext & |, y  c/ u6 K: \) F- p
Else
8 b8 }0 [8 J% p* {: Y/ c% _/ KlLngResult = pLngMessage 9 v3 [6 j0 p9 ?! M
For lLngIndex = 1 To pLngKey / 2 8 w' f9 N8 M* c7 ?% i
lLngMod = (pLngMessage ^ 2) Mod Modulus / f" @: Z8 _+ e+ j
On Error Resume Next
1 r% D: r5 i* @( L! ?2 G' Mod may error on key generation
0 R6 L, a+ \" S- d# z7 p: ]3 O9 dlLngResult = (lLngMod * lLngResult) Mod Modulus 0 ?! N8 I9 h/ W6 j! |/ `  e: S
If Err Then Exit Function 7 u, M( s8 ]4 L) n8 [- c# K
Next
2 S9 P% d# ^. n% R; }End If $ c- S2 [* f" t& L! y8 G
Crypt = lLngResult
' n/ T6 `7 Y3 \. Q' B4 C( J4 ~End Function" f6 y7 e! U+ v  P
3 w& e. E/ w  |$ {* g
Public Function Encode(ByVal pStrMessage)
/ E/ e6 K4 f: c" |4 K( }, HDim lLngIndex 2 D% K9 A6 t% g- a9 D% w
Dim lLngMaxIndex 9 M1 ~# X: `+ G* p$ |
Dim lBytAscii
( J: b" G  M% @+ l& JDim lLngEncrypted * o2 A7 S/ y1 Z. g) }; `" G5 M0 s
lLngMaxIndex = Len(pStrMessage)
9 h- o; E: y3 e, H6 ^If lLngMaxIndex = 0 Then Exit Function 9 ?5 @5 X. }1 m  F
For lLngIndex = 1 To lLngMaxIndex
# t% r7 R3 {" C1 llBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) v" u0 ^1 ~- C8 q' V: m3 h+ ~lLngEncrypted = Crypt(lBytAscii, PublicKey)
# I* e6 g4 d( w! ?Encode = Encode & NumberToHex(lLngEncrypted, 4) 5 O3 x: l/ j9 B6 w0 `8 `
Next   a. _1 q* `" i1 k( B0 J9 K
End Function   \. ]$ [) q, E: x% v
Public Function Decode(ByVal pStrMessage) ! c, R" g0 q7 N2 \2 K. s& {
Dim lBytAscii & k; P$ i$ w' k$ T7 I
Dim lLngIndex - Y3 Q6 |7 U8 C' j
Dim lLngMaxIndex
# J; }6 s3 \  f; P& ]4 V( [! FDim lLngEncryptedData
: `( C' c4 ?0 |$ t! ^  \3 }Decode = ""
& ~$ B' B8 i/ [& p) Y& W3 OlLngMaxIndex = Len(pStrMessage)
$ U' L) |1 U1 V! P6 m: l0 J' CFor lLngIndex = 1 To lLngMaxIndex Step 4
: W# m. K4 N; c/ A5 Q- llLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 7 }3 n! ]6 p! w9 O  q
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) , N! C7 a; v& A
Decode = Decode & Chr(lBytAscii)
, K2 r3 y/ \8 O0 R; O9 t. ENext 9 y  Y, p6 T# S( P
End Function
0 T. S4 c+ J- N& h6 O3 m# Q& `6 hPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
6 h, f# z2 ~$ @  \7 }NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) , D  ~/ A0 b8 M7 Z+ G0 |- |
End Function 1 Z+ \. G# c7 s4 z/ u% ^
Private Function HexToNumber(ByRef pStrHex) , R  Z6 v; f) V7 C: ^
HexToNumber = CLng("&h" & pStrHex) ; I& P, C" W# d9 d% g7 I4 v1 l9 q
End Function
3 c5 T, @: F. I& {% u7 u( iEnd Class
5 t: }8 O' m, T, E* _- h  A. d3 t3 Bfunction Encryptstr(Message)
% j- N; \: J4 F6 [Dim LngKeyE 7 A5 a0 X, d" f, ?
Dim LngKeyD
% @( Q# E' f0 N# w5 hDim LngKeyN ) H; t; m# z2 ~. f9 u
Dim StrMessage : U) j4 ]& X4 k0 o
Dim ObjRSA
1 M" q5 z, X0 Q" h; SLngKeyE = "32823" 2 C1 ~1 \4 z1 c/ K, G
LngKeyD = "20643"
  Z  `8 J  t  q+ n/ U' J# V: r/ XLngKeyN = "29893" % w9 _9 C) [* L
StrMessage = Message
4 O/ y2 f; K0 vSet ObjRSA = New clsRSA
. ~# D! g  g+ t1 a9 I5 k. pObjRSA.PublicKey = LngKeyE * Z$ e5 ]$ v- i) b* Y1 a
ObjRSA.Modulus = LngKeyN - v/ [; V, W" j
Encryptstr = ObjRSA.Encode(StrMessage) $ {2 V# L9 w* \1 B, {, H2 x4 ~' X
Set ObjRSA = Nothing
- E/ }: @' {4 w$ wend function
1 H0 e- ^! K' `5 I6 }5 LFunction Decryptstr(Message) : q& ], g3 `* @4 w
Dim LngKeyE ! F! x& X. t9 j+ h- G
Dim LngKeyD . i, p* a# S# z2 B6 L/ r$ |
Dim LngKeyN
' R7 X& b3 [1 d/ |+ \9 \Dim StrMessage ! g: \: m5 @  ?8 }) v- N7 g- O
Dim ObjRSA
# i3 a) d2 l2 d1 r  xLngKeyE = "32823" # X! L4 |# U' u/ D/ L+ p0 Z! Y% F. E
LngKeyD = "20643" * D  S& c( v8 x4 i8 T
LngKeyN = "29893"
. h$ ^& L/ {( A# T5 JStrMessage = Message 6 Z" a6 W1 A9 \4 o. J* C0 G; _" H
Set ObjRSA = New clsRSA
8 k2 Z* B7 D' E* M8 YObjRSA.PrivateKey =LngKeyD % F  |1 w, O. G7 i8 a( n
ObjRSA.Modulus=LngKeyN / z: V% |: k1 \7 h- z4 b8 a( q8 q/ K
decryptstr=ObjRSA.Decode(StrMessage)
) h+ T  K; T$ L& S8 Y' M8 |/ TSet ObjRSA = Nothing
! E! c" z8 g' `& q, G% Tend function
1 W8 f, f5 Y) d1 \( b%>4 R+ R9 ^0 [! M) u9 a) G
===============================================% F' m, a7 I* c  o  k/ o. b8 y) p
+ c4 W- f9 ^$ O" f3 R: _8 L
还有一个用于测试这段代码的test.asp
; n4 r4 U+ E! T3 h  c2 e. i有兴趣的自己搭建个IIS测试下
- R0 ^( o# t: ?3 ]8 ~& w<!--#INCLUDE FILE="RSA.asp"--> 8 G! R- f6 |9 L* O1 Q6 N/ f$ U" e
<%9 l1 m7 |8 s1 |$ E7 {1 E' t% k
function Encryptstr(Message)
9 X, p8 S, ?# Z* Q5 S$ BDim LngKeyE 8 e6 x+ N2 {& t' e! u# j$ L
Dim LngKeyD
  x6 y; Z; h- q9 t; O8 oDim LngKeyN
1 B6 o/ v& Z0 Z7 U7 S2 _Dim StrMessage 3 E4 K% Y/ f" X) A% Y
Dim ObjRSA
" D7 p# Z; e! pLngKeyE = "32823" % b& H# F" j9 c
LngKeyD = "20643" ( Z& r3 K6 F# f! d* Z3 W7 }; y
LngKeyN = "29893" - T6 O: _; p2 L9 u, {8 ^
StrMessage = Message
4 R7 b3 R; S' r) N" L. iSet ObjRSA = New clsRSA
  h5 k0 D( U) R% d. RObjRSA.PublicKey = LngKeyE
7 M1 |3 |7 p9 t3 |2 n( LObjRSA.Modulus = LngKeyN
4 R: j, ~) b( C; [6 d+ bEncryptstr = ObjRSA.Encode(StrMessage) % d& D# y9 M! y% L7 J9 M4 ?
Set ObjRSA = Nothing . e9 N6 @4 ]' R0 k' i
end function
# \; ~4 X3 d* W. ]1 R# P- ]function decryptstr(Message)
5 ^- S9 @7 Y' oDim LngKeyE # x* `7 L" c: ^" L% N2 C
Dim LngKeyD
" T/ {2 S/ v3 t6 S' f+ zDim LngKeyN
5 |+ W! @! t# C- e! lDim StrMessage
1 w$ F* p; |! |6 x3 HDim ObjRSA
2 h: K8 p3 c" c3 i6 Q$ u6 t3 oLngKeyE = "32823"
% [. S0 s3 w0 g2 i# b2 e/ c9 xLngKeyD = "20643"
! u' N5 ^0 n( T$ B3 V& ZLngKeyN = "29893"
, [- Y4 T& S& b! r5 LStrMessage = Message 6 d8 F% _; l' w5 l6 R( L  D
Set ObjRSA = New clsRSA
7 q# f% l: s0 v9 }' u, {6 X: ~ObjRSA.PrivateKey =LngKeyD 1 z4 x' _; h, q" w
ObjRSA.Modulus=LngKeyN ' \" d  K% R# R* l; J0 T# n
decryptstr=ObjRSA.Decode(StrMessage)
2 |. I; e: e2 F7 v0 K. k2 NSet ObjRSA = Nothing
7 t# F$ W7 V- F4 i0 m5 R& Vend function 4 I" l* G2 q5 @! x' M9 ]4 d) r4 \
dim last,first 2 n; U# H8 u$ a& k' Y. a: o6 X' E
first="!@#$%^&*()"
" M6 q& {, ~) J% G$ B# J2 `Response.Write "加密前为:"&first 2 `: c- ?4 S6 }
last=Encryptstr(first)
! Z- h5 e. l5 r* }* ]; NResponse.Write "加密后为"&last 4 N: q$ p$ O8 l3 [) G" }9 ~8 J. v
Response.Write "解密后为" &decryptstr(last)
$ b. P0 x1 f, k5 J$ b0 X  y%> ==============================================
) |0 c. J$ N7 w# Y剩下的就是字符的对照表了
$ R) y' \& X( y6 K% i2 i===================字符集================
) R6 a. k% T( @* J1_____6EBB4 D0 k2 t, H( e+ S+ l
2_____5C1F- {4 `+ t" U7 F6 N# u) d
3_____4D75! U9 B* {. z! [1 W
4_____26CC
9 r& K0 q3 A( G1 ]5_____4F88; R1 q" M" A- f' R
6_____3F4E3 K4 ^# D3 w  |6 g; K/ ~2 f
7_____0A9D6 J$ Z  y* R' h+ m
8_____1A1C
% r5 N. A5 d$ S1 q4 T9_____6D20
) R! _( L2 v- O0 g: c0_____1089, ^% ]4 g  [) b2 N
a_____0F3E
# c; G( w- \+ ]b_____31596 T2 a0 i" W3 Z8 P
c_____35170 J9 T$ w5 t) T$ q& b$ \
d_____419C
+ L% _$ a1 d' x9 ge_____615C  d7 e4 M9 e7 z2 S% E) v) }
f_____556F
& v- y- O( e2 J* x! h5 r5 Ag_____2B7F. {5 ^8 n- Z9 {  \* v# x
h_____0F9C- v- P  \+ _5 a7 h/ z; d5 }
i_____00FA
) _% g# ]  [) c( F9 Pj_____5A50
8 M' J3 B, }# b% T& x! e- xk_____2850
4 S. ]" y( I: L' L0 c& h# Yl_____3E7B# {0 S( ~4 h/ L5 U) k
m_____71C5
1 C( ?" i7 [) D. Kn_____1FC8. A* G* a( K2 f: s+ w# f# ?5 w6 R! ?
o_____74C18 E+ M4 _5 U$ B% ^
p_____5FB8! ~! |9 K# z' ?8 V: x
q_____6085+ ?4 N1 [6 B3 u  B
r_____3AC4
$ j, r0 k" j0 W! A4 a( Ls_____2F503 T# f- L0 A3 ^+ `
t_____36F8
7 |+ O7 k5 A7 x/ D4 |u_____7010
* c4 Q; T8 R: C  n! \$ zv_____0B42
/ z) a0 Z4 f/ t  N2 T' ~w_____1C7A$ l4 [  b. m  K1 @# _
x_____16F8& ^3 S6 G8 ], r- ]5 v! v1 \6 H4 V
y_____2EE7; d5 A, G: d7 q/ x" v$ F0 r) m2 p
z_____5CF3* W( u$ @$ x0 _0 F5 K6 ]2 L9 c9 }5 c
!_____6233
" V& y% B. k: h9 c- \@_____3A45" j7 P0 z4 I- x$ D! F% N5 j
#_____2291
% Z2 \+ O( R' y: G( V$_____5D5C
! ?0 z( l$ }% H" I3 ]%_____09B9
/ |. G( W! ^' z: |; J' Y^_____43EA
' S& M' x. U6 [$ s& O&_____62B96 a" C0 @; p. k
*_____6301; N# c3 y! c$ k# E; h1 h
(_____4659
( S9 {1 N. b6 U! g, t5 H)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表