返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm3 {2 h7 M! y0 K
原始出处:http://www.3ast.com.cm
- |( k* ~( `6 ?% H. W  p- @+ S
3 G3 o+ t/ W) z7 u5 [看不懂的直接绕过
* s! g/ r; E6 h+ P6 a加密前为:hwy123456
. H! U! B5 C* k7 Z4 w加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 _+ M/ G8 I9 b0 p& x. `
0 v, `0 A: ]. f& m7 O============================================! b7 W+ X, C& r% E  B- g
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
. X# V  K* C: |' ]/ u% L  F+ j3 G也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法* Y& a9 ^) r4 R, t: B( ~9 v
以下是RSA算法文件: i3 v6 c* m8 `" Q: h3 z

# C8 ~! m1 e/ |! t文件名RSA.ASP: d/ S4 z0 d% r8 B" C
===============================================
. t; h, m* q7 E; ?' N% Q<% * j, v$ k& N' h- i) i0 |
Class clsRSA
7 B; d! @- t) u( g6 ~Public PrivateKey ! R3 S) v, T' `9 {0 _* O  X
Public PublicKey
( y, t' x5 z$ F. s/ \  D. ePublic Modulus   K" j" s: N8 E2 y1 z' V
Public Function Crypt(pLngMessage, pLngKey)
- X% S7 S; W+ K4 W! W0 vOn Error Resume Next 6 C/ x4 D6 b0 r
Dim lLngMod 6 A7 g% w! J" I( x' B* H
Dim lLngResult
7 s5 P5 Q. p8 G- t1 Q$ T7 hDim lLngIndex , V$ {: F2 ?# R+ K
If pLngKey Mod 2 = 0 Then
6 J* ^! S* f/ V. `* g0 r( w2 W0 |1 @lLngResult = 1 ) r, @5 Q" Y8 q0 U1 m  d
For lLngIndex = 1 To pLngKey / 2
* n# `7 W* a8 n9 U+ \5 WlLngMod = (pLngMessage ^ 2) Mod Modulus
# K0 }- c- g5 B: i1 r4 ?$ ]' m' Mod may error on key generation 6 g4 y4 s9 I* V/ H
lLngResult = (lLngMod * lLngResult) Mod Modulus 9 q7 T/ p- f6 y! _
If Err Then Exit Function
: j' l5 R" P  Z; z" [7 @Next
3 ]; R. X" D" b1 P7 `' sElse
/ D4 v+ e( a7 I' ~) N: A( e  B% v. BlLngResult = pLngMessage
( a" r8 p" Y, b6 h& g3 y4 sFor lLngIndex = 1 To pLngKey / 2 ! _* ]3 x+ B% f; _
lLngMod = (pLngMessage ^ 2) Mod Modulus 9 S( h6 T6 ?; ]  Y7 y6 j8 t
On Error Resume Next
7 F& K+ D- v$ l' Mod may error on key generation
7 ~) U* _/ {! J3 ^* flLngResult = (lLngMod * lLngResult) Mod Modulus
+ s$ l; Z+ C3 B5 ~, z' c' r, BIf Err Then Exit Function 2 {: g( q; {- |0 f
Next . ]/ s: A, B2 \+ d5 w
End If
. j2 e& c0 ?! l# MCrypt = lLngResult
* l, ?. d* w. `3 R& K' bEnd Function
5 \& X4 ~, _0 x) i  g8 p: b- T8 m; |) ~5 P% |' e
Public Function Encode(ByVal pStrMessage)
% J0 X4 ]$ `9 P( yDim lLngIndex
6 s4 z1 D+ s- \8 uDim lLngMaxIndex
' z+ ~( n$ L2 t( r/ \! x& x0 B7 GDim lBytAscii
/ A) r: E3 R% l' RDim lLngEncrypted 9 c. }7 Q: ?4 i$ D
lLngMaxIndex = Len(pStrMessage)
4 w( m. p& \! {3 R+ C) @3 }' zIf lLngMaxIndex = 0 Then Exit Function
, i: T# V7 O2 T3 j, u' mFor lLngIndex = 1 To lLngMaxIndex ( H# Q; ~' |/ E9 U, Z9 h, V( Y
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
0 ~4 U6 G* r4 g4 U7 X1 R$ p$ DlLngEncrypted = Crypt(lBytAscii, PublicKey)
+ T# p# Y9 Q5 b5 Y$ q  t5 YEncode = Encode & NumberToHex(lLngEncrypted, 4)
( j" j8 N  e  yNext ! ?, C0 R1 }7 e  ]; K2 `. L
End Function 9 e3 g* p1 d. C1 B: y8 ?
Public Function Decode(ByVal pStrMessage)
! D. u# r+ `1 f9 ODim lBytAscii
8 v- W1 N$ M: j6 r8 mDim lLngIndex + d4 V* T& a+ b  w7 t
Dim lLngMaxIndex ) o/ t1 H4 r, M& L; o
Dim lLngEncryptedData ! ^; X2 E5 [9 ]8 F2 H1 y: [
Decode = ""
# l8 p$ B5 W0 ^, j9 ilLngMaxIndex = Len(pStrMessage) + P1 i0 e" A" k3 o# P4 h3 f
For lLngIndex = 1 To lLngMaxIndex Step 4 % l( \+ G* }! f
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
1 |& M1 x( u; ^8 ~lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
5 D% e  [8 _( Y: ^7 Z# ?" FDecode = Decode & Chr(lBytAscii) ! E; u: j- N& X
Next
6 G, L% _+ B/ oEnd Function , L; W8 K! z/ D# C: n% U
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 l2 l5 X. ^/ o1 Q* x% n* _; GNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
2 [7 X- _( ]# ]$ U3 qEnd Function
6 B( d( q; e! ~5 P0 rPrivate Function HexToNumber(ByRef pStrHex) 6 Q" g! Z! a% L# r. N4 l* h
HexToNumber = CLng("&h" & pStrHex)
5 x) p. b9 U( uEnd Function
+ T) ]- x& R; m  ~" L+ M% e$ E& jEnd Class ( w, S2 P# w3 s8 Q
function Encryptstr(Message)
' @* ?1 l8 o4 V8 o- f4 j5 hDim LngKeyE
, s. y" b3 j0 d3 L0 s  @Dim LngKeyD ) r1 H% K# C1 [, K
Dim LngKeyN . I2 m' \3 |/ D; a
Dim StrMessage
& w) W/ o% }0 [: U6 g- LDim ObjRSA , |- Z# j) ?/ t- x/ _
LngKeyE = "32823"
' s3 Q: A4 o4 F2 J) N4 i/ Z: m1 zLngKeyD = "20643" / q- B7 u  j* |" ~% O
LngKeyN = "29893"
( V  z" ~' ^% _" c9 `! DStrMessage = Message
8 {* N2 C. l/ L% iSet ObjRSA = New clsRSA ( w; p, d% I& c$ P
ObjRSA.PublicKey = LngKeyE
( _0 `( K, X, d: |/ q" m  hObjRSA.Modulus = LngKeyN . a1 J. g" l: e
Encryptstr = ObjRSA.Encode(StrMessage)
1 G: q! \% @( i4 `1 O2 n  A% Y$ eSet ObjRSA = Nothing
. m+ A3 m0 u2 Y. uend function+ l) H2 \2 o6 H; v) c, w
Function Decryptstr(Message) 2 S/ p( `4 G, k7 V/ R, |
Dim LngKeyE * q2 R9 |: A3 S0 i  }
Dim LngKeyD
6 M( }# z& K- a+ lDim LngKeyN ; s" f( K- V! E* Y+ |# K
Dim StrMessage
9 ]' q/ i4 e2 R* y- N! jDim ObjRSA
' |. a7 m8 ~( }7 Q8 QLngKeyE = "32823"
( m4 T( p( u' @) i: I/ SLngKeyD = "20643" 2 d+ O6 E2 a) I! u
LngKeyN = "29893" 9 t# b* h6 S5 y2 S3 p
StrMessage = Message ; T8 t( q0 S7 n1 `" u
Set ObjRSA = New clsRSA
. i6 y: s# Y: e6 q3 P- TObjRSA.PrivateKey =LngKeyD
+ {" V. G6 X' W  ^ObjRSA.Modulus=LngKeyN 9 W7 V& W! A: `* I8 e& U" i# j
decryptstr=ObjRSA.Decode(StrMessage) 1 B/ Q* H+ s# N6 {
Set ObjRSA = Nothing 1 l0 m. ?7 C6 A5 u
end function   S9 m0 P1 l+ Q1 K
%>, x1 W5 x% x- m) {
===============================================+ v$ L* e, @* M) M# j6 W: ^2 ]
( x+ X" ^- N! C! B7 {
还有一个用于测试这段代码的test.asp' Y! A% c* `% R1 w1 T5 b2 K
有兴趣的自己搭建个IIS测试下
, h0 u9 u/ i% ^& R. n9 P<!--#INCLUDE FILE="RSA.asp"--> 2 H/ }1 }, `- s( h6 k
<%: o9 r, D6 V/ t, s- z) s/ {2 I: z
function Encryptstr(Message) ' e0 V# w2 q* f7 b. s) J
Dim LngKeyE
; X6 e. e: G$ d5 H' vDim LngKeyD . f6 T5 }" g/ {- E) N) {% H. }
Dim LngKeyN
# F# `! x/ A' j2 sDim StrMessage
1 a$ X; I5 ]- _$ PDim ObjRSA
3 v; ~" O( {2 E) s; dLngKeyE = "32823"
3 l, O8 L  o7 o! z. [- eLngKeyD = "20643" : }4 o" N; {+ P) ^- r  W
LngKeyN = "29893" 7 w4 [, R3 G2 s) |" d+ k
StrMessage = Message 3 J" C* p7 s- [- ^6 {9 Q" ?- L  h* N
Set ObjRSA = New clsRSA
) J( [3 ~4 Y2 h" ]4 ]! H$ {4 J1 cObjRSA.PublicKey = LngKeyE
4 `, o: a  h, _. a: R/ I2 pObjRSA.Modulus = LngKeyN
5 g2 `  {3 E/ F& H7 v. ~% EEncryptstr = ObjRSA.Encode(StrMessage) 5 L: H" r, j. W. o1 {7 l
Set ObjRSA = Nothing
) k3 a, j8 m. v& o" l4 S/ Zend function
4 [1 x. ^: c4 v2 R! u  dfunction decryptstr(Message)
8 t) ]2 f$ y1 p$ o; \. cDim LngKeyE
% S" s/ A/ _' G7 }; D; j/ T( [) r& kDim LngKeyD
0 E/ `+ l" M9 J; a& W2 a* d4 q- i+ kDim LngKeyN 5 I, }2 T. S2 f: X" z6 n" ~- x
Dim StrMessage * c) R2 L. a4 ~# t" l, ^3 m
Dim ObjRSA
) Z* _. J% v, m& w1 y9 U' j% sLngKeyE = "32823"
: o  \1 j8 ^, e+ X8 ~; \0 `LngKeyD = "20643" 4 m+ L$ u1 C! g- s
LngKeyN = "29893" " q/ U) f. L$ V- F. U
StrMessage = Message
+ _8 K/ n4 \3 }Set ObjRSA = New clsRSA : }! s1 r5 O" F( T
ObjRSA.PrivateKey =LngKeyD
! Y8 R' q" T8 f8 m5 ]ObjRSA.Modulus=LngKeyN
3 m( \! T: m9 x2 jdecryptstr=ObjRSA.Decode(StrMessage)
5 l1 [" W! i$ V9 u/ eSet ObjRSA = Nothing 3 z" U. S/ x) X- R4 r' k
end function * Q$ @' Z$ a' t7 r" [; I* p
dim last,first 5 j4 I/ ~0 z, [# I. \* F
first="!@#$%^&*()" : r$ |5 U1 J& i: Z- N& u# a+ t7 X
Response.Write "加密前为:"&first 1 p  c( S4 t  c0 c; i: S
last=Encryptstr(first) / v; O; s( ]4 ]4 d
Response.Write "加密后为"&last
7 t% c, s$ K* [& S" r1 v3 o+ T: `Response.Write "解密后为" &decryptstr(last) # ^. v0 L6 Y0 _9 C
%> ==============================================1 L' s8 t$ p9 c+ U+ k& L; P
剩下的就是字符的对照表了1 D3 u7 Z5 j# T: Z$ b* V
===================字符集================
! a) g! H6 K; h$ n5 x3 ^' O( Y1_____6EBB6 {4 a7 x' ]  f, S5 E$ t6 f
2_____5C1F
4 |  z7 |- ], U  k2 e! a$ C3_____4D75, V5 |/ {' x3 ~" x2 C; h
4_____26CC" k5 {1 }4 t6 X+ F9 _4 L
5_____4F88
: U( e( T7 t* e* q% T6_____3F4E8 s2 ~7 L5 W1 [0 y# L0 A" _. C
7_____0A9D7 J$ p2 X) k7 h: q: t; b
8_____1A1C
$ I( T8 i5 X# u7 `9_____6D209 z" e4 N! y* c2 `! d
0_____1089* p, ?- [% @( j3 _& v  G2 j
a_____0F3E1 L7 a; Q# h" |2 |+ t; J# Z: t
b_____3159
; f, [& s! h) q. ?" u# ?" Oc_____35176 W8 [  N' [3 H" U$ u
d_____419C
4 m. h7 E/ s' N3 M) I# @e_____615C3 K- G# n% ?& A8 P* {! o; n
f_____556F$ H% X+ I. U$ U! L0 X
g_____2B7F
- _# E6 }5 B0 u' k: C. sh_____0F9C
/ K7 `) m7 w$ o; V" c& ni_____00FA9 ^' Z; ^9 V- f( p) [' ~" u( ^
j_____5A50
! s  Y$ e' i; ~/ |( Wk_____2850
' t: q5 j  |! _4 D, Pl_____3E7B! \- Z8 b9 Q& Z% V
m_____71C5' i: Q( F9 h# Y: i
n_____1FC88 A6 ~5 `0 }0 [, r& y8 j9 q! w$ Y
o_____74C1
" ]& r1 N$ H4 E1 V* Ip_____5FB8
2 P8 t4 q% X; b; U' H2 Dq_____6085# r7 E$ A, K/ s% @
r_____3AC4
# E' Q9 U3 y8 x4 {6 w6 Ys_____2F50
8 f1 B+ i: ^) T3 n. @8 Jt_____36F89 h) C$ f; E+ ?, X/ s! ]% ~
u_____7010/ ~% V) y( V$ t5 A' w
v_____0B42
: D' S  Z' ~( {# A/ L9 m1 M! Kw_____1C7A- n* v3 N- b5 j$ ]% Z+ Q
x_____16F8
) N0 Y) m; }# ^; Y" Iy_____2EE7
8 G- p5 S1 x% x; [9 Yz_____5CF3
# G% N$ D6 `  F# }" K!_____6233  g/ g5 `; E- ~$ n, e
@_____3A45& L* m2 Y2 }3 \/ k. @3 y7 s( _( D
#_____2291
, a* h0 S' Y6 J- }$_____5D5C- E5 z% m  F. m+ @! `8 G4 H, s
%_____09B9
1 n& l4 z' P6 X5 w: E# ~4 W& F^_____43EA, e9 Z) `( g7 n$ H. b  F+ H" O
&_____62B9! p$ }6 s" }# u% G2 C9 t+ [
*_____6301
: E- I2 w4 s5 ?6 W- F# X* u(_____46594 ?& i- g: M# T/ D% w& j, @
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表