返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm/ m# ]9 r& b; Z9 v$ H# c: @+ p) x
原始出处:http://www.3ast.com.cm
) R9 v0 m0 f# w% S4 Y; a) w8 i* O' Y5 ?% k) s1 o9 a9 U
看不懂的直接绕过
9 Y/ Y* b  T5 H* I1 e0 G加密前为:hwy123456
# a8 {) l3 o; I3 E# C7 J加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, a) ?6 H; E9 d& ~9 B9 k& ^
( M! H! @* j- f9 m============================================( R- T' y" j; o% j+ }
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
& n5 e  Y- q+ ~# b( x也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法1 A4 y4 k( }/ U% v- w  W- N
以下是RSA算法文件
, w: J% ?/ ]% s% V+ H; M4 O' g/ h  U$ w; L. M& l! ~
文件名RSA.ASP
, Z: ~' L, A+ H* ^) I, j, [===============================================
( C# g0 X2 ]2 `9 G3 |& R2 {0 a<%
7 C( j/ k- E6 \7 r. gClass clsRSA 0 k8 i# [0 _" ?
Public PrivateKey
) g  {3 D6 r* j# ^3 p. HPublic PublicKey
9 T  E  {2 r3 ^( ]Public Modulus 8 S! }# E  k1 [4 e5 C0 X
Public Function Crypt(pLngMessage, pLngKey)
! q1 |6 a' }- ~On Error Resume Next
) r2 r, v2 \  l# z# Z7 T  ~Dim lLngMod / K# o, Q3 P0 I1 e/ P- O. s) u
Dim lLngResult
0 T  ~9 E8 h! G7 V( n, IDim lLngIndex
) `; O' C8 o8 k( u  J$ T6 qIf pLngKey Mod 2 = 0 Then
, y8 O# p3 T0 B5 a" y4 H% }: ?+ XlLngResult = 1 & C+ }  b3 z8 O3 r6 T
For lLngIndex = 1 To pLngKey / 2 . i& Q0 D0 \" e) I) ]4 V7 m
lLngMod = (pLngMessage ^ 2) Mod Modulus 9 q) n& I& o5 m) g8 L- u  Q
' Mod may error on key generation " Q% q8 Z! d2 y
lLngResult = (lLngMod * lLngResult) Mod Modulus
! S  u0 ^/ q5 }$ H! m0 f6 ZIf Err Then Exit Function . e- {! t' b# X1 n$ A' X
Next 6 Z4 S- r1 Q3 c$ u  y- ~) g
Else
7 f) Q9 z' v- ^8 ulLngResult = pLngMessage
8 @- l  j- ?6 L6 ~/ iFor lLngIndex = 1 To pLngKey / 2
" C( m8 u+ T/ G2 _! ilLngMod = (pLngMessage ^ 2) Mod Modulus ; D' U/ j. L! M+ i
On Error Resume Next ; C: X4 a; R, y  J2 w
' Mod may error on key generation ; Q& b& l- c5 S1 U& a: X
lLngResult = (lLngMod * lLngResult) Mod Modulus 1 {" k: W' W" J; M1 D% c5 w
If Err Then Exit Function
. D2 V( X7 P9 `9 P; o( FNext + }( o1 q$ _0 G9 e) p" [
End If
2 X  s% N7 P3 t9 \0 ICrypt = lLngResult - a0 p3 `' n) L' ]: u
End Function
5 y. m) q8 z+ U$ t/ n2 `6 J$ w5 v+ f8 k6 w6 e, g
Public Function Encode(ByVal pStrMessage) ' h# D: d2 S& J. v
Dim lLngIndex   K* [; \0 L: w
Dim lLngMaxIndex % b1 K! p7 I" m% D$ }5 v
Dim lBytAscii % E5 u: K' E+ S5 B" w
Dim lLngEncrypted 7 H- J9 a9 }, U: @3 [: @( ^, a) O" y6 C
lLngMaxIndex = Len(pStrMessage)
0 n9 P, V) n8 M5 x' c6 V' @6 J- f5 ]If lLngMaxIndex = 0 Then Exit Function " c0 y6 X% z  Y" e* i! x- W9 j7 s
For lLngIndex = 1 To lLngMaxIndex
: r- s/ \7 u( [! D8 l/ r+ R: x0 XlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ D: n* U) E" w/ @  k( ylLngEncrypted = Crypt(lBytAscii, PublicKey) 2 j! J& g, q0 y( ^
Encode = Encode & NumberToHex(lLngEncrypted, 4)
! V" z1 i5 X7 F& y) GNext ) @* {$ D7 D6 P( j4 L2 m: |
End Function
; S5 r/ g% p( ]1 C0 ?9 z' |+ q3 aPublic Function Decode(ByVal pStrMessage)
! W. x% o9 i- d1 e5 ?Dim lBytAscii
+ ^+ B  K$ D+ D  @" l* V. i' _" uDim lLngIndex
7 C) a) q2 r7 Y% @1 s- f8 x. C( V; gDim lLngMaxIndex
1 y* e" o) T5 c0 f- y& DDim lLngEncryptedData
0 w/ Q+ T: v& J- l* @8 P7 z; g2 XDecode = ""
. i$ N; I' X  N# G! r' DlLngMaxIndex = Len(pStrMessage) / l4 {' v" m, c* x/ K
For lLngIndex = 1 To lLngMaxIndex Step 4   r$ B4 i& W% @# D9 C* H- H( U9 U
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
; {: w% E6 a$ f$ l" |lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. U" t, M, M( k& CDecode = Decode & Chr(lBytAscii) - \7 |  \/ n  ]4 C
Next
. e3 h0 ]6 K# q; S& qEnd Function
/ x6 _, U" L+ w/ L* {Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 O( W- ]# L; P4 fNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ' k8 l# `: ^. i& w3 Y
End Function & T& y0 x5 n1 E- L" v$ X
Private Function HexToNumber(ByRef pStrHex)
8 F: O5 N. C6 D- }1 B# GHexToNumber = CLng("&h" & pStrHex)
# C2 K. c) x5 i) y" I% \8 g3 IEnd Function
* O! J. q0 o8 }+ T& DEnd Class 6 Z! H% Q* a& ^
function Encryptstr(Message) * Q: \3 v" W. t8 Y
Dim LngKeyE 5 i* }, \$ Z  U4 }  F6 `
Dim LngKeyD / k  T' h' z& B8 x- _7 `, }
Dim LngKeyN 9 c4 \2 s2 N" i. A
Dim StrMessage ' w8 k2 i+ Z- G: |
Dim ObjRSA
2 |$ @) p; \( A* `) r5 B$ u' V, ?LngKeyE = "32823"
0 I+ I( d* `9 C8 m; ^# pLngKeyD = "20643" : p# w4 {/ X' X5 K0 V: e
LngKeyN = "29893" ! }( p' x+ U, ]& Q; c. z+ U
StrMessage = Message " R% v0 ^- h; w
Set ObjRSA = New clsRSA - }% z/ p- Z  r( C
ObjRSA.PublicKey = LngKeyE & v; ^' x2 p7 _) ?& y. S
ObjRSA.Modulus = LngKeyN + X4 N) v' @4 k
Encryptstr = ObjRSA.Encode(StrMessage)
4 Y7 t4 y1 E: k, d1 bSet ObjRSA = Nothing
( S" S) D9 t; U. _& ~end function9 n, ]( g" }7 \! U+ c0 C
Function Decryptstr(Message)
, K, j2 w8 `: g3 F& @5 l1 TDim LngKeyE
4 T' R& Z1 K) A( L  NDim LngKeyD
( R3 r6 O. ^) \Dim LngKeyN
+ L6 H9 `& Z( w  K3 @Dim StrMessage
* A. o- Z3 f3 O, Q) EDim ObjRSA
( m- ~. g6 R5 [  I8 X/ fLngKeyE = "32823"
( Z; {" C% p0 Q+ tLngKeyD = "20643"
7 M1 E) N  y1 R7 A2 J2 l  h( A& z8 |# CLngKeyN = "29893"
6 {7 |( w, O# W6 f6 E& D+ UStrMessage = Message   o7 T0 ?1 Y' Z
Set ObjRSA = New clsRSA : B% |% G6 S2 m% d
ObjRSA.PrivateKey =LngKeyD ( y; N# A1 b! g
ObjRSA.Modulus=LngKeyN * ~" Y8 S1 t/ G5 H( G
decryptstr=ObjRSA.Decode(StrMessage)
$ w" o- ]. R4 |8 g& F" u$ KSet ObjRSA = Nothing & M* Z9 k; d, w' a; P) ]
end function - a+ w( F5 D/ X
%>/ Z( r/ _$ `- S! w$ S& _/ e
===============================================
3 E- V1 `1 x+ g7 \: P, c; i# u0 i& i) s  y9 v
还有一个用于测试这段代码的test.asp6 o+ J3 u" S" w7 G
有兴趣的自己搭建个IIS测试下- e  I4 a" F  O
<!--#INCLUDE FILE="RSA.asp"-->
# ]3 l; P. j1 }! z<%5 _  F1 ]! s+ U' L$ W- Q3 c2 m) }/ H3 R
function Encryptstr(Message) 8 M7 `$ I% M) g. t( ]; O( N: j/ `
Dim LngKeyE
' ?  G. K" G  B9 CDim LngKeyD
* P( a" Z; F& f% u! O% h. Z: r3 |Dim LngKeyN
( l; ~! V; P) rDim StrMessage
1 b5 Z. l, f' v4 z# z& D: rDim ObjRSA   {- y. ~& H/ }% j% |. e
LngKeyE = "32823" 9 r% N$ o) W# D4 A
LngKeyD = "20643" & h1 p; l( M' W
LngKeyN = "29893" ! R' `- I; f$ L' M+ u' L
StrMessage = Message 0 {- @1 ]+ c  a9 M- F+ K1 [2 z
Set ObjRSA = New clsRSA $ L$ y* g0 |* Z3 Q6 C. m7 W- y
ObjRSA.PublicKey = LngKeyE / \6 x9 Q: I0 ^% f7 c
ObjRSA.Modulus = LngKeyN
5 K, n4 ^' j3 _( r/ G5 d. SEncryptstr = ObjRSA.Encode(StrMessage)
# g7 d8 s5 r" P) HSet ObjRSA = Nothing
' x, L0 t9 i6 g0 b4 `$ }end function 4 x0 W- N0 q/ V* O9 x0 O0 u2 G
function decryptstr(Message)
- f. h  q% c# R: k8 WDim LngKeyE
" S0 ]2 B" V1 I5 l% O) ^+ X4 m2 c0 _: `Dim LngKeyD - {  G* q; l% Y/ x! |5 V
Dim LngKeyN
$ N3 ~! J% K& q! B9 `% G! V  cDim StrMessage 5 m. W* W  m) L
Dim ObjRSA 3 }: C4 [$ ^% Q/ `2 y
LngKeyE = "32823"
1 r* j- h5 j& d6 nLngKeyD = "20643"
- |# Y" p8 U; fLngKeyN = "29893"
! A1 [7 G& g  x- [StrMessage = Message
# U; A! e- I8 o4 PSet ObjRSA = New clsRSA ) {* K7 Q; D/ o( a5 w* x) F" t+ i7 y# d
ObjRSA.PrivateKey =LngKeyD
9 ]5 E- G+ {' F, D1 a  b( T) F  bObjRSA.Modulus=LngKeyN 3 B' j7 ?- m: m# ~" p2 |% o# i; w. M
decryptstr=ObjRSA.Decode(StrMessage)
* G* ^. C* y6 ^) y5 mSet ObjRSA = Nothing
2 |# ?5 z. A7 ^# [, Z; dend function " d& ^2 a/ w* @# t: O! P; n# h
dim last,first
8 I" T. ?& r0 q6 S8 C, Zfirst="!@#$%^&*()" / H* l1 m& j8 H, Q" o. ]2 F+ }/ p2 k: Z
Response.Write "加密前为:"&first 6 d) |- |1 r2 L- w
last=Encryptstr(first)
9 _! I6 E3 Y0 J4 I/ e, O/ sResponse.Write "加密后为"&last
: N, K9 ?, {, _1 J% I  S: LResponse.Write "解密后为" &decryptstr(last)
5 k0 o  b' V& n2 [+ F; k% w%> ==============================================
: W/ n" f) t' T剩下的就是字符的对照表了# ~- A! ~* Z( b
===================字符集================
7 a* }9 r0 K# ?5 F9 }) O, W1_____6EBB
/ |  R+ B& A" v2_____5C1F
9 z, F7 u6 M/ n0 R2 z7 T4 X, D3_____4D75
* m  W9 B) S2 T/ ^4_____26CC
0 O! Q4 ^! W( J1 h5_____4F88
4 e  Q, y$ n5 C/ r6_____3F4E: }0 j! x6 ~' `) o
7_____0A9D
0 [; F7 O/ s* S  F8_____1A1C, i- p! N$ ~+ P
9_____6D20. t/ h% T- h6 d, L+ \0 I
0_____1089, j/ Y2 Q! [) W9 U6 [- o9 F9 @
a_____0F3E
6 |" U5 O6 C1 z  X" Q+ \' P. U6 Mb_____3159
& n3 l9 J  ~( d1 R7 ?0 `c_____35177 v! Q% _* @1 o; X  _# s0 k
d_____419C$ k' c8 t7 h! f
e_____615C
7 s7 l6 t+ {$ Q9 cf_____556F
$ @  D! _" w5 Vg_____2B7F
0 J3 O3 D: z8 [1 kh_____0F9C
5 Z$ G, G* r0 @2 ]  oi_____00FA8 J4 w8 c" T  K7 W, }
j_____5A50
4 l2 o& v6 {# uk_____2850  @( C/ H8 Y( a/ e+ k
l_____3E7B8 w& @' [. r" \2 j/ n0 C% E
m_____71C53 J  I7 h% u1 r; D
n_____1FC8
* a" r. F; Q4 s, q+ {) To_____74C1
5 F. @* [* I; A- N# Lp_____5FB8
3 A# f- m: g0 P: @q_____6085
& s( w2 V4 u9 l+ |1 K5 lr_____3AC4
  w& D6 @, p0 \  ys_____2F50# \6 j7 _. O" D/ U$ L# S
t_____36F8& M7 o7 B- |' v$ E. s
u_____7010, B& }6 p0 d* N
v_____0B422 r0 C$ v; Q$ Y( T9 E
w_____1C7A: s% q" H3 T" E& V
x_____16F8
' s, W% P/ r  F6 ly_____2EE7$ {4 V$ P. f+ \5 I1 v7 G9 ?
z_____5CF32 q* e" f4 q# o# s: j
!_____6233
: F* C  m3 n) ]1 l! z: E8 X@_____3A45
! i- V3 O9 p3 @9 q" U( n* L- g; z#_____2291
9 ?! f) E- |$ e/ }0 j5 S& D$_____5D5C
. [4 g9 H! h7 c7 f3 E7 D%_____09B9
  B* H, ^5 }1 w" E^_____43EA& n) Q+ E3 }2 W" }2 r# B
&_____62B97 [. ?* z$ b. S
*_____63012 b& [/ I( b5 u
(_____4659
  e; J# r; |/ s6 @  J2 [)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表