返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm) D$ d& V! b4 X  E' w7 r& Z
原始出处:http://www.3ast.com.cm/ z0 W; M' d- q: r8 j
" F2 h+ E5 D: L5 Q7 o
看不懂的直接绕过, K& [0 P! R% A6 a, f# `
加密前为:hwy123456
$ }" E0 y" _- @6 |加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E9 X. B0 r2 h" Z+ A
: J9 j8 _7 E/ q6 ?
============================================
+ \3 a/ p& T3 O9 N上面是当时自己校内的心情。现在已经解破出来了,分享给大家! Z7 w0 V* q$ q/ N3 i" D
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
; t( E7 ^" |) l, v- ]以下是RSA算法文件
- R: Y1 i) c: P/ F5 }" E6 f7 s% E- }# @9 S6 ~/ Q! D3 n
文件名RSA.ASP
& I  n: T* |% w6 I. |===============================================% W" @; p3 [( L% O2 X
<%
' @, Q: T/ D' D% U/ m+ _Class clsRSA
" C9 s0 J9 E* h1 @7 q* RPublic PrivateKey % I) c8 w. g) T3 r  _
Public PublicKey
3 Q+ g$ z$ t. V" }$ k9 I5 l8 l7 D. vPublic Modulus
$ G( J9 g% I: f8 [5 c" \; `Public Function Crypt(pLngMessage, pLngKey) 2 S0 n: ?; O( X+ s0 z* d
On Error Resume Next
' y  n; P6 }* }' n9 O! hDim lLngMod
4 Q& y* k) w5 \9 O* xDim lLngResult
+ \& z- r" [! I. \$ ZDim lLngIndex
- W8 _( U2 M( u# Q0 n: \7 G8 yIf pLngKey Mod 2 = 0 Then
* m: I  u3 v5 GlLngResult = 1
$ a. Q2 S2 j, O" |; d' o" uFor lLngIndex = 1 To pLngKey / 2 ; d& M. F5 s' o* c, Z" h. \# }
lLngMod = (pLngMessage ^ 2) Mod Modulus 8 v. C0 w3 z/ ]& k# x( i
' Mod may error on key generation
6 x" j. [. G1 F6 b! P: a; {lLngResult = (lLngMod * lLngResult) Mod Modulus
! C) T3 U  J5 F; k' XIf Err Then Exit Function 7 G7 x) V/ o3 r6 n/ _* u
Next / }3 g9 f5 S# d) W7 t9 h5 J: {
Else
5 x; L3 H! @) c: VlLngResult = pLngMessage / @5 t  Q5 E* {' m/ z) o. [
For lLngIndex = 1 To pLngKey / 2
: D8 f  C6 P* |4 H6 c- o  \lLngMod = (pLngMessage ^ 2) Mod Modulus / D" q; i+ d, j' e: r5 m
On Error Resume Next
6 {. e5 S2 {2 h7 u8 A& t3 a' Mod may error on key generation
; d8 W/ q. \0 Y8 E+ GlLngResult = (lLngMod * lLngResult) Mod Modulus 2 g5 u6 ]' f& R% Z5 ?- F0 k. }
If Err Then Exit Function
9 s" k3 A" e# Q, q9 f! F$ TNext + p- f; k7 O$ T( B
End If ' S+ f# |& V6 A6 e, H
Crypt = lLngResult
5 V3 B; |/ Z4 a4 h" N* ^End Function
/ j  ]9 O. F# ^$ x% w) R5 w3 R& _# V2 i* q! U. Q
Public Function Encode(ByVal pStrMessage)
1 _3 G) J+ W. |) a0 q" ?8 v0 T9 eDim lLngIndex * r5 A( W9 ^; N9 b2 _! }- U0 C
Dim lLngMaxIndex & `$ T+ _6 M8 s7 l
Dim lBytAscii 7 s% M; W. |! R; W
Dim lLngEncrypted
9 C7 D$ ~; r( C: @, l- a( S5 ~lLngMaxIndex = Len(pStrMessage) ) r. p1 \' W$ x6 T
If lLngMaxIndex = 0 Then Exit Function 6 ]  B( B8 _) g+ P# b; m
For lLngIndex = 1 To lLngMaxIndex ! W" ?3 V7 q0 d. Z8 r# O& ~* h
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
2 H" m4 Y! _  i3 f) s7 @5 l/ l# ~lLngEncrypted = Crypt(lBytAscii, PublicKey)
( I7 g: S! _: c9 F/ n/ uEncode = Encode & NumberToHex(lLngEncrypted, 4) - G' o9 G$ s1 @$ _) S+ T/ O. U
Next
1 `* ~) J( T* {& R$ Y/ SEnd Function
: x0 Y; z9 ]0 E9 sPublic Function Decode(ByVal pStrMessage)
  B, _6 O/ j! d9 T4 M! d3 U& X- bDim lBytAscii
, g* p4 U7 ~/ D* V/ w! ~5 L+ O# mDim lLngIndex * h2 s8 h$ w6 U( c: K; Y
Dim lLngMaxIndex
: Y* r% a" q- }Dim lLngEncryptedData " D9 C1 q8 u! f) v
Decode = "" % d# B/ Z# Y! S" ^& m! M
lLngMaxIndex = Len(pStrMessage)
) s& S0 E4 F2 R8 m3 NFor lLngIndex = 1 To lLngMaxIndex Step 4
  o3 N/ g1 Z1 r/ Z7 g/ X& YlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
