返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
% S6 `- L9 r6 c, S! @" `/ X原始出处:http://www.3ast.com.cm( ^" O( v8 _) i; ~. ^! w! W6 L  k
3 X: J% E& @/ X
看不懂的直接绕过8 z7 r+ a# a9 Z* C$ _
加密前为:hwy123456, @7 G" @  H* d7 U: N3 J- _
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
2 c* J) g9 E; R* T
. x/ |4 B) G" P- D* ~============================================
* x  m! G/ `* L; w上面是当时自己校内的心情。现在已经解破出来了,分享给大家  M' a1 g1 x8 w/ x( v) I* ]. c
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法' S6 W/ S9 V5 U
以下是RSA算法文件2 R0 n# h2 S* `* `
, X+ G, N5 O1 V+ G
文件名RSA.ASP
: w% h$ s' X; p* |===============================================, ^) h& f+ }/ r: Y
<% % C7 b& H! ~% T# Z
Class clsRSA ; Z2 Q, |7 @! k! R
Public PrivateKey 8 S9 O4 g; `' r& ?" e: p  ^
Public PublicKey % I" n  {1 V: F" {! P7 f
Public Modulus 7 [: w7 O# [/ _3 w+ D  f) [
Public Function Crypt(pLngMessage, pLngKey)
; c" K6 ?: q/ z0 G. O5 cOn Error Resume Next
0 y4 [% |9 G6 `2 RDim lLngMod
" F8 C! b/ f$ r  t# y( T9 k2 s3 EDim lLngResult
8 e4 W) l; D! G) g& pDim lLngIndex
* I5 C# _$ G! d+ p6 f; |; }If pLngKey Mod 2 = 0 Then % j* k% [6 B& m+ _- T- Y% I1 ~2 h
lLngResult = 1 ! Q6 l3 e7 a- ?" s
For lLngIndex = 1 To pLngKey / 2
/ y7 Q- x7 o% JlLngMod = (pLngMessage ^ 2) Mod Modulus
- W7 b. V# Q) o$ T" z, g" O' Mod may error on key generation
, @- ^, c2 ^" {; U! \0 P( PlLngResult = (lLngMod * lLngResult) Mod Modulus 1 r0 J- i6 w7 @* [8 |! a: g6 ~6 r
If Err Then Exit Function
+ ?0 i. V( E8 E& R7 X7 B: g$ wNext 8 S/ {( @7 v) {& z6 ?5 Y, d
Else
2 H0 i( r' X0 q1 n3 SlLngResult = pLngMessage   y8 R9 x8 T: y. {5 b
For lLngIndex = 1 To pLngKey / 2
6 ~8 F" V( E2 D  ?9 ]7 W9 nlLngMod = (pLngMessage ^ 2) Mod Modulus * S7 J) @/ O6 {" v$ H2 \" R
On Error Resume Next
* N; ]4 L4 {. B! H  l8 E7 z% P6 r' Mod may error on key generation ( w& l3 ~+ t1 U) k/ W  G
lLngResult = (lLngMod * lLngResult) Mod Modulus 2 u% V. f6 j/ e
If Err Then Exit Function 5 D# E/ D3 n$ y6 `
Next ' k9 S1 ?3 f/ I, t+ I8 u
End If + L. |2 D' X" s9 u6 w* U. W
Crypt = lLngResult
1 I' L. S( q5 v% r: w: qEnd Function
2 ]; M# V) f, Q  f
4 J! e* h" R9 m, @9 ~; MPublic Function Encode(ByVal pStrMessage) " O+ ~; v8 q) b  g2 G' K. w$ S
Dim lLngIndex
% o) d: h: A8 X/ r/ vDim lLngMaxIndex
5 L0 b# `+ e$ nDim lBytAscii : H1 K4 n$ N2 _# ^# [$ L# ]
Dim lLngEncrypted
$ l9 `1 z8 J- L4 S* A% JlLngMaxIndex = Len(pStrMessage) 2 Y7 F" y7 H% a$ z2 a2 s
If lLngMaxIndex = 0 Then Exit Function ' @5 {8 _6 n( r' y# d% ~1 H
For lLngIndex = 1 To lLngMaxIndex
, p5 E' b" ]. j& \  N; \# J8 dlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
. G  y3 \: R0 p; I7 ~/ i; @8 e  slLngEncrypted = Crypt(lBytAscii, PublicKey) 2 H# f+ q5 Y. H
Encode = Encode & NumberToHex(lLngEncrypted, 4) 0 Q- t( N6 N  k0 Y: Z
Next
' d3 u, Q- Q' P2 d7 jEnd Function
) K* Y( J$ J& QPublic Function Decode(ByVal pStrMessage)
- p$ _8 C3 {4 g% y# ]$ h- YDim lBytAscii 9 p& P3 Z1 z4 \7 J
Dim lLngIndex
- N  l, K/ t) O( f0 T& eDim lLngMaxIndex 8 P. T3 g& }; x" A9 e
Dim lLngEncryptedData
' }6 u7 y6 ~% tDecode = "" + f2 c; q3 h) a6 S
lLngMaxIndex = Len(pStrMessage) 9 Z! M6 {& O7 V/ M2 c0 P9 k! \
For lLngIndex = 1 To lLngMaxIndex Step 4 : z) z: @- O! C. o2 B# Y: y  K: s
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
4 N5 }) o& I$ I' ylBytAscii = Crypt(lLngEncryptedData, PrivateKey)
5 V. ~9 i/ g; R- f5 NDecode = Decode & Chr(lBytAscii) * i: L# q+ ^# z
Next 4 \  Z/ ?& b: X$ k: i$ \" a
End Function
8 Z! K- [$ K9 G' ~4 v6 c+ mPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 H' b/ V/ r$ C
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) # C! ?; ~, B! e4 S# ^! b5 D
End Function
8 K9 l" Y8 k  {' u" W5 j# WPrivate Function HexToNumber(ByRef pStrHex) & m* V( r* v0 z$ O1 _
HexToNumber = CLng("&h" & pStrHex)
& D2 k0 A2 m& f$ x6 N6 o( I8 FEnd Function
& ^# D, B% v$ x3 ]# `& M7 `, zEnd Class & K7 M% k' Q  K. m
function Encryptstr(Message) + v, T8 p: J! i8 a/ r' x
Dim LngKeyE   C* k' p3 F; x0 D
Dim LngKeyD " {; \9 x; N9 @
Dim LngKeyN 9 |7 x, `5 u1 A' o; t1 a3 T
Dim StrMessage - N8 u& A- }  K" x5 C/ l
Dim ObjRSA $ N9 }$ g, K$ P9 H& W
LngKeyE = "32823"
+ h" Z' y, n0 G& Y  |LngKeyD = "20643"
0 P) J& Q# t, Y+ P8 r& y' u, f% G% eLngKeyN = "29893"
% Z7 P& F  G$ X2 {; hStrMessage = Message
. u. R. S9 C( p6 f0 J8 k; VSet ObjRSA = New clsRSA
, p! y% f, o( m9 nObjRSA.PublicKey = LngKeyE
7 A8 C) j( X+ z7 ]9 c+ n$ s1 G  ~ObjRSA.Modulus = LngKeyN
% J# S0 g( L6 N. Z2 KEncryptstr = ObjRSA.Encode(StrMessage) + p7 P( `4 N. B' m) `
Set ObjRSA = Nothing   a2 _. ^8 X/ z+ {$ d4 }7 x
end function
# v  ]- ^6 O; t) }Function Decryptstr(Message) - T! z7 i# T/ k1 _2 N8 d4 ?
Dim LngKeyE
5 q- X* P( F; v. r) u0 K/ ^5 Q0 w. aDim LngKeyD
2 E9 t) E8 y9 j# @$ T! c( E7 PDim LngKeyN 5 E# i3 j* p3 t- C
Dim StrMessage
" ]8 l) \4 c) Z* S- a7 j) c/ u4 kDim ObjRSA 6 `& f7 O2 Y. U7 Q
LngKeyE = "32823"
3 Z9 D" h0 I5 tLngKeyD = "20643" 5 z5 W' {6 M( _. k) H- h' x  [( o2 b
LngKeyN = "29893" / h4 {. c9 |8 J, e
StrMessage = Message + J4 S; ]( D- Q" A# i0 i
Set ObjRSA = New clsRSA - l, n8 X- |! H, @: t! s
ObjRSA.PrivateKey =LngKeyD
: u$ D$ _2 z( B2 {ObjRSA.Modulus=LngKeyN , o+ E0 E7 \$ H  Y' p1 [4 N
decryptstr=ObjRSA.Decode(StrMessage) $ a& }' Z. T' G) _  e2 r/ b' x2 {& D
Set ObjRSA = Nothing 6 H. v6 a" {8 ^/ D1 n- P/ Y8 K! K! a
end function
1 [0 n7 t0 T& n. ?& Z  k" `%>$ t% A$ I% B/ D
===============================================8 z0 }) w" d0 K" o7 v4 n

; z- t4 s( z1 Z还有一个用于测试这段代码的test.asp
; E/ [8 B2 i/ u) H4 `- N( I7 n有兴趣的自己搭建个IIS测试下
! U+ h% ?" Y) I) `<!--#INCLUDE FILE="RSA.asp"-->
$ c+ U( I6 z" G6 V9 i. A; C<%4 U8 X; o$ `# |3 O
function Encryptstr(Message)
' E0 e% I" Y+ A( j& U6 W, YDim LngKeyE ; b" l+ b  X8 N( v
Dim LngKeyD
- D6 [$ u9 x5 a3 l% I# |& a# @Dim LngKeyN ; `- h- V. C- J1 Q% z& a7 u: X7 V
Dim StrMessage
, V  }+ b& \$ Z9 vDim ObjRSA 1 n4 ?0 L4 ?2 I
LngKeyE = "32823" 2 s% L' }- t& `5 O( ?+ }' Y9 H! A: a; M
LngKeyD = "20643" ' F+ i: w, [2 C2 {# I
LngKeyN = "29893"
- {9 ^9 R# i* \  x- A" _0 q( I6 yStrMessage = Message
4 w7 j+ `: t9 M! _: r; lSet ObjRSA = New clsRSA
3 V" A& S' y! p7 _$ e& D) L5 FObjRSA.PublicKey = LngKeyE
3 O4 E, Y& ^/ T- g. q; v7 c* E* _ObjRSA.Modulus = LngKeyN
0 N' [, \; A* QEncryptstr = ObjRSA.Encode(StrMessage)
( |5 e! _+ E. ?Set ObjRSA = Nothing 7 \" C9 D6 o6 C2 A3 K+ c* I
end function " U, a0 X  a2 |* F- x
function decryptstr(Message)
- D, |1 n( ]# Q2 d2 EDim LngKeyE
0 P+ z* q8 c# @; X2 PDim LngKeyD
9 v% L3 G6 n' q- Z) `3 [: IDim LngKeyN
0 O; P! M2 B5 @# U7 o9 u, O" o$ f* VDim StrMessage + T/ o2 c/ [* V  z
Dim ObjRSA
0 O; g  \, f6 q8 J. {1 f* f2 sLngKeyE = "32823"
( P/ D( v% m  ]& T6 E* rLngKeyD = "20643"
$ v4 |) \% ^5 Y& DLngKeyN = "29893" 1 y' t& |* D. a7 z
StrMessage = Message
; k" s# N- R: M$ \* i# xSet ObjRSA = New clsRSA
/ @0 a( v! t. J" I2 I' yObjRSA.PrivateKey =LngKeyD 7 U" B1 B: n0 m' r: y6 X
ObjRSA.Modulus=LngKeyN
, a  [" O  e3 [) @decryptstr=ObjRSA.Decode(StrMessage)
+ b% T$ g! j% ]6 LSet ObjRSA = Nothing # i* N/ z+ U8 _! L' @
end function $ Q4 T# L4 M. D5 w+ G
dim last,first
/ J- g/ ]6 n7 Z! S5 ^first="!@#$%^&*()"
$ M7 v' z- @3 O/ j. t% vResponse.Write "加密前为:"&first
2 I% ]# }. t! L, Olast=Encryptstr(first)
( |. h" y8 ]4 PResponse.Write "加密后为"&last $ K# T- J: @1 z0 N/ k% M. c
Response.Write "解密后为" &decryptstr(last) 2 x  _0 q4 d0 X8 E. z3 u
%> ==============================================; r2 _- G2 E3 w; p: x; R) b. }, W
剩下的就是字符的对照表了% E  K$ F! j0 B3 v, f. l1 S
===================字符集================7 ]# L9 Q) x% ~9 d
1_____6EBB
9 k" V1 a( b+ m. @" s2_____5C1F* l) }0 [/ R6 ]7 W: Z# q+ q. Q7 C
3_____4D75
* F2 t$ V# y5 s  ?/ V$ e4_____26CC7 ~& O& h# u& d) Y# O7 v2 r
5_____4F88
+ T$ ~6 z7 C6 f( h4 u0 F# c  k4 u6_____3F4E7 @: e' B) ?$ y* ?0 r1 E
7_____0A9D
. p2 Y2 O# e7 r8_____1A1C, Y2 n! q$ o8 h5 x6 }
9_____6D20
9 |/ H+ d! t" L9 f0_____1089
1 ~2 Y, k1 F3 T5 C" `( r3 va_____0F3E2 @$ I1 o9 p, }; p8 C( R
b_____3159/ n" P/ |4 ^) K4 ^) p
c_____3517
( u0 R- I& Z6 n; x& Qd_____419C
2 G8 }, x, P: y2 Ne_____615C3 M+ I! u: r, j1 b5 Z& a# g
f_____556F
- I$ w: b( \- O1 e$ R. Pg_____2B7F
- c+ ]( Y- ?1 {% f. r3 [5 P( Xh_____0F9C; c: B4 E! {: i9 V
i_____00FA
0 `. M9 c4 C% k. t+ A( ^. Bj_____5A50- h0 j! D* |6 @9 C6 i
k_____2850
. |7 u- k6 l6 X5 x4 v. Ml_____3E7B: _& j5 r6 V* U+ z3 b5 w& R. o
m_____71C5, P/ ?: }" q: G6 o
n_____1FC8+ w4 o7 b; B+ [" ?$ f
o_____74C1, @5 z5 n' d9 A( o
p_____5FB8
* E4 Z+ M8 P  G4 F! W8 v) vq_____6085
; T( ?2 g0 h! a* y' I7 Pr_____3AC4; S- C' `9 X! I. o, |. D; u
s_____2F50
7 a1 d! y- u' `) Mt_____36F8; P! j- z# q; l8 Y
u_____70106 p+ k! Z$ ]* e  l; I
v_____0B42
/ t/ K' W$ Z3 I  t2 jw_____1C7A* f  ?1 m, L# S7 V9 x! H& {
x_____16F84 p5 y% }# r4 i- Z% j0 M3 x3 Z
y_____2EE7
; F: f' B4 L5 j+ lz_____5CF3
0 I5 V! {& X3 F- O- T( r!_____6233
+ M5 j  y. ^/ h& \@_____3A45- i; v- H5 D0 @8 p# `$ C+ S# f; a
#_____2291
% b( m0 g3 ~  P7 K$_____5D5C
* v  E& w" y6 J. Y4 k7 M%_____09B9
4 g! C, q/ g7 G! n8 F" s8 a^_____43EA
1 e9 S/ I6 u* t! @/ \8 d&_____62B9. w" L$ ?4 ^. G0 D( a& M( C
*_____63013 J" H- \. v+ S# K+ Q
(_____4659
8 m8 e: x+ e5 \% ~8 [  h)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表