返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* U! _) r: H0 c- S/ a+ W原始出处:http://www.3ast.com.cm7 C, ?; ~. H& d: u

! f# |' Q1 w6 w看不懂的直接绕过
; T) @. ?6 A* e* M6 I, _加密前为:hwy123456
) F+ W$ A6 u8 Y5 O3 j8 C加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
7 s. X# D7 n* v
" n2 E0 {4 J. r7 j7 q7 G============================================6 v- n. a' T$ M1 D
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
$ v: \1 a8 h$ p也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法3 p" h% u7 t; R- t1 I
以下是RSA算法文件
$ S7 j/ b' J% V# c7 o  n! @- h* Q/ B0 B4 [$ I/ a5 ]
文件名RSA.ASP9 R4 V2 x5 V9 B  @
===============================================
/ M! n3 ^; |2 i% c1 n, g: P<% 4 ^+ ~: {5 C' c6 D
Class clsRSA
( [, E& D; ~: ^" {: n. f  nPublic PrivateKey ) I9 S9 `  Q2 }+ Q# r* }
Public PublicKey
! P3 [) x! D& H# rPublic Modulus 1 [4 N* _# a1 ^9 k
Public Function Crypt(pLngMessage, pLngKey) ! r1 p  Q7 |9 N! T( g: i; k
On Error Resume Next - `, ]! ]- k" e" h& ~
Dim lLngMod / B# V+ v# L3 X9 O: {! y7 D
Dim lLngResult & j+ H* R. n  L2 ?
Dim lLngIndex
* b$ U8 l0 r2 i: z' l) MIf pLngKey Mod 2 = 0 Then
: K: A( s( q% v0 s, y. |lLngResult = 1 2 E3 a0 d3 L* G% a2 G# ~6 ^# T
For lLngIndex = 1 To pLngKey / 2
! d8 k, ^5 t% Q, b4 FlLngMod = (pLngMessage ^ 2) Mod Modulus
$ F9 `/ ^6 S  Y- |. E' Mod may error on key generation 2 S) j. H: E, a* g
lLngResult = (lLngMod * lLngResult) Mod Modulus
# X$ X6 Q" p; [3 ^3 c  z2 |If Err Then Exit Function
' ^$ V3 z7 p6 ANext
+ y7 g- a% ^. ?3 N' Y4 W/ Z3 e4 xElse : }' F( x" R% @& D) p* E/ V2 p
lLngResult = pLngMessage 0 _8 P$ a- e) U: Z
For lLngIndex = 1 To pLngKey / 2 ; H5 C/ E0 g: w0 c$ H. N2 |
lLngMod = (pLngMessage ^ 2) Mod Modulus + r3 q* C- o8 i% e5 D# o- D
On Error Resume Next
" V* ?3 @9 X5 u* X' Mod may error on key generation $ l/ J* R" D0 B) ]
lLngResult = (lLngMod * lLngResult) Mod Modulus $ G' y, f- e5 }! e9 n1 o
If Err Then Exit Function
( a8 d7 _) |7 O- @Next
1 G* V" b" \5 B6 f0 d# vEnd If ( @/ o. g. m2 F1 Y5 Q5 g* O
Crypt = lLngResult
" _# W  C- ]$ b+ d; H& SEnd Function
: l, e/ R* N# q* i7 _8 J, T; L  B: L
Public Function Encode(ByVal pStrMessage) ; B! j9 g8 y" P- J* m1 D
Dim lLngIndex ; O) i& x5 k1 F4 q* W! p
Dim lLngMaxIndex
8 l: p- O/ w( r7 \+ K& ~9 o  \Dim lBytAscii
1 o; f- s, Y" N( z0 z. ~7 g% ^Dim lLngEncrypted * f" F& W# O5 e" k
lLngMaxIndex = Len(pStrMessage)
" m* j0 ~( `: |& I" ?9 QIf lLngMaxIndex = 0 Then Exit Function ) u7 [7 z6 }, o2 l: }# K
For lLngIndex = 1 To lLngMaxIndex / \2 d0 [+ E' E# W+ c$ j
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) * j' E& Y/ O# \- {" _- w
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 f) C  X1 L; @% K+ N2 z6 o
Encode = Encode & NumberToHex(lLngEncrypted, 4)
- c* U+ w0 q% c$ E4 d4 d' wNext
$ z9 A# {5 `  y& x* i9 x% @End Function + M0 c7 [: c/ I6 o
Public Function Decode(ByVal pStrMessage) - Z7 A  W# p5 O4 |
Dim lBytAscii
* b* h6 y; @& iDim lLngIndex . S2 H2 R2 I; \  e
Dim lLngMaxIndex
, O: E& q' E  c* E2 F; oDim lLngEncryptedData 8 w+ D3 P/ f, @( J
Decode = "" 7 x2 R6 l: q: m) l
lLngMaxIndex = Len(pStrMessage)
5 A# C  i* k1 {  @For lLngIndex = 1 To lLngMaxIndex Step 4 % @& D, j( n1 I7 }
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
: a* k1 Y( R! D( K: [: vlBytAscii = Crypt(lLngEncryptedData, PrivateKey) 2 H8 ~" c. l# P0 {
Decode = Decode & Chr(lBytAscii) ( ~3 Q% A4 m% n2 p
Next
9 K9 }( m- `+ cEnd Function
% T  ]  n2 C0 H; J/ v  aPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 3 |* A7 f& s8 ]9 i/ R# Q
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 8 C# F- {& @4 r8 `/ W
End Function % K  l# \1 z, d3 k
Private Function HexToNumber(ByRef pStrHex) " u  O$ N' O3 i, M
HexToNumber = CLng("&h" & pStrHex)
/ T; P1 c) j2 l6 ~, e. yEnd Function
+ V- o& ?1 D6 A* q8 g6 m) o& G- w  a5 j, sEnd Class : n6 q; N; j1 f, Y
function Encryptstr(Message) 3 o& a  Z6 S  J5 L+ ~; Z! b7 z
Dim LngKeyE
7 B1 Q4 Y+ ^* ]; WDim LngKeyD $ C+ X7 [$ H- a/ U  s& z0 [+ e
Dim LngKeyN $ E: d5 E2 d% ]* o* y
Dim StrMessage 1 R2 U( |* X- R% [! V
Dim ObjRSA   O4 V! S* q  m2 S  O. S7 b- J
LngKeyE = "32823"
% W4 r( L  T2 ~7 H- [& n6 e; Z& }LngKeyD = "20643"
4 f8 \% b, v; [LngKeyN = "29893" * @: V. m; |9 G8 o* B, @# ~
StrMessage = Message
  h- z' L5 q  i' g8 b' P0 Z; o& tSet ObjRSA = New clsRSA
* d+ a) U( E8 {8 L4 `ObjRSA.PublicKey = LngKeyE
) |9 a* x7 _* P# G  L( AObjRSA.Modulus = LngKeyN
5 P1 k; t" ~8 l7 |3 f! @& QEncryptstr = ObjRSA.Encode(StrMessage)
6 ~% e6 R2 l9 }6 S' ~- j( C& H+ @Set ObjRSA = Nothing
/ _/ U0 ~/ G& F' |" r! rend function: c  t- {$ @' y( W9 Q' Z
Function Decryptstr(Message)
* e: N: }3 M; i0 Q/ y7 l; L2 mDim LngKeyE * M: i6 U  Z$ _/ N
Dim LngKeyD 0 B/ [8 ]% O1 v9 S
Dim LngKeyN
; a$ r* r. R5 ~( xDim StrMessage 1 G; u/ A  ^; ^' z5 \
Dim ObjRSA
! C% B$ `! P8 A& HLngKeyE = "32823" , L5 ?: c' N  e
LngKeyD = "20643" ( z0 T9 Z  |8 K0 l6 P6 s4 q6 D
LngKeyN = "29893"
- X1 n7 i0 F0 p5 x/ j* _StrMessage = Message
$ `1 U% }6 G" s$ g6 `/ p8 b4 P7 ISet ObjRSA = New clsRSA 8 u! g5 \, p, g( U
ObjRSA.PrivateKey =LngKeyD ' a+ [# b$ C" e# g9 I" p
ObjRSA.Modulus=LngKeyN
2 j% w& Y9 x9 V6 _# K4 |+ ?decryptstr=ObjRSA.Decode(StrMessage)
  c; @# A( U. r3 U" ^/ L( PSet ObjRSA = Nothing
5 k+ k, i9 C+ B# [end function 4 I  e, g6 S# {" R3 O8 i9 {, |
%>
3 r8 I% I; s' l* G, Q6 ?8 C/ P===============================================
3 s) Q) _* G0 ~# O' ]0 S7 ^* b4 t" p
还有一个用于测试这段代码的test.asp
; e9 h8 o0 u$ n( Q有兴趣的自己搭建个IIS测试下% g) j/ ~8 }5 E8 A+ u
<!--#INCLUDE FILE="RSA.asp"-->
/ L; }$ k1 o, y3 _<%% a# O# a. I/ e( @
function Encryptstr(Message) : b' i! J$ n% e
Dim LngKeyE
3 T9 B1 K. S4 y. r. ]5 M( Y. `Dim LngKeyD
/ `! B/ U6 v! U& A) ZDim LngKeyN   C7 B0 `: e9 g0 K9 G9 M- m
Dim StrMessage
( s" M! K1 l" ]Dim ObjRSA ( I  b3 q1 W. [* Y- k; a
LngKeyE = "32823" - L( |7 I8 e+ \8 T) ~
LngKeyD = "20643"
5 I! e0 W7 _/ `( L7 f* V! S* ILngKeyN = "29893"
; D: t0 {6 S+ r  x7 Q" M0 V5 bStrMessage = Message , T7 Z5 X( R" v- \8 B8 I8 `
Set ObjRSA = New clsRSA 0 h6 @) x, Y' H5 N) p
ObjRSA.PublicKey = LngKeyE
% y8 q0 K3 }% r7 ^, b" M5 a! DObjRSA.Modulus = LngKeyN
9 E/ y$ o7 T- [/ KEncryptstr = ObjRSA.Encode(StrMessage) : H1 ~; {5 p0 g7 I% U6 Q8 `
Set ObjRSA = Nothing
' R7 g9 J6 N9 V) l# q- }, Z' P$ O  Rend function
, h, E/ h' d+ Y* P3 s3 ~function decryptstr(Message) ' K* B) B  [% G
Dim LngKeyE
! F+ x0 Y4 e0 w) p! rDim LngKeyD
% ?5 G$ e0 n) K+ K! {4 F8 PDim LngKeyN , r9 W3 h: t- g, H
Dim StrMessage
) J  A% b6 q: y: t4 \% {, ?2 N6 sDim ObjRSA 2 V5 p8 }- M. J/ p+ a% Q
LngKeyE = "32823" ) _3 l3 k# @" C7 I) ~
LngKeyD = "20643"
8 ?9 x: e; s6 U! F4 qLngKeyN = "29893"
, I5 Q9 R3 P" }! H9 k6 kStrMessage = Message 1 j& |" x( e# ~# O$ {+ k
Set ObjRSA = New clsRSA
0 d  R8 W) B. Z4 p' [ObjRSA.PrivateKey =LngKeyD 5 @% M5 g+ e( |
ObjRSA.Modulus=LngKeyN $ z/ O$ o. ]! w! t" M3 |
decryptstr=ObjRSA.Decode(StrMessage) . o* W: j4 e2 ~- F# M5 @- W
Set ObjRSA = Nothing & U/ {* O" D# J  |
end function
& F. V- }/ X5 m* I3 L; U8 K0 ~8 Hdim last,first * O% \2 f0 Z+ q
first="!@#$%^&*()"
0 Y# a" }4 W. X8 B  ^Response.Write "加密前为:"&first
# Y8 {. G1 Z% Y4 x9 F/ ]  b' tlast=Encryptstr(first) ! y- U& T8 t% I  K4 n
Response.Write "加密后为"&last + u* J& z4 y9 r
Response.Write "解密后为" &decryptstr(last)
+ @, L% T; w) @& Z+ h( h%> ==============================================
$ J. D! i9 q) L8 t, k剩下的就是字符的对照表了
" C" j$ t& U" }0 ?( V===================字符集================
& y( V# ~6 ^" {" y" P$ e$ W( x! u1_____6EBB
% o3 E+ W5 Y2 T2_____5C1F
- l7 K5 L9 W7 {8 z+ g3_____4D75
! N% M! P+ q) e0 x+ U) P4_____26CC- x% H4 a! }9 m0 O) n
5_____4F88
' T" c4 i  ~2 X2 e3 F9 ~6_____3F4E
! e% Y: E: B! p/ g# W3 i7_____0A9D
  ?  {& j! O: `; |/ ~& E/ c8_____1A1C
4 J: i3 |0 `7 G0 r: T! Z: L9_____6D20
2 N2 U. A& h' m  N* |! {7 p; v( o0_____1089
0 p  |7 x* ]7 m$ F$ d. ?) k, ]. |a_____0F3E0 t, G6 y4 A$ ], t" _4 ^
b_____3159
' C  V" E9 I+ {" @c_____3517
/ ?) |" Q$ z1 o! m- ud_____419C9 Z7 f- k% C: V% S5 i( \% g) [
e_____615C
- w- x! m. z% x  o% }f_____556F
5 X/ {  n) |5 Zg_____2B7F( m  s4 w/ E2 _8 z+ V4 N
h_____0F9C& L! z6 a+ Q9 D3 x
i_____00FA8 `* D& s% H1 F' {7 M
j_____5A50
1 c# ~7 A# a; u2 m0 i2 rk_____2850
0 V3 C9 C1 C) F7 f4 [# ml_____3E7B
, `/ \- y0 z: `4 L( R. R/ tm_____71C5! |+ q- O  }! G/ G% v
n_____1FC8: f; w/ A0 D3 V. E( O* e! L
o_____74C16 Y  `0 ^1 G4 z# N+ u
p_____5FB8/ s# y! Q" b5 y3 Y
q_____6085
* B" P! A" p# t$ x* B7 R  E7 `, ur_____3AC4
' G, A, V5 W1 V! ?: S  Zs_____2F50: c  V( n+ s! Y+ V! y* z- S
t_____36F8) {7 ]4 G) Q' g% J# e5 ?2 |8 D
u_____7010
3 P; M- k4 Q3 i9 V1 _5 X3 e* Zv_____0B425 B+ ]$ I5 M+ h# i1 M
w_____1C7A- B" K; _( n$ O% K& D" S
x_____16F8& `- {7 n" B' I
y_____2EE70 C+ O) [- r+ r8 I2 y- F
z_____5CF3
6 \/ _8 l$ Y5 q) z0 I0 ^! T!_____6233
! k0 ^9 f& a  q* T/ @! E* E6 B@_____3A45
, e0 u3 @: C4 J1 L" R$ C8 W8 c#_____2291
( ?2 r+ h! V+ Q) P, @. ^$_____5D5C: o: J/ l; x- v& d( m
%_____09B93 ~$ T0 T& h5 d" J
^_____43EA
3 J# f" s! @% ?% b; v&_____62B9
0 n# W- ]- c! V*_____6301" [  N+ I5 D+ s$ l& h8 `! o/ m2 g
(_____4659
- g4 }  A: ~( L4 q2 c1 P6 F; f)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表