返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
& t1 w  A: w- D/ l. _& a: O; o原始出处:http://www.3ast.com.cm
# U0 @- \# x! }. ~2 a6 ?+ B1 [$ K  I5 o" }9 _
看不懂的直接绕过
+ `0 E3 m1 G  F  m) [% t加密前为:hwy123456
2 u& G5 J8 t" C# R4 E9 N加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E1 V2 u3 C* M$ b2 B7 ^( I% m  o
. A. ~. Z+ \5 n: M" z+ O5 p8 \0 c
============================================
  q! y$ Y0 Q! q0 k, ]: Q上面是当时自己校内的心情。现在已经解破出来了,分享给大家; l& N% B$ _4 ^. V  f
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: f/ ?/ h# Z! O9 N1 {; R% F* N以下是RSA算法文件
: m- R6 b+ W- S4 N3 f
; x. a* H% J' [" P" {$ U! W文件名RSA.ASP
3 t8 E, ^: Z& f, o===============================================1 d& ]- d# O' Y3 D, [! e
<%
% u3 p, N9 e8 c1 KClass clsRSA
' `5 W' M6 O6 K) J  E" N- TPublic PrivateKey
* \* P1 q2 h( w9 u( {9 G& JPublic PublicKey
! `1 Q4 j1 F  _0 b/ w: @' _' iPublic Modulus # Q/ B1 n8 _: f2 x5 t
Public Function Crypt(pLngMessage, pLngKey)
! @; Z: N2 B& I: \( eOn Error Resume Next 5 O9 c/ b3 c  ~: h: N- v/ L
Dim lLngMod
; j+ K6 l' P- Z9 }Dim lLngResult
- v; u0 k/ g$ Q1 U! \2 G! A2 QDim lLngIndex ( l, f2 r* L! C- Q5 a) W# Y7 {* U. ~
If pLngKey Mod 2 = 0 Then 4 H* {1 R- ?4 W: ]- r
lLngResult = 1 % n, R& M( D$ A* [: M2 x3 R
For lLngIndex = 1 To pLngKey / 2
! U' g1 m- e% h! F$ h0 h5 {$ XlLngMod = (pLngMessage ^ 2) Mod Modulus   c1 X1 m% v; v5 N
' Mod may error on key generation
; A1 H- T5 a* ylLngResult = (lLngMod * lLngResult) Mod Modulus
3 J9 J5 c: F5 L* Z5 o: `0 o' HIf Err Then Exit Function # Z2 E0 b' V6 L
Next 4 }& _7 J4 _( W
Else / ~( Z; Q) S8 D/ r- D2 d1 J$ w4 V
lLngResult = pLngMessage $ M1 @  K! c' {" Q" e* A1 c7 X  h9 `
For lLngIndex = 1 To pLngKey / 2 ) ?! h8 y! s+ a4 j$ w7 ^
lLngMod = (pLngMessage ^ 2) Mod Modulus
2 L/ \. I" Z- D* v( F) NOn Error Resume Next & ^+ x" x9 A$ u5 L4 q0 E
' Mod may error on key generation
+ h+ {3 a, Y; }7 ?4 ilLngResult = (lLngMod * lLngResult) Mod Modulus   n. o6 _* i3 r" W. n7 n. S
If Err Then Exit Function ( E" L! H4 k9 k6 y3 ^6 w
Next 1 \; u7 z& [3 v
End If % S0 Q- L) W1 J( S8 W* X
Crypt = lLngResult / c( e( [% x1 O$ Y6 V$ f' n3 w
End Function- _# ^9 d, U7 w8 D6 J' p

2 h# d1 V! ?$ o8 f( g3 P$ @( g! NPublic Function Encode(ByVal pStrMessage)
: M; s1 |9 q9 t+ {* E6 YDim lLngIndex * t( o7 I* n% _. Z6 c
Dim lLngMaxIndex ( V* T. _! w# v5 v3 O; t
Dim lBytAscii 9 i- n* w+ {9 V) e: n% ~
Dim lLngEncrypted 2 y2 f& i( B. V) q5 P
lLngMaxIndex = Len(pStrMessage) 9 X! Y2 V( t2 ~# h4 O- I2 n# i- n( I
If lLngMaxIndex = 0 Then Exit Function ! G: ?2 b* q1 {* j1 N" i
For lLngIndex = 1 To lLngMaxIndex 0 h5 U8 k( G6 j! q% I0 G. O# M
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
# R+ t" j, c& [# R7 k/ s) x9 ulLngEncrypted = Crypt(lBytAscii, PublicKey) 3 \( v& K* s7 V" p# v  x) R5 U
Encode = Encode & NumberToHex(lLngEncrypted, 4)
2 z; K. L) w( s% u( ]4 ?Next ' E' `" H, C2 C6 {
End Function
6 X3 x* c- ]  BPublic Function Decode(ByVal pStrMessage) ! m. J0 m5 ~. ^- s+ ?- Q9 Y+ s
Dim lBytAscii 0 F8 N! a" t" g+ c5 c# z5 T- v, X3 X
Dim lLngIndex 2 ^, L. ~0 ^8 o+ O$ `. X) ]+ ]/ E
Dim lLngMaxIndex
) @, J* ^7 A$ hDim lLngEncryptedData
, ^5 X& c* i5 t3 {9 ZDecode = ""
% C" O! c! o- ]* S, AlLngMaxIndex = Len(pStrMessage)
4 w! h$ h: o0 r, e0 f9 m8 ~For lLngIndex = 1 To lLngMaxIndex Step 4
! {! J3 u1 D6 O: hlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 1 h! @+ G( N# Q9 ^
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) ! y' E# e) ^$ \! q3 e
Decode = Decode & Chr(lBytAscii)
* c( v6 {9 w8 K, }- ONext
4 M) m$ f* z% JEnd Function % T3 F4 T' }0 Q( M% _  D
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
3 Z' k" W/ Y0 K0 dNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; w9 B, j1 B5 b$ \
End Function
# l4 [' r; P7 W5 ^$ Z9 RPrivate Function HexToNumber(ByRef pStrHex) # Z$ z' d% p% j$ u+ Q/ r
HexToNumber = CLng("&h" & pStrHex) - ~$ L% W- S- E- P+ e* G$ r) R
End Function # T) Y1 g5 H; N9 D& B0 P1 U, x7 S
End Class 5 _) I- \# S3 s
function Encryptstr(Message) ; x; B6 L/ J5 \# e( Y5 v  c: R$ _& t
Dim LngKeyE
2 O& f) F7 e4 u! Q1 IDim LngKeyD 2 v5 e4 V+ K5 i: @0 s
Dim LngKeyN
7 `1 M. A  U& o2 o+ l" PDim StrMessage
. ]1 V# {7 Y3 O7 t3 e; q2 x2 dDim ObjRSA
/ l! a7 V7 x& a& w' R: j* i5 gLngKeyE = "32823"
2 l! P& P" E. FLngKeyD = "20643"
7 C6 }- b# K& e; bLngKeyN = "29893"
- }+ l, q8 k0 [9 G/ j5 TStrMessage = Message ! O! j+ g6 l" }0 P
Set ObjRSA = New clsRSA   o) {% {8 C& K1 H- H5 P
ObjRSA.PublicKey = LngKeyE ' I- q" {/ ^" S) V  p( j
ObjRSA.Modulus = LngKeyN
8 r8 X$ ?' U- v# E$ u; EEncryptstr = ObjRSA.Encode(StrMessage) 2 d( h: p" M% k* [" d
Set ObjRSA = Nothing
) ?: w( `6 V9 Bend function
0 G  g5 _) v0 k6 G% H, z. QFunction Decryptstr(Message)
9 i" M- k" j3 d. Q3 J5 s, p% k8 tDim LngKeyE
$ E3 O" F: V3 G/ i6 C8 NDim LngKeyD 6 E0 k, m1 \7 q1 {( z. H
Dim LngKeyN ! a4 Y1 s# x, R; ^$ J3 {
Dim StrMessage
6 o$ x: U' C) E: K9 UDim ObjRSA
# o9 b. P* V5 B6 H4 z) _LngKeyE = "32823"   b. L; w5 y5 b" m
LngKeyD = "20643"   t: @1 {/ L4 \$ V0 ?& z  q% _
LngKeyN = "29893"
1 H5 t9 g* N; u# O4 Z% MStrMessage = Message ; I+ X: Z, p9 u) x) A9 U# E' Z- g2 f
Set ObjRSA = New clsRSA % L. k! s$ m$ C; c% a
ObjRSA.PrivateKey =LngKeyD
4 I4 z# G9 C/ e# d) i) eObjRSA.Modulus=LngKeyN & n/ e! p% U" V, D7 a" V1 d+ M/ t
decryptstr=ObjRSA.Decode(StrMessage)
) @& S: \! {* USet ObjRSA = Nothing & `  A# B2 s9 n$ Q: Q) K
end function 5 S1 Q& q( V/ v7 L6 s
%>
- r$ l- {, I8 o4 ^% {===============================================/ ]5 H+ N3 B0 S3 Y" x
: C( M7 @$ ]  d( O6 [) C5 O# ]; n% N
还有一个用于测试这段代码的test.asp
$ D6 U1 @0 O1 g( d& {3 J有兴趣的自己搭建个IIS测试下  j6 I+ x3 h# Q
<!--#INCLUDE FILE="RSA.asp"--> ( p( B9 }9 h- t* N2 U! m! U
<%* \" l' s5 }) R( f( @6 d) y- G4 N
function Encryptstr(Message)
$ h4 \  h6 l: h( {* sDim LngKeyE ! v  r0 p9 ]; X$ i7 o  \
Dim LngKeyD
. m% A* a% @, S" N3 @- x  ^Dim LngKeyN
; Y7 |/ E0 G/ I# \) B1 JDim StrMessage + t' _& \$ e. D
Dim ObjRSA - _2 M# g, z, s3 C5 |
LngKeyE = "32823"
! ]; D  i9 E$ n" g+ CLngKeyD = "20643" 4 C9 M: |/ i' ^4 _- j( L3 ?, G
LngKeyN = "29893"
( c1 E1 Z* h: \6 F6 o& HStrMessage = Message
/ y6 L# l$ Y2 [8 W1 T# r3 F' YSet ObjRSA = New clsRSA
, W4 P; t" m# {! Y' JObjRSA.PublicKey = LngKeyE 5 T* b5 j; z# U0 Y: P+ p
ObjRSA.Modulus = LngKeyN $ c" o9 @# P, T& W( f
Encryptstr = ObjRSA.Encode(StrMessage) ' F. C. ]9 V$ B7 B" l  [
Set ObjRSA = Nothing / P6 z( }% s  {4 N% W
end function
! C: M1 r! h9 N% k+ `5 Lfunction decryptstr(Message) ( r! o  r! s+ G) z; d7 m
Dim LngKeyE / L9 a; J* _: o3 y) R
Dim LngKeyD / g( i7 P3 R, D2 R' ^8 [5 K
Dim LngKeyN - A% W% a9 E* {  t! A. l
Dim StrMessage
3 N- {& K. l1 [" U- eDim ObjRSA : Z5 t$ U3 n, X3 `% _
LngKeyE = "32823" % D0 e) @& M9 n& Z4 V) K2 G
LngKeyD = "20643" " i, f3 |; s0 Q9 ?2 |
LngKeyN = "29893"
/ d  k1 }1 g6 {StrMessage = Message   o8 K' d( S  r) h- u) c
Set ObjRSA = New clsRSA ! c9 K+ a: |* Y7 N, z7 I( B7 C& [1 {
ObjRSA.PrivateKey =LngKeyD 2 D) m& D, O" H0 T( Z+ M
ObjRSA.Modulus=LngKeyN
; J9 K8 b7 J' f0 r) m, I! Y0 X0 rdecryptstr=ObjRSA.Decode(StrMessage)
0 E8 S- t! p6 I1 l: ^1 ~Set ObjRSA = Nothing
& k$ ~0 q$ ?+ P5 Eend function 4 Q3 |6 N! y6 E* w
dim last,first
" G/ K; ~" w; M* Q( _! Ifirst="!@#$%^&*()"
/ ^) ?" ^) q/ @; A* SResponse.Write "加密前为:"&first
  V/ |3 q# \5 ?% l. h" ^last=Encryptstr(first) " C: T; b$ ~) Z4 x
Response.Write "加密后为"&last
6 ]3 |+ O; b" p+ \6 ?( j6 }) x0 jResponse.Write "解密后为" &decryptstr(last)
/ x9 Z' U4 w; D- [2 f8 J# T%> ==============================================
" q2 l! W4 C( Z0 D剩下的就是字符的对照表了
. Z; W2 k1 x" o6 l1 ]3 B===================字符集================
. ?+ ]& q) i( V0 K5 ]& u1_____6EBB/ Z4 E; l6 s/ n+ }( |1 d
2_____5C1F
- g2 Y5 c& F/ h+ _: @3_____4D75
& |' H; A! D  E4 t' a4_____26CC* l; {8 P2 t2 m, M
5_____4F88
+ p1 ~$ x( t2 q- I9 H6_____3F4E  }, c) @0 K$ S, H; f
7_____0A9D
8 @2 G' L* N$ f' P7 p& w9 ^8_____1A1C
# W& \. B) K  H4 f, z# a9_____6D20+ D' E! A  ]( Q  ^9 [& T
0_____1089
0 _6 K& A+ K! {+ H; T/ x9 L! |a_____0F3E
$ b4 i& ?! u( O( ?' h0 lb_____31597 A" r) E' y( n: Z9 `
c_____3517) @. T9 i/ j* c
d_____419C
1 _( f( y9 U0 m/ D7 U" Ae_____615C3 {* f( X9 l, F
f_____556F
, [- }3 k* O  P+ h# Tg_____2B7F
( O: @! p# _5 Oh_____0F9C
; k" m& u) \. i; i" s1 m- Si_____00FA
6 p1 C- z3 x+ I. R: F5 {j_____5A503 t# X, R% I( L6 x% @0 Z8 R
k_____2850
) |" q* D2 H! H& j* o& Nl_____3E7B
& A; L  h! T$ e) V) W7 u5 am_____71C5* h( ^. i2 ]$ K+ Z6 U& I; |
n_____1FC8  [2 Y+ ^2 u. k, J5 N$ X# ~; [+ x
o_____74C1
" R/ D# o9 i! i0 ?7 P& X8 O* }! cp_____5FB8/ F3 @5 }9 l- B! N% z
q_____6085$ |- ^4 W; |; h1 O+ O
r_____3AC46 P# B5 b$ N: {* R" A. I, J% _
s_____2F50
$ D3 W; O' B  B7 yt_____36F8
$ b* l4 j" p' R, B9 Du_____7010! L3 C9 b! G! K, S# T
v_____0B426 O0 N. A+ L: g3 J8 T$ ^1 _
w_____1C7A
3 b9 [! K1 |' f  qx_____16F8! g8 `, K; g2 s! ~
y_____2EE7" f9 w/ D' ~% @6 l9 X3 j% h1 }
z_____5CF32 Q& K+ ^7 e* s
!_____6233- b1 v# N5 R) F4 {9 p
@_____3A45
( m/ P; n) S2 D2 ^#_____2291
$ F( V/ G" \2 {* `) a, k% Y" J$_____5D5C9 [2 Z2 ]3 }/ H1 X  O1 h$ b4 O, l
%_____09B96 T3 s) [" X1 \! f7 K
^_____43EA
$ B9 p# i- O; l/ @9 x* j&_____62B9
6 H8 b6 O: E5 t9 i*_____6301
" Y& o/ h" ^9 u# M(_____46595 h+ w3 b7 d  D
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表