返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm7 [  b' d- U& _- y, s. M
原始出处:http://www.3ast.com.cm1 A5 r" S. i7 \

# {) C. G; z9 V, L看不懂的直接绕过
0 S, o( b( W( M( R8 E; C0 y加密前为:hwy123456' T$ {  G6 N' E4 D8 Y/ T
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& ], K# _. O3 U+ y: v( w! A) {
3 Q5 b, o  _0 u, J
============================================
3 ]" H$ f% T$ o4 L5 x上面是当时自己校内的心情。现在已经解破出来了,分享给大家0 Q6 R! V- n8 u, p
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: S: t( ?: r0 z9 T5 N& \3 E以下是RSA算法文件# T9 p4 s5 D% H  g4 x/ [1 _1 u9 Z
) l/ }* x5 [, v, X( W( L6 {* F
文件名RSA.ASP! N- b$ ^- W. f
===============================================  ]6 v( P+ V. v% k
<%
& D! I7 |- L' g9 BClass clsRSA
# O) p7 f+ u; X* E3 Z+ i: ~& f2 oPublic PrivateKey 0 ~# S' w* v0 l7 _
Public PublicKey . ?  Y2 A& S' I1 E
Public Modulus 2 B+ ?+ D- `7 ]! b- D
Public Function Crypt(pLngMessage, pLngKey)
- D& Z2 h5 _# g0 ]& V8 bOn Error Resume Next 6 E: c0 I# [* [
Dim lLngMod
/ ]3 J4 h$ {! ?7 w2 p9 Z+ R# W. N+ ?Dim lLngResult ) P: n4 p% Y& G
Dim lLngIndex
' ]$ B8 Y' t+ QIf pLngKey Mod 2 = 0 Then 8 g) |( j! G+ g$ p
lLngResult = 1 3 S- Q: \/ ^, f/ B! z
For lLngIndex = 1 To pLngKey / 2 2 d' w* i' z2 |. S: P# d' l, j6 b
lLngMod = (pLngMessage ^ 2) Mod Modulus + ?# x5 q! ?7 W$ h% M
' Mod may error on key generation
% j; T0 S! [* T6 glLngResult = (lLngMod * lLngResult) Mod Modulus * J0 y0 p" `: A; k6 g7 |0 W/ ^
If Err Then Exit Function 9 w2 l" n' X' R5 o8 c
Next 6 a( a8 N  Y# p" a
Else ' C, e8 g. p  Z2 S
lLngResult = pLngMessage / j2 D0 U/ f3 @2 h
For lLngIndex = 1 To pLngKey / 2 ' j& V3 N& E$ @% E. Q
lLngMod = (pLngMessage ^ 2) Mod Modulus 9 u2 q+ Y+ y# P$ A6 Y
On Error Resume Next ' g) S0 O# G* |, G
' Mod may error on key generation
* g# v0 w  W3 |! F3 c8 plLngResult = (lLngMod * lLngResult) Mod Modulus 2 h3 q" K3 K% o
If Err Then Exit Function - s, w& o$ X/ q$ H$ b
Next # e3 Q% M% C8 Y9 f
End If
8 g# _7 W) I; G7 x- t* SCrypt = lLngResult
' {: A: @, S, y) v0 T, tEnd Function
4 t* i3 `3 t2 M* o8 N% E- ]; C- x, k8 q% p& z; H# y
Public Function Encode(ByVal pStrMessage) ; O+ Q; @. `1 L" z& t
Dim lLngIndex : ]# U4 ?& L( Y- {- m: \* x
Dim lLngMaxIndex   e5 L. }5 e. {" G) b( e* ]/ k; S
Dim lBytAscii
8 ?% |) X! y) ?Dim lLngEncrypted # F* F( e- f" W! J$ F$ P; ~+ s8 ?
lLngMaxIndex = Len(pStrMessage) & I" l* O, d& c
If lLngMaxIndex = 0 Then Exit Function / O5 |5 K+ N' c" q* K7 \
For lLngIndex = 1 To lLngMaxIndex : Z7 e% K6 R# a! _8 r
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ! B; Z+ M; \+ S! B' g( Q2 ~# W7 A
lLngEncrypted = Crypt(lBytAscii, PublicKey)
0 r0 F" C4 f2 f) }: c( UEncode = Encode & NumberToHex(lLngEncrypted, 4) 7 F9 l5 k: I0 T
Next # T" f% X. H4 c. {3 e' W: J
End Function 5 z. Q# z: l; L
Public Function Decode(ByVal pStrMessage)
  Q# M# ~. G4 R5 t. Z' IDim lBytAscii
: m! D8 B0 @  f8 X# fDim lLngIndex " E$ C" I# D: n/ t' z! `. Q5 E
Dim lLngMaxIndex
, x* _) z; f, v! L& [  L1 WDim lLngEncryptedData
/ r; U% o. ]% K  T& e/ SDecode = ""   M7 ^9 s5 r2 i4 |- F3 i( \+ [
lLngMaxIndex = Len(pStrMessage)
' E$ S4 {" H, \) b8 V7 mFor lLngIndex = 1 To lLngMaxIndex Step 4
2 W! A; ^; J0 G5 X- B8 _lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- [" n, W1 @1 a, U. nlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ; U3 k  U2 S6 S2 S
Decode = Decode & Chr(lBytAscii) 9 M% d. j% M5 [9 }; E
Next
/ Z5 i6 j/ K. {" B0 x, ZEnd Function
! K. {& c, _  DPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) & F+ S9 a, z6 n* [% p1 [! `
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 5 y" y! i4 Q$ y7 m4 p
End Function : t" K) g* m, f
Private Function HexToNumber(ByRef pStrHex)
) u, B* g+ x) THexToNumber = CLng("&h" & pStrHex) % t6 _7 Q4 B, O0 w# c4 j
End Function # Z1 h: ?5 Z+ {. _! t/ y' G' t6 l
End Class   x# Z. l8 v6 B: H; N' e7 T$ c9 h
function Encryptstr(Message) ' b1 s& A+ f" D7 w8 z
Dim LngKeyE
: }1 n: `" h) O& B) _Dim LngKeyD 5 W' }2 T% R) b# E* Z
Dim LngKeyN
$ ?/ M6 p& g# j- r) H( x) HDim StrMessage
6 E; i7 `' C7 i) [9 r( e$ aDim ObjRSA 4 _7 M5 K0 O; U1 U; d) n+ p
LngKeyE = "32823"
3 e. s1 X* @$ |" A0 Q2 c7 B3 E: Y' kLngKeyD = "20643"
5 J5 O2 a7 |1 V9 D# I0 ^& S; I: W1 z' fLngKeyN = "29893" $ T# J* k, C( a- v
StrMessage = Message 9 o- b5 A& J! {
Set ObjRSA = New clsRSA
# ]) t( M8 s# Q* x8 k4 v' q8 {ObjRSA.PublicKey = LngKeyE
, A! Y7 f  N7 j. k5 X: GObjRSA.Modulus = LngKeyN " q% l* ^4 ]% Y
Encryptstr = ObjRSA.Encode(StrMessage) ; I7 ^$ G$ b: r5 H9 j9 F
Set ObjRSA = Nothing
' L9 j; r2 e$ o  Q, {end function
; w) ?1 P+ y& r, lFunction Decryptstr(Message)
0 z5 M6 l5 p0 ^; MDim LngKeyE 8 u) i3 |. \% w) G9 F
Dim LngKeyD + u7 X; ]% g9 K* O. R
Dim LngKeyN 7 J/ ?# I* k% _
Dim StrMessage ) ?6 C+ N' i+ O% Y- o
Dim ObjRSA - C) o3 A; Y7 D$ F% L
LngKeyE = "32823" ) E1 _0 |  n8 \* G1 h9 u0 R
LngKeyD = "20643" , ]; z7 g: Q* o3 d. ]; X$ x: T
LngKeyN = "29893" ! T% w( O. g4 k+ h) t
StrMessage = Message ! L, D( s4 g9 |  g- P8 e7 F
Set ObjRSA = New clsRSA
0 C8 d4 n# |- m1 N: O7 \ObjRSA.PrivateKey =LngKeyD
! Y: O2 `) |) L8 h1 M5 W6 fObjRSA.Modulus=LngKeyN : A" S, h3 D0 |, u7 x" n
decryptstr=ObjRSA.Decode(StrMessage) " E7 q0 f5 O" C! y& ?, y& i
Set ObjRSA = Nothing ! n# _# v. w- p! c+ [- s/ {
end function
3 ^" O8 }) b% I: i& |2 P%>5 l0 H4 d6 _) J0 A  y! K
===============================================# F1 Z8 H  v9 O' N# t$ D
( j6 D5 p/ G4 U7 `8 J3 B6 v; I
还有一个用于测试这段代码的test.asp, O' l- s0 @, ~
有兴趣的自己搭建个IIS测试下
1 x# [/ V8 L! Z8 _. T<!--#INCLUDE FILE="RSA.asp"--> ( C* t( G/ [; z
<%
4 g3 y9 y0 F) _$ [0 T9 Efunction Encryptstr(Message) , O. M! T  R7 C
Dim LngKeyE
: P5 \; ~  T6 zDim LngKeyD $ n- w: Q, F4 \! u( l# I
Dim LngKeyN $ C- P! o$ D% b9 n  C
Dim StrMessage
7 M8 N+ P+ R' U+ N5 r8 l, _, ^Dim ObjRSA 5 L$ a& @5 U" k6 J" [) T
LngKeyE = "32823"
" u8 W( a8 `& y: ~LngKeyD = "20643"
# i1 l! A3 l( x/ j1 pLngKeyN = "29893" / x; O6 C7 ~' I. ?
StrMessage = Message
5 F% |4 }7 P* o" ^! s2 k# l; ZSet ObjRSA = New clsRSA
' m' C7 {& H, Z  pObjRSA.PublicKey = LngKeyE
9 t+ G# s8 ^) F0 H$ ?% L/ y/ zObjRSA.Modulus = LngKeyN
$ D6 O9 S) \0 y' w* rEncryptstr = ObjRSA.Encode(StrMessage)
/ p+ K9 u  R& b& I- pSet ObjRSA = Nothing
# b+ B% i  l+ A3 \3 z  Aend function 2 L& v' z$ c$ }+ f$ \
function decryptstr(Message) / B) v9 E2 Z7 I) w
Dim LngKeyE
9 g3 {0 z3 ]% ~( gDim LngKeyD " J6 G6 ?* t- v& D) x
Dim LngKeyN   D' D7 O, j0 v2 x
Dim StrMessage
7 r+ R! H7 f  u% TDim ObjRSA
7 y+ H, X. ~2 e- R0 `. HLngKeyE = "32823"
  B) j$ V. u0 L5 `, DLngKeyD = "20643" ( a; z" s9 b3 R+ b
LngKeyN = "29893"
% G5 A: Z8 g' s% wStrMessage = Message
& }- Z/ q$ H5 \; `% E6 u( I8 ~Set ObjRSA = New clsRSA
5 _' i+ c4 B( vObjRSA.PrivateKey =LngKeyD 6 ^% i2 ~$ z5 w  |/ _
ObjRSA.Modulus=LngKeyN 8 ?. \6 |! J8 ^3 b
decryptstr=ObjRSA.Decode(StrMessage)
2 K) b: y( N& V1 L  {Set ObjRSA = Nothing
8 A% i( A- B1 @1 h& L7 Rend function
& K  u, T; W  {; H% ^0 O9 h: @8 hdim last,first 6 D7 z- x  V! s. j# J4 _- G0 w% f+ K" J
first="!@#$%^&*()" 9 T. ]% |/ g6 R9 `, f( M
Response.Write "加密前为:"&first
% _8 y: C, C% E* ^last=Encryptstr(first)
; v& b3 J5 L4 d0 T6 z+ v3 `Response.Write "加密后为"&last ; k7 T1 u- Y& c/ j! Y! h% c
Response.Write "解密后为" &decryptstr(last)
" t! N7 u: m4 D7 b: H- G: [%> ==============================================  T+ v. x" f0 ~8 w( o7 |
剩下的就是字符的对照表了+ x4 c/ ~6 n1 J' c+ w0 u
===================字符集================
. }' S" M! T2 U* ~1_____6EBB( h  \" n( `) O3 D9 ~% ]6 X9 a8 q
2_____5C1F
3 Q$ p% W& p4 ?8 E/ _, M3_____4D751 L* |; g) N/ h. g  G; C! `" I
4_____26CC
( ?" b3 Y( q& S5 k8 f; I5_____4F88% y) w1 k+ E/ t
6_____3F4E) B. h$ x% E0 K. Z% B$ g% c
7_____0A9D( J# l: V0 r$ A# ]) V/ R
8_____1A1C
; k, v+ Y" N/ `" V9_____6D20+ J6 ^9 ^) p, l. V! j) ?* p
0_____10898 B+ W" V! ]. t( ?: P& a
a_____0F3E/ s* j. C/ t; j' }: g3 D
b_____3159
2 g/ X, _& y7 j. k/ o. s. Mc_____3517/ x. j6 X8 d7 `, s. r+ K# E# ^7 L
d_____419C
+ A/ B% F0 C1 H& c2 I. F; ze_____615C! J% J; I1 K- Z
f_____556F5 _% U  f) n2 y( k  }+ J. ^: R
g_____2B7F6 R  E4 Q% d. ~1 A) o
h_____0F9C2 @# U* A2 y1 w, z
i_____00FA
6 t, G1 b/ F2 r: u/ q& P9 j* d% |j_____5A50
% _) `7 c$ ?$ i' }; tk_____28503 `: N+ |9 `9 m% {& b  u0 O
l_____3E7B
1 Q% V5 M% j& J8 p" jm_____71C5
- s! \5 S& `( B- Z$ G3 cn_____1FC8
9 {/ c7 t+ T) u- A( lo_____74C1! o3 F! w: ~& n9 k
p_____5FB8
9 ]" n: W; u: F8 j  L1 Cq_____6085' f2 B. U7 h& M6 Q% o8 H4 E
r_____3AC4
. Y$ ~$ I+ [$ n7 L) q! Y: ?( Xs_____2F50
9 w1 p4 |+ q% G+ T5 \0 wt_____36F8+ m) k) ^# `2 l3 C7 l% v
u_____7010
& q( S0 X# j9 }; P2 L* M9 Sv_____0B42
: W, r  G9 {/ a1 y$ U$ D# Cw_____1C7A$ M# ?% d& M. {, d0 y
x_____16F8
' }6 M, |0 Y0 b% `y_____2EE75 l, W( U- L8 y
z_____5CF3# x3 a* A" d. u7 |4 F+ m8 @
!_____6233
( R: D  q! o( k& H1 O, ]- c9 H@_____3A45
3 K4 I4 k" ]6 m0 q#_____2291
/ f6 X$ p& O7 T# j9 N5 z$_____5D5C# j! a6 r/ E4 q4 w
%_____09B9
: D+ R( F' n# I& ?1 w  \' ]^_____43EA
8 b( @) P: W; q. r  s1 Q4 {&_____62B9
* n5 K: `' o; C- N*_____6301
$ a1 u2 H  V" S(_____4659$ S! m& B% q& z3 K: Q
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表