5 S% C/ e, f) h, D/ S( o; q2 V  C. r: HlBytAscii = Crypt(lLngEncryptedData, PrivateKey) / r6 R" L( y/ N9 L/ R1 ^+ y& S1 l7 H
Decode = Decode & Chr(lBytAscii)
  X% Q1 M8 T) i/ G1 s( N" Q4 hNext
# ~- m5 x9 J" Z) DEnd Function
, I* L! H! g* K% r3 r3 k9 G* ~% yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 4 V0 q/ @7 o7 {) g% W
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 3 F& f1 v; |+ l1 a# h! e2 P! R- K2 m& ~
End Function # h' X: |0 M& t0 f1 k, f- ^6 M
Private Function HexToNumber(ByRef pStrHex) : X* l: y; J. \; t8 u* V
HexToNumber = CLng("&h" & pStrHex)
- x+ K: {) I, KEnd Function - E$ Z9 }, P4 o) P+ z, e. A
End Class
' }9 p" k. z, P1 r6 ]0 z7 A3 L7 Qfunction Encryptstr(Message) . J# C. d' A- m1 {1 U- |, z0 S
Dim LngKeyE % Z( l, ^& K; l9 U. w+ J- ~
Dim LngKeyD
$ D7 q4 [% D0 C3 M' G1 e" _Dim LngKeyN
5 e! a% q0 M. g9 F2 l2 P2 j4 e0 nDim StrMessage
+ \) F  }- _/ ], IDim ObjRSA 8 }, F1 L" g3 y/ _9 v3 H
LngKeyE = "32823"
4 U8 n" V( T1 I) o; f: @LngKeyD = "20643"
& ]6 p5 d2 I" uLngKeyN = "29893" : x6 ?2 V. N: `- L  v* t! K1 A' M1 l
StrMessage = Message
5 C+ \% a  ]  f$ v& oSet ObjRSA = New clsRSA
  e( i. n6 v2 a2 NObjRSA.PublicKey = LngKeyE
& G, u4 f# [- X9 J  ?; Z. z0 J; k* NObjRSA.Modulus = LngKeyN
- ~9 c- ]2 W1 y) E9 ]4 Z* gEncryptstr = ObjRSA.Encode(StrMessage)
/ g& u% U1 _; S  f! W9 t% ESet ObjRSA = Nothing 3 D" I0 a: Q) g2 a' w" \% `
end function# r- }+ `, L7 i6 a9 O5 I4 w5 N: W
Function Decryptstr(Message)
* C/ U' {9 E8 ^: |Dim LngKeyE
8 Z/ A9 c0 o- IDim LngKeyD
6 P$ @( X' z0 _- sDim LngKeyN   ]. Q: l1 ]* T5 U* k! [, w
Dim StrMessage
9 ~2 I" V; f/ l$ f% y: ?Dim ObjRSA ; Q- o- ]0 C* e; V% M& I  D$ W) I4 f3 |
LngKeyE = "32823"
6 X$ [8 B% `" _/ Z1 y& f- C$ S) ZLngKeyD = "20643" % Q5 @2 ]3 k- v% {& O6 \6 G! v' d. z
LngKeyN = "29893" 3 h% U+ E; [7 ]. h4 G+ s
StrMessage = Message
2 D2 F' t1 [- d8 B) e3 ^  hSet ObjRSA = New clsRSA
* C! e, C" K$ y7 F  j' j2 b4 ~* EObjRSA.PrivateKey =LngKeyD 1 f; a# b0 Y. T- x" U
ObjRSA.Modulus=LngKeyN
1 c4 B; y6 Z1 b' w/ e8 Qdecryptstr=ObjRSA.Decode(StrMessage) . c5 h) A* ]( D+ a# |  e' j" ?
Set ObjRSA = Nothing
, N' W. S! m# ?end function % y- T1 e2 q+ x6 s5 n% F
%>/ {7 O4 H* D3 d1 H# P( k5 @  ^
===============================================. G( C: \" Y/ Y: }1 Q, Q9 x% I
7 F2 j! ~: l& `- K) F- V3 ~# j
还有一个用于测试这段代码的test.asp
; s; f9 ]( [+ \6 r有兴趣的自己搭建个IIS测试下  q7 Z; i3 C% M& s& C8 v5 C
<!--#INCLUDE FILE="RSA.asp"-->
9 j1 B7 P( i  h" a7 u) ]<%
7 F8 s$ a% Y! Z1 B3 N' zfunction Encryptstr(Message)
" d* F5 v; H  }+ ]5 R4 ]- l4 MDim LngKeyE # U3 _0 A* c8 J; w7 b  a0 O' B, r
Dim LngKeyD
, p9 ~' A1 Z) I' N. G! \Dim LngKeyN
/ T/ s9 R5 o- Y& s) KDim StrMessage
7 C0 g* o; l: t7 Z* F4 M) CDim ObjRSA 7 x2 W6 o8 d, G; m
LngKeyE = "32823"
5 t9 h- i+ y% H7 \2 I2 GLngKeyD = "20643"
7 Y6 t( X; _2 b* v4 qLngKeyN = "29893"
( r) N% x- G# WStrMessage = Message
" y+ @! l/ o: @. ~2 ]% ]; q# h* LSet ObjRSA = New clsRSA
  ?4 Q7 }. c" gObjRSA.PublicKey = LngKeyE 8 Q8 `2 |5 d- y: l
ObjRSA.Modulus = LngKeyN
0 ~! Y6 ~: x( j' S) F% N- N% EEncryptstr = ObjRSA.Encode(StrMessage)
$ ~- X& q0 W6 p( BSet ObjRSA = Nothing
5 T- Q( ^- p5 T: y- ^& send function
, j9 \4 |2 i* [/ J4 tfunction decryptstr(Message)
7 J/ G, l( R2 U5 RDim LngKeyE
% S6 V) }+ I! ^, QDim LngKeyD   ^$ @: b3 c+ Y
Dim LngKeyN - r+ m$ ^, A9 q2 u- O" z
Dim StrMessage
& X* G  p# d8 i& h/ D8 B0 [1 LDim ObjRSA
3 X  h& e2 L5 r8 `3 [- a" I* K5 SLngKeyE = "32823"
/ |2 f% [# n( C& ^LngKeyD = "20643"
: @" A; S( S! r3 n* j) vLngKeyN = "29893" 3 w% }2 z! L: h) y& W" Q: Z
StrMessage = Message 0 o( |( U. @+ L/ I; O, x
Set ObjRSA = New clsRSA
/ {8 |$ z& G6 J8 S3 ~  OObjRSA.PrivateKey =LngKeyD ) ~* e9 h/ w8 T7 N+ d8 t/ H
ObjRSA.Modulus=LngKeyN
( s) @. m! @0 K; Hdecryptstr=ObjRSA.Decode(StrMessage)
; B* T% n5 E- b9 E6 q. l" B/ TSet ObjRSA = Nothing
/ D: {) K" f" S* V( zend function
7 j/ N2 h6 _+ K( n, H6 `dim last,first : s: x3 d! J9 O+ w
first="!@#$%^&*()"
7 a7 M! k# v9 x2 @& i8 w/ T5 TResponse.Write "加密前为:"&first $ a9 B7 s8 o# W8 Q* W1 g' p
last=Encryptstr(first) 9 l$ c# S* M/ S- w
Response.Write "加密后为"&last " O* n3 ~* `3 @  m
Response.Write "解密后为" &decryptstr(last)
2 R2 L8 ]+ l7 h  A. X: A$ j%> ==============================================7 l; |5 [. P3 V
剩下的就是字符的对照表了
' {0 E, r: b+ N" S! R===================字符集================
& s1 w& K; j/ Y4 R1 |# F4 R1_____6EBB
0 x' k# Q2 }$ h+ f$ D$ `* L2_____5C1F& P! K, `2 W; e8 o5 G& J# x
3_____4D75
0 r7 j% X( _1 R( Z5 M' I8 r8 O9 A4 S4_____26CC
9 n$ K0 z, W' s( }5_____4F88- U9 I* j( C) l6 @" o
6_____3F4E  j! F3 v, V4 v) s4 K% ?9 ^
7_____0A9D
. i+ U: P1 n. j; s8 S2 I8_____1A1C
. q" I5 ]2 e/ t- O+ J, i0 Y9_____6D208 \) n( {& r, J4 o+ }0 J4 U
0_____1089
# k2 E; m8 B5 U  Ta_____0F3E; E$ r( M$ g9 D9 k$ ]; z. _  y
b_____3159
, ^! E6 S1 i$ ?: g# v/ F" Vc_____3517
6 Q! F1 @4 ~. Fd_____419C
9 H  M$ k* D8 y2 ~  j2 [. le_____615C
" G  y# h1 H* h+ E: j* C. g; af_____556F( L5 F" }9 a# O( U( P
g_____2B7F2 T4 U2 k# s( n+ p8 d/ P1 d
h_____0F9C# t/ y4 X: s1 d0 K; B& B$ g
i_____00FA
# [3 h9 Q3 x; M# A# x, m3 D! tj_____5A50/ ^/ F$ v3 D# A# ?. J
k_____2850
/ o3 F1 f5 W$ J1 k+ zl_____3E7B% i. b! [7 V4 N6 N4 Y: c  Y4 _# v
m_____71C5) o; {* A. J2 R/ K7 q. f5 k8 X
n_____1FC85 d8 M/ I3 |8 P) E2 V) F+ o; |; W/ G
o_____74C1
, J/ E) S' }" K! P- Op_____5FB8
/ l7 m1 o7 o( {6 ?q_____60852 z& v( k0 L- r0 M$ T
r_____3AC43 b3 o: G$ m/ R+ E" d
s_____2F50
8 e/ G; D+ n' X  i5 kt_____36F8! g3 ?7 U* Q$ t
u_____70100 V6 Z' F" z: r& L* N; @, `) {
v_____0B42
' Q) A  @3 p6 e  Z$ r; G1 }3 }3 B. r  rw_____1C7A  b; B% A& Q4 ?# }1 J
x_____16F8
& Y/ _6 C: O- V' ~1 K3 O7 Q; E8 L. By_____2EE7
* A  b" _4 l. _5 R0 D# g4 e, h4 nz_____5CF3
5 T- O, R7 `+ a& v/ q( X!_____6233
! B' z/ {' D) e@_____3A45
+ G0 Z$ ~$ T" ]1 L0 B#_____2291; \+ G. {* n- ~( k# H4 B7 O
$_____5D5C7 q. I1 b! S2 p' @% {% M
%_____09B9) T6 H( l3 H% }0 ^, G
^_____43EA, N$ i: R4 \$ A, X. \
&_____62B9) ?# ?/ p5 L1 R7 t
*_____6301# D5 }# ~3 ^" I# b
(_____46591 w! }+ `& n5 y& _, }4 \
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表