返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
2 b6 u$ b! a0 }原始出处:http://www.3ast.com.cm
) V4 w0 R& P. E/ k
; L8 x+ o6 C8 g/ K* h5 O& [看不懂的直接绕过2 P/ g6 |  ?/ i$ T# G
加密前为:hwy123456% u/ _. P+ Q2 _
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
* k3 a7 W- O4 I5 J) v, X  Q8 b- ]! k
============================================
/ J* `# f' _' E2 U# ]上面是当时自己校内的心情。现在已经解破出来了,分享给大家" Z# Q% P8 p/ F) S6 J, f& G9 x, a
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法5 z9 \- w% [- |# w) A
以下是RSA算法文件
2 a* b" s$ Q1 V, k& C+ \2 V" \) r8 E  D, G! F4 E
文件名RSA.ASP9 g. I: Z" i1 ?9 h
===============================================
& _6 Y% r5 t! y  H3 D2 {* c<%
, t* Z8 C/ {; ]) Y5 {3 l+ `" E+ EClass clsRSA
3 h! X* b; b) [, m) y6 u% L) ePublic PrivateKey 7 p1 d" ]& e+ ?, y, w6 @
Public PublicKey 0 ~" Q& d5 u# h6 |
Public Modulus
" m2 l1 U8 z2 K3 [" {5 _Public Function Crypt(pLngMessage, pLngKey) & X6 Z+ z8 r6 x$ q; C1 f9 \* z
On Error Resume Next
2 g9 S7 W' _' q  x6 H+ `Dim lLngMod : ]8 a, Z' f0 y+ Z
Dim lLngResult & B0 U5 f7 \; B. U- [* O4 S: Z
Dim lLngIndex 9 |- T9 ^8 U9 X, l$ a, s
If pLngKey Mod 2 = 0 Then ( M6 B, R8 `- \$ V
lLngResult = 1
+ O+ H( l8 y1 ^5 F& pFor lLngIndex = 1 To pLngKey / 2 ( q' }7 l  c$ g+ B8 I) U
lLngMod = (pLngMessage ^ 2) Mod Modulus 4 [6 m2 z& U: `3 p4 K8 T4 G
' Mod may error on key generation
( C6 `2 c( ?( j, FlLngResult = (lLngMod * lLngResult) Mod Modulus
. _* D; E, I2 p% BIf Err Then Exit Function
, i6 C, V9 w4 h" [9 gNext ! R& l; T* l, d: @1 S
Else ; F9 ]& N. C  v: u6 ?8 [
lLngResult = pLngMessage $ c6 G3 l4 [6 ]$ f
For lLngIndex = 1 To pLngKey / 2 & D; }, a) q4 U2 T" l
lLngMod = (pLngMessage ^ 2) Mod Modulus ; ~. \$ n% K" b% T
On Error Resume Next
- g/ @0 m& u& Q, ~' {5 h- x' Mod may error on key generation
3 V! p3 V( f5 [. s, Z& QlLngResult = (lLngMod * lLngResult) Mod Modulus ! C4 {8 u; C* {3 l& S& G
If Err Then Exit Function
" i) w$ [8 @7 V8 vNext " b) b! O, j" f1 l# a9 {0 i5 w2 r
End If
8 a. b1 X0 @; T0 w2 T+ T# b& ?( gCrypt = lLngResult
) h) [! N8 U9 d0 |( ], OEnd Function
6 z  m: y. l! H3 e/ b& j8 l. P
9 O. i. X5 Q. I: FPublic Function Encode(ByVal pStrMessage)
! [( |, t, N6 o- x( u8 aDim lLngIndex , A& e& j! S; \3 r
Dim lLngMaxIndex % s% m: T  V# {$ F) t! \
Dim lBytAscii 4 g" V) p8 {% a( I$ s6 b' y
Dim lLngEncrypted
( h& Q/ u$ p, ]9 t2 B5 A: g* |' AlLngMaxIndex = Len(pStrMessage)
3 F, |/ ?" e: D8 d. }2 m, n" e% YIf lLngMaxIndex = 0 Then Exit Function ' N5 Y8 k) X9 m/ w8 p) K, p
For lLngIndex = 1 To lLngMaxIndex
% G: A. k. m/ Q9 u0 j6 UlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
/ [! K9 G% s/ i: Y  m) d  ~) ElLngEncrypted = Crypt(lBytAscii, PublicKey)
7 c7 ^1 B3 i& P3 R! z1 R0 V5 VEncode = Encode & NumberToHex(lLngEncrypted, 4)
9 F" S! x: ~, Y8 [' m5 M. xNext
" l/ v: s3 u4 u, F* m6 L: p) A% ]End Function
0 S* G. n7 W3 t' K& D& C% APublic Function Decode(ByVal pStrMessage)
2 H5 c) k4 A) R1 xDim lBytAscii
' i- |. A8 N' n6 N* O/ L1 [Dim lLngIndex 6 E6 g, ]2 o4 \4 F# P
Dim lLngMaxIndex
7 D; j* I3 ?+ j" v% yDim lLngEncryptedData 1 o. c& d+ C+ ?  @
Decode = ""
3 o& _: Q5 u# ^' H, y' OlLngMaxIndex = Len(pStrMessage)
& m: P5 W9 \. K+ U; GFor lLngIndex = 1 To lLngMaxIndex Step 4
9 J/ ]/ q: G+ x7 F3 O0 WlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" i6 n- a$ U/ Q- b7 qlBytAscii = Crypt(lLngEncryptedData, PrivateKey) % D2 t7 s9 L: K& V3 X7 J0 Y
Decode = Decode & Chr(lBytAscii) 4 `+ a3 b0 C, r
Next * V" A5 G# Z1 R3 m
End Function
; x, ]1 F/ R" S' C: ?. Z" K. t4 c7 yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
2 @. P. G; O+ E: o: @NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
3 l7 F# Z$ K) [/ s$ SEnd Function
" Q# Y# u6 L  O% O# vPrivate Function HexToNumber(ByRef pStrHex)
! ?3 N1 b: f2 N! pHexToNumber = CLng("&h" & pStrHex)
( s1 k) y! Q7 d4 L+ D  N+ ?, lEnd Function 7 i2 O1 C; [7 [: K6 a3 C* N
End Class
+ v$ D2 E* E8 U: s% g* Nfunction Encryptstr(Message)
5 e1 G4 u9 B2 t; J# Y  }Dim LngKeyE - ]/ j5 o4 U; M% y
Dim LngKeyD
5 n, A& j" i7 A: S5 ODim LngKeyN ; ^. _4 w8 z3 q# z8 x
Dim StrMessage
% C/ H* Y3 q7 b+ F0 K' WDim ObjRSA 1 D5 H: H! U5 t& m( ~" o2 w
LngKeyE = "32823"
/ x7 d! ^. ?. D. r5 S' R, O2 nLngKeyD = "20643"
0 p" P: h/ S9 [! LLngKeyN = "29893"
% s" V+ j6 ~- \6 Y3 y+ c. Z9 qStrMessage = Message
; Q  `5 B! E+ B( i. `& ?6 j$ A/ Q$ gSet ObjRSA = New clsRSA
: z+ f! _9 ~& w2 H0 {ObjRSA.PublicKey = LngKeyE 1 ~/ x5 ?& v" H+ B+ k! H
ObjRSA.Modulus = LngKeyN 3 j- B1 j8 ~/ Y0 O' H
Encryptstr = ObjRSA.Encode(StrMessage) + }+ `) w! K! J) `  ?
Set ObjRSA = Nothing
/ S) w3 Z) M7 h) D, j" g( ^end function8 b" |6 r/ \! }7 t
Function Decryptstr(Message) 8 F$ p3 E/ g1 I) ?% x: J7 U
Dim LngKeyE
/ z0 ~9 z$ r" iDim LngKeyD
, l& a( j- J  F0 y) BDim LngKeyN
" G9 i' M' ^  `. A/ \: |) E, Y3 w3 [Dim StrMessage + \) {$ Z) ?0 a$ \4 b8 D! e5 r2 [% b8 A
Dim ObjRSA % p: [1 B: P! E8 j
LngKeyE = "32823"
% l, l. Y. H, C( S4 }LngKeyD = "20643"
; T" s9 Q9 V" U+ a# |& {LngKeyN = "29893" 3 S0 r5 s( P2 o$ F+ @* \* _& R
StrMessage = Message
5 a; [* t- `0 O3 YSet ObjRSA = New clsRSA ' P5 B5 a7 q. U& K9 O
ObjRSA.PrivateKey =LngKeyD 8 b6 D" I, [0 X7 v
ObjRSA.Modulus=LngKeyN # [! N9 N2 D2 R0 `
decryptstr=ObjRSA.Decode(StrMessage)
9 r5 f) m" H) u$ _1 ASet ObjRSA = Nothing ! p; B/ Z1 o* `  z# r
end function
8 L4 L/ e, c8 I. \4 O%>
( j8 W* Z4 u$ K/ L* h===============================================/ P* F7 J  K1 [1 R* u

2 s9 W1 X/ W3 w5 P3 }, {# w# m还有一个用于测试这段代码的test.asp* i0 B% u& a8 E$ E% x# _* r, j! ~
有兴趣的自己搭建个IIS测试下/ M, r1 y2 y+ n6 g9 r
<!--#INCLUDE FILE="RSA.asp"--> 0 H4 a' ]! t, K7 ]  c% i
<%
% H; T) h# e' f4 ifunction Encryptstr(Message)
+ l& h; B- Z1 z, bDim LngKeyE
& U! I& K1 M4 O+ \' Y# [, _3 |Dim LngKeyD
8 m; U, Q  L  x% a& G1 y6 PDim LngKeyN
: |! k% i, S( ?) z2 u, q$ bDim StrMessage , s  C" n3 X0 D3 Z/ J5 ?, ^
Dim ObjRSA
5 W9 a% E/ n/ ?+ f  G6 DLngKeyE = "32823" ; b* z. U/ C5 @3 D) @; v% w
LngKeyD = "20643"
: Q0 P" W4 Q( b" Q4 k( }LngKeyN = "29893"
1 C/ k/ z' _( g  EStrMessage = Message
% ~! R  i3 Z; n; @2 x- [Set ObjRSA = New clsRSA
7 ?' `" l- W/ ^% F( A- Y, DObjRSA.PublicKey = LngKeyE
( ], t4 C1 ~, E3 dObjRSA.Modulus = LngKeyN
' N: p. B3 R0 h1 n3 h& \0 tEncryptstr = ObjRSA.Encode(StrMessage) 8 P1 x6 ^* i: t6 ^
Set ObjRSA = Nothing 6 @6 u( |( i5 J! b% M
end function
1 P* Y' ?  @/ z: c) m* afunction decryptstr(Message)
/ b9 s, m! f3 t; r, O* dDim LngKeyE
* @' g* `* Z7 wDim LngKeyD ( c# o9 C) M: H- Y# N5 |7 |/ b
Dim LngKeyN 5 ?3 U7 T+ E, |) v
Dim StrMessage " C; N3 P! B. F8 K. Z
Dim ObjRSA
- {5 F* b- o1 ^0 @LngKeyE = "32823"
. g* h: j6 c( H# g! s  f: ULngKeyD = "20643" & _$ D# V. \- J' h
LngKeyN = "29893" 7 D3 u) I* r6 M. X4 t% L! j
StrMessage = Message ; H% p2 X+ ]! `( @  [
Set ObjRSA = New clsRSA 0 \6 K; z0 H8 ]" J% j
ObjRSA.PrivateKey =LngKeyD
/ g/ d& i$ a, m  ]3 pObjRSA.Modulus=LngKeyN 2 I  x0 k' ?1 ^, y" c7 X/ H
decryptstr=ObjRSA.Decode(StrMessage)
5 @6 }6 z: H! v1 a1 x* v! WSet ObjRSA = Nothing % T2 \* R! U" D* I
end function
0 D9 w" f+ ?+ Y4 j9 Ndim last,first . U$ V! i& `( X
first="!@#$%^&*()"
2 K! F7 o7 U& [$ k0 q4 a4 V+ zResponse.Write "加密前为:"&first & p' W2 ^  ~7 O. ?0 e3 t$ ?  A& e
last=Encryptstr(first)
* c$ h2 H7 N$ y6 \Response.Write "加密后为"&last
" R% N* b5 ]4 p$ x+ P  LResponse.Write "解密后为" &decryptstr(last) 2 d' Z! S" [6 J: Z
%> ==============================================
, o! _8 w( b, U! u剩下的就是字符的对照表了. ^; I  o! f5 |% |
===================字符集================
' z2 z: `) v3 w" C/ {; f. L$ K' S: l1_____6EBB) K7 r* r# g5 I7 U: v+ }) }9 B
2_____5C1F
/ K6 f- Z, ?: `' p3_____4D75# g" m; Z( b" Q9 E/ X* g, t/ {! A
4_____26CC% g0 Z5 ^* q6 K$ R) K; b1 J; D
5_____4F88. U/ e( o1 L$ K3 r$ B6 G
6_____3F4E# U4 g7 I5 B+ X& x3 R2 l/ V
7_____0A9D
1 |. x5 D- ?3 |  }+ E% f8_____1A1C8 F# r; l- n% n! ?! c
9_____6D20  ^( k6 B: h7 N$ V
0_____1089+ O' k8 q" x8 e/ O
a_____0F3E; g2 w: `. c$ \7 P
b_____3159
/ Q) y6 j  |( o3 T$ \& ic_____3517
- F' M& s" \* c' _7 A8 \8 n) md_____419C
' E8 V# {& f6 c9 F% }9 q, ^+ b0 Ue_____615C' P. J6 }: |2 K" }5 H0 K- g
f_____556F
/ l3 u2 H: `1 b# Xg_____2B7F
/ f  V! V5 T. G& q& Z/ nh_____0F9C
3 y. a8 U5 K" X) Y) v. }. Ti_____00FA0 @) d$ c* Z, D5 W- C$ i( L$ G
j_____5A50
8 o& r! \. e& R2 k' ^2 qk_____2850' j* ~0 X$ u6 q' r" j. i
l_____3E7B
6 J/ V, F/ m5 y" \m_____71C5
0 d6 ]" ~% L1 r5 j. yn_____1FC8
2 \! r0 ~: ~& y9 @% z0 M/ q. A6 xo_____74C1# G5 [7 ?" p4 ?) s6 O0 M
p_____5FB8
0 }: |5 k7 e( _2 n- aq_____6085# W% C" F; d, R7 C* X
r_____3AC4
$ @+ O) P* U2 I; J$ \# as_____2F50
- d& F% ]+ h6 @7 ~  L( `1 y) k# Xt_____36F8
% C0 f. i0 j" q5 J1 `u_____7010
: Q; e4 [: T5 t% o# C% a" x2 ]1 K! i: Mv_____0B42
, c0 i! n6 I( y& [* o, n  gw_____1C7A
. r5 H  l5 m+ e) q# i% {: b# mx_____16F8
5 m: W# @5 v. ky_____2EE7' T% Q1 M" d; E- B% e8 K1 Y0 `( G
z_____5CF3
9 X5 V6 I' Z0 ^0 u+ v+ _9 K!_____62331 ?7 p+ h. \, g* r( W
@_____3A45  R: n7 ?) o: P% u
#_____2291
: |% \2 N: c* }; w  _( c$_____5D5C
0 F; O( }6 _; {- E; q0 w! y%_____09B9
5 z6 |6 h8 O6 T. r- b, D2 D^_____43EA
' O' K( D! d+ X0 b: \&_____62B9& X0 e' g  {, c& o* A
*_____6301
" a7 @7 @  r* Y  r6 r3 q(_____4659' ]* V5 N2 q" s# k
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表