返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
5 B7 B# o. Y) t5 g/ i8 ]6 t原始出处:http://www.3ast.com.cm3 u# U/ G6 F& t
: s1 `' P6 s) T2 \
看不懂的直接绕过8 p8 F. D5 H, R1 [% x5 t
加密前为:hwy123456
. m% |5 t$ O! l8 w! k. b! c加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E6 Y7 ]0 b: ~7 b/ B% d# t" {

7 T, r, M. w7 ]2 h5 t9 w1 s$ X============================================, X0 X& _* M) w( ^! _7 W: N: L
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ C& R0 Y3 i: {$ z: }) A0 S/ z也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
7 A3 Z  K7 M! y以下是RSA算法文件2 j, Z" R" ^7 u, Z9 ?

7 a3 ]/ N7 ]2 E文件名RSA.ASP
: t: y1 N) f# s7 C===============================================
4 U9 Y* @8 U! e<% 9 }" t3 S6 q, ~! W( J6 v
Class clsRSA
! q" r+ r. R8 J2 S0 B- c+ WPublic PrivateKey , Q* K9 Z! X7 d! x( u$ ?
Public PublicKey . ?; f" M0 b6 P1 C
Public Modulus * k4 y; ?. \1 `# r' {( u
Public Function Crypt(pLngMessage, pLngKey)
- m: ~1 d; @7 z/ POn Error Resume Next 4 k* P  d' v8 }7 U! B
Dim lLngMod * K% `6 T" s' p, l3 B9 }
Dim lLngResult 9 r  ^9 T  Y0 H" v$ L  e7 r
Dim lLngIndex   x, @0 D7 Y$ P0 N  E
If pLngKey Mod 2 = 0 Then
7 [1 T- E$ O( f9 nlLngResult = 1
  c: ^- S- @7 Y: J  O- _For lLngIndex = 1 To pLngKey / 2 % `: v' _. i  {2 i
lLngMod = (pLngMessage ^ 2) Mod Modulus
% H7 q! m1 w2 {" Q/ w' Mod may error on key generation
( P: Y9 B- W2 p' ]3 q4 ClLngResult = (lLngMod * lLngResult) Mod Modulus
* b- _4 \8 X; QIf Err Then Exit Function
2 }5 }6 c2 B1 ^5 ]& zNext
& v( h' j0 Z' o& b% y; t6 T' }Else . `" b" J* p, J, B! f. W, U
lLngResult = pLngMessage
5 X$ L' r$ Q) K2 C0 ~& vFor lLngIndex = 1 To pLngKey / 2
3 |+ c9 u1 ~8 G( HlLngMod = (pLngMessage ^ 2) Mod Modulus " J9 q8 G2 P/ P& s* S& ]& ]
On Error Resume Next
- Z: B/ V% q$ A( ^" W8 L8 L+ H' Mod may error on key generation
$ @8 H; A2 H- a" Q. @lLngResult = (lLngMod * lLngResult) Mod Modulus 2 l' L( K2 T9 f( L2 ]3 X2 d, s- K
If Err Then Exit Function
/ H: j- u3 I! h  jNext
' n6 _( m" Z' Q) QEnd If
, z  U6 L) ]8 {" S3 J& yCrypt = lLngResult
" V" M: A( ?( @- dEnd Function
% F: U/ _- z1 \
0 y7 T$ [/ K* Y0 t: A+ YPublic Function Encode(ByVal pStrMessage)
5 ?6 Y( K6 P/ z1 bDim lLngIndex 1 H. G. w; H. t6 f# c6 p
Dim lLngMaxIndex 6 |6 W, p  f7 L5 _2 W3 V$ h
Dim lBytAscii * [& p8 o0 ?& ?( u+ r5 J
Dim lLngEncrypted 2 ]' `/ S( w" E
lLngMaxIndex = Len(pStrMessage)
" J% X% k" y6 x# \3 g3 sIf lLngMaxIndex = 0 Then Exit Function
; t0 |+ M$ J- W  v. YFor lLngIndex = 1 To lLngMaxIndex ! i; ^) n( {; u% Y$ y
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ) R2 ~8 }4 z; g. z: x  N' D0 N
lLngEncrypted = Crypt(lBytAscii, PublicKey)
" H) Q. C3 R) S& D5 W# oEncode = Encode & NumberToHex(lLngEncrypted, 4)
  Q; ~- L4 B' S* |Next , i# B: ~3 y+ F3 I+ y5 I- u/ g! D
End Function
/ Z5 `7 [# y6 r/ c+ OPublic Function Decode(ByVal pStrMessage)
1 q0 |5 R% s. h9 f4 N& WDim lBytAscii 2 X% {- U9 T- w, U0 C1 [5 U: b; g# e
Dim lLngIndex
/ K1 m* F9 r# R4 y; ]( h* |+ gDim lLngMaxIndex
+ S) d0 Y# I* U2 X3 t7 z7 PDim lLngEncryptedData
+ |/ c, Y% v% L' r* `Decode = "" 5 h$ P' i+ f* b+ l' C. H( J
lLngMaxIndex = Len(pStrMessage)   z+ W& l* V6 x$ Q* W1 r
For lLngIndex = 1 To lLngMaxIndex Step 4 ! E4 U; ~8 |1 R: s. t; {
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 0 {/ n& \& l# {) s! A
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 2 E# d# O& v4 b
Decode = Decode & Chr(lBytAscii) 0 Y* p; K0 r* N( o( w
Next
0 c% \/ K0 A0 n; X9 MEnd Function   j) N9 i6 F" {- T3 K/ b. F! R9 F
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 f2 j; ^" A8 J9 Q$ j* dNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ! r" U# ]$ Q& I( t8 |  f/ ?8 g
End Function
1 y- Y" V% g# f: T- V/ B5 }& XPrivate Function HexToNumber(ByRef pStrHex) 9 Q0 `/ ]/ Q6 f0 o7 q' f5 h
HexToNumber = CLng("&h" & pStrHex)
5 M: e8 {7 u4 n, t+ gEnd Function / z, M; [( p" G: W; l
End Class * J& d% l' z, z1 x+ W) P- N& j6 B
function Encryptstr(Message) 8 b' y0 ]9 S6 \& e$ a9 M
Dim LngKeyE " s6 ?7 k5 B0 g' a. t" ^
Dim LngKeyD
. [; e/ X; X- x  L9 N, q) [Dim LngKeyN 2 K  P6 x$ \/ h# U" L5 _. n( |
Dim StrMessage 2 _: q7 A# I  T8 y/ r; F" A. T
Dim ObjRSA
" H0 @- n& p0 O! O7 g% X  N. N! e  RLngKeyE = "32823" ( d5 o  w& X. E6 Y2 V3 v
LngKeyD = "20643"
4 Y7 q3 I0 s% z+ [LngKeyN = "29893" 9 F" a- r+ [. b+ j' m
StrMessage = Message
: [' Q" v/ U' C4 ~1 }2 WSet ObjRSA = New clsRSA
. I, ]1 ?# {1 LObjRSA.PublicKey = LngKeyE
5 ~0 m# U+ O0 V. WObjRSA.Modulus = LngKeyN
5 R9 [! ^* B9 R: S) fEncryptstr = ObjRSA.Encode(StrMessage) 9 u" M, f+ d; p( l2 v3 p. v/ k
Set ObjRSA = Nothing - p! D" Z; D: A( @  r8 t
end function. K' d1 ^/ b& C
Function Decryptstr(Message) 8 ]" T% Q: P* J" C* s, n
Dim LngKeyE
2 y  ^& R1 w) y1 Y$ s- p# CDim LngKeyD 6 a# w2 Y% {8 c4 {4 j% c% D) O
Dim LngKeyN
7 j5 P6 u* o& n. J3 ]! E; RDim StrMessage
$ w2 R' f6 Y8 {6 J9 v/ aDim ObjRSA + P( l7 O) f. Z0 L
LngKeyE = "32823" 0 a: d2 K; s/ u* _: G
LngKeyD = "20643"
: Q; A2 a* w" I0 [LngKeyN = "29893"
( }; U1 B2 J% F/ d9 p- NStrMessage = Message   M) P" U( _2 o
Set ObjRSA = New clsRSA 9 }  L7 b; l6 O1 C
ObjRSA.PrivateKey =LngKeyD
; b  Z  t3 i* \7 F# M- V: tObjRSA.Modulus=LngKeyN , i, r6 i2 `7 A! b  s
decryptstr=ObjRSA.Decode(StrMessage)
  t! y; s' t. x& h3 xSet ObjRSA = Nothing
/ [7 Z8 R8 N4 M( P( K0 F* Eend function 3 k( D  n' l% z
%>
  Q' ]0 u0 f  m0 _! b' k" B===============================================3 E6 G  {7 w! x5 P
3 b; S/ R! D6 I6 v0 e" o, Z: x3 ~
还有一个用于测试这段代码的test.asp
) F3 U/ q2 w' K$ R& K# j7 N有兴趣的自己搭建个IIS测试下4 k! E! W- e! O+ c$ H
<!--#INCLUDE FILE="RSA.asp"-->
" h. I2 R  r5 {<%- x. f) \6 v) u+ c
function Encryptstr(Message)
; S4 s" R; x- B& v( \! H8 xDim LngKeyE
( d4 a1 G& E. U' ]( L* ^! J; vDim LngKeyD 1 ?# O1 S' K. g1 k5 B. s
Dim LngKeyN 4 U! ?. R* W( K" f4 l1 Y$ C3 [
Dim StrMessage
! D% a) V9 c: I* i: d% p% o9 qDim ObjRSA % B3 r- g# n" `1 K& R
LngKeyE = "32823"
6 W9 l; h% P+ m6 n; [LngKeyD = "20643"   X6 s9 f+ x8 R& z# H5 Z) X
LngKeyN = "29893"
7 \/ @4 {. `. t( SStrMessage = Message
( h2 V2 M; v! S+ ^0 u* O9 K# h$ eSet ObjRSA = New clsRSA
7 c* r( c- N) d: @1 y! MObjRSA.PublicKey = LngKeyE : Z) A9 T: \, [9 Y/ d
ObjRSA.Modulus = LngKeyN
' u# c' I+ V; x9 g% lEncryptstr = ObjRSA.Encode(StrMessage)
7 g! Z6 p; y% R/ x5 g4 n% k% ASet ObjRSA = Nothing
8 x% D( i, a1 Q* b1 y5 b( F, t& Gend function 1 E/ a6 G2 L! o# K" Y% I- X2 ^1 h
function decryptstr(Message) & f8 t( c+ J/ X5 l+ N( S
Dim LngKeyE + N. u6 M: o0 n# f' @2 Y6 V6 ]& Q) e
Dim LngKeyD & _9 g6 e! d& ]* G1 U
Dim LngKeyN
& k: W3 y- U! e" B) |  [2 _7 \0 KDim StrMessage $ B6 n6 d3 W0 C  x9 j, V8 S& K
Dim ObjRSA * J3 q/ y& \: Z4 u
LngKeyE = "32823" $ U) t! o  P1 U- w
LngKeyD = "20643"
  E! _% c- C( hLngKeyN = "29893" ' V: A: w4 g  |3 Z" q: c
StrMessage = Message * U$ K+ R' V( \5 m2 R
Set ObjRSA = New clsRSA
" \  y' B% z( g# @9 A" H6 L2 M% tObjRSA.PrivateKey =LngKeyD
: `- y! M% C; e. V* `ObjRSA.Modulus=LngKeyN
- U$ g, @- d2 _* vdecryptstr=ObjRSA.Decode(StrMessage)
8 o' n1 ?5 E6 |/ w; K: sSet ObjRSA = Nothing
2 z/ A' p) ]7 C, zend function
$ z" d( G! G# w. v0 Xdim last,first 1 T4 t, S& b# W8 t
first="!@#$%^&*()" : T4 G% J5 x! B" `
Response.Write "加密前为:"&first ! V) p! p) f  Z( u" O" @" X1 x
last=Encryptstr(first)
$ c( S7 q1 J, QResponse.Write "加密后为"&last 7 E2 ?( r- p7 f. V) H( v
Response.Write "解密后为" &decryptstr(last) * k% V$ ^9 L2 k" c
%> ==============================================
$ H% T% J: l( q2 S. M剩下的就是字符的对照表了
% ?% h' v) N$ V# V9 e2 F3 t- M; @9 e===================字符集================
4 h* w7 ?9 y# D1_____6EBB
- p& n% @% |$ D2_____5C1F
1 E, r2 ~1 X* j3_____4D754 G$ R' D- z/ X3 A- x2 J: ]! W. x( s
4_____26CC- z5 i8 B1 O' W* o/ I4 a) d
5_____4F88# x# L" ]( E) R% K! P; W
6_____3F4E  Q( Q9 p& a/ R: |1 q) H
7_____0A9D
: Q! J! n7 W% J# g8_____1A1C+ P  Z) L! E- m! z' Q
9_____6D203 h6 H6 q/ ]7 `1 K( ]  x
0_____1089
$ m7 A9 y/ V4 x/ V/ v1 ~/ A, {a_____0F3E
" `" x3 R. k. ~b_____3159! K8 F: J! Z# d! z# ?! ?6 e" x
c_____3517
6 O- v0 F6 |; ~: _d_____419C9 |# r) [2 L6 Z8 P3 f6 n
e_____615C+ ?# D3 v  i0 \2 m" U) O6 Q+ t/ t: X
f_____556F
& L' W% t+ K2 }% Z8 G7 w: M9 ?2 dg_____2B7F
' o, Z! Q$ \9 M! a! v! m& I) e, t! oh_____0F9C; K( u) I( W  e6 w  q& K8 O
i_____00FA7 I: m( p# P3 y4 y! u( W/ z( n7 W
j_____5A50
' z9 u( {  u+ z5 |  ]k_____2850: S' Q% P- c9 h. I- ~0 ~: }' @
l_____3E7B
- g- O* n# Q: P* n3 v; y' H6 nm_____71C55 z8 G9 Q' z5 o! ^- w5 p
n_____1FC84 Z3 I* _0 q' t2 q0 G+ q
o_____74C1
7 [& E; O2 W. ^( M6 f6 S0 u7 f4 Op_____5FB8
5 @& P! ~5 O" P4 aq_____6085: T5 n- |% U4 @7 u' M/ ^1 e& F
r_____3AC4
, G5 c3 F: r" k6 Y. k8 t! Y2 @$ ps_____2F50
7 O: \  Z! i9 L  w5 et_____36F85 I& j2 b" ?; V, A$ t1 G0 N0 Q2 _( p
u_____7010; [4 [/ f* `- `+ h, l* n( @& D
v_____0B42
% l3 K& \& S; o1 T, m& Y2 A, J4 cw_____1C7A% b+ m! x3 n* d, ?  j
x_____16F8
& J* b6 ]9 Z  }" t: b1 l& Zy_____2EE7# q: S7 m. }4 u% f5 |7 Z
z_____5CF3; x8 p3 p5 ]: s" F
!_____6233
) i5 s9 c0 ]' F@_____3A45( f" U! S/ {, B* p, j
#_____2291
$ n" i  f% X& O3 [2 k6 d$_____5D5C% M& }( R+ H% j# U+ z$ t7 u
%_____09B9
3 f2 ]4 s- i: d- M* N^_____43EA; j6 p  A; n' ~+ J
&_____62B9
: w, v! }8 Z/ Q1 t. |5 ?4 p; l*_____6301
4 J  w$ l, [  }/ l8 v; F# y(_____4659' S  Q2 K! I8 c7 t4 o
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表