返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
- p5 r% W0 o1 n. J! ~原始出处:http://www.3ast.com.cm2 l$ Y, k' k! f" _9 ?8 C  L
7 G2 B  q3 O6 s* G% B
看不懂的直接绕过5 T% z" N( Y9 {  ^4 k
加密前为:hwy123456& u2 z5 P- B, j/ u* p# m
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
/ R* ~9 |! I) C
( [* a4 c) i# \& x- A! g============================================
. G- Z/ Y5 [# D  r. R+ z上面是当时自己校内的心情。现在已经解破出来了,分享给大家
4 a6 b8 U  X' l5 V也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
9 L+ r" c8 ^0 F3 v1 Y" ?1 ^以下是RSA算法文件* w" p% P; g- U  e8 p* \! A
# |, X" a$ Y: `! a5 b2 b
文件名RSA.ASP
- q$ t9 A) S0 U& k: b+ ]===============================================
% ]3 m6 K- ]0 [8 D! P. b<%
$ @: R( V# k3 @8 u1 @3 Q: \Class clsRSA : S6 ~! W0 a0 n# L6 c4 p8 J
Public PrivateKey 4 R* m  r9 s" P8 i8 k8 A/ b* Q+ N
Public PublicKey
- K( ]: Q( H& l; m& LPublic Modulus
* s$ m0 S: ^2 y( |0 kPublic Function Crypt(pLngMessage, pLngKey) : o# }$ c& A) i! N4 g
On Error Resume Next
9 W! y. L8 H1 G. `* l6 `Dim lLngMod
1 T1 N# C) }4 q; ^6 [9 O7 Z, _Dim lLngResult
: D6 }0 t0 O7 g* d6 X5 i; I* V1 ^: aDim lLngIndex / o* i: ~4 {( n4 X
If pLngKey Mod 2 = 0 Then
% y+ V1 l6 k& wlLngResult = 1
; b! @3 q, d, T2 qFor lLngIndex = 1 To pLngKey / 2
% M6 J* H9 A9 j* |4 t& XlLngMod = (pLngMessage ^ 2) Mod Modulus
* L( H% G1 D5 C5 @8 X" B' Mod may error on key generation 7 p* ?/ Q; J# _6 _
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 s7 |! D+ k, X9 b& {( Y- E
If Err Then Exit Function
% q) @- ?" r+ k) s1 uNext 4 V( Y2 Z# k) D# K
Else ; `+ i: n: _4 x( S! j& g
lLngResult = pLngMessage
1 b/ n- b  y  V1 D1 x& k# M$ rFor lLngIndex = 1 To pLngKey / 2 3 z' F6 @: K, `
lLngMod = (pLngMessage ^ 2) Mod Modulus
8 F6 S( J& V& J! v2 b' V- cOn Error Resume Next
* e; S8 P5 q7 D- ~6 N0 A' Mod may error on key generation
5 z1 t2 _# h; u0 P; E& k% SlLngResult = (lLngMod * lLngResult) Mod Modulus ) p! d9 a  j" l- `
If Err Then Exit Function 0 I8 g  Z4 S9 ~; |( p
Next
" h8 T; G0 v0 E6 V) c, R! ~End If 2 P) O& {0 `, x; ]$ F4 {
Crypt = lLngResult
$ L6 j/ W% a5 p2 m. H; qEnd Function
! R$ Y% h9 \) |' ?4 l$ h2 e* I* W% |3 s9 }0 A
Public Function Encode(ByVal pStrMessage)
' H% l0 R) G8 y; m5 O; HDim lLngIndex " p3 J5 x9 C2 Z( i, L
Dim lLngMaxIndex
& ^/ W9 n3 L0 S& B+ \Dim lBytAscii
! S$ }# A+ W; x# P+ [Dim lLngEncrypted
0 `: ^/ `4 C) G$ u- }lLngMaxIndex = Len(pStrMessage)
3 K% N( k: w2 z  I. q0 UIf lLngMaxIndex = 0 Then Exit Function ( b/ w9 E( R1 L. t. R6 i: u& d( k) L4 i
For lLngIndex = 1 To lLngMaxIndex
5 _! M5 n2 @+ I! A+ E. ~lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
$ s2 d) @; l* VlLngEncrypted = Crypt(lBytAscii, PublicKey)
) |6 \8 v5 x9 O. E. K4 |: V8 ZEncode = Encode & NumberToHex(lLngEncrypted, 4)
2 W  U' g8 ^8 H# q( P3 n# qNext
: i+ I7 q3 j  y3 Y7 lEnd Function
% A; z5 l( Z6 }% U) R1 V9 fPublic Function Decode(ByVal pStrMessage)
; y7 E# H" X& Y% h7 M' ^6 fDim lBytAscii 8 D( H" p, L" S( R
Dim lLngIndex & H6 F& J6 p0 e$ F
Dim lLngMaxIndex ! n6 ^' X5 K: W5 P+ K1 s1 N% K1 \
Dim lLngEncryptedData
- U# B( G  p& U2 K$ k- w1 @Decode = "" % e/ R& n. g2 `8 s+ o
lLngMaxIndex = Len(pStrMessage) # S- W9 y; \0 a- D9 q4 ^
For lLngIndex = 1 To lLngMaxIndex Step 4 # |1 \3 V1 Z7 C9 n5 n
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) $ y  i, \" [  C6 q2 F' E! K$ R" r' O
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) " D7 y+ K, {) Z6 m0 q/ C
Decode = Decode & Chr(lBytAscii)
% z3 M; L, I+ T4 vNext 0 c0 A! F. @" ~2 f
End Function
0 t. s3 q; ]  }3 A4 _  l1 ?Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) / @" r& z6 Z) W. j" o
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) % ~6 U1 s5 Y- U
End Function
2 l* h( u4 k. m6 g$ Q5 W! HPrivate Function HexToNumber(ByRef pStrHex)
' T+ a0 ~9 h9 ]' C2 f# kHexToNumber = CLng("&h" & pStrHex) 6 \4 u7 o3 e2 T' @8 B3 x
End Function
' e- Y. ?' m3 m" Q5 \0 i6 B; K: k2 TEnd Class
- R6 |' q: i( v; Ofunction Encryptstr(Message)
1 o1 ?  b4 o6 P& h* d% f( p0 G0 wDim LngKeyE
# |- S) H. K' Y5 r+ P- @1 KDim LngKeyD ( T% D( Q5 e( C" K
Dim LngKeyN % p- x0 B3 Z$ z( p: N2 o) o
Dim StrMessage
! k. n3 _; P) \Dim ObjRSA 0 {% i% C) W8 s; R  \
LngKeyE = "32823" 4 u- r! B* I0 V, y
LngKeyD = "20643"
; N2 i7 P; r$ `9 U+ [" ^8 ^: ]LngKeyN = "29893" / I& N6 ?. G( x( N" U- P
StrMessage = Message % q( c/ x5 h8 q+ h; A' D9 |
Set ObjRSA = New clsRSA
8 }/ Q4 k2 z2 N( O7 ?/ J6 w+ |ObjRSA.PublicKey = LngKeyE * @4 T$ P6 e. w
ObjRSA.Modulus = LngKeyN
% T7 t6 j3 }8 l1 a+ z5 V$ bEncryptstr = ObjRSA.Encode(StrMessage)
8 V3 K1 |5 ~3 y+ K& rSet ObjRSA = Nothing / v: A' s! E+ i2 `# w% Y
end function, r& Y& h* P4 `+ \9 E9 P
Function Decryptstr(Message) # Y, Y# T3 z! S& a8 O& G$ K* a
Dim LngKeyE 1 j. T0 \" U7 p- }( M3 n
Dim LngKeyD 2 r' I# n1 K1 R/ \
Dim LngKeyN $ z9 |. p2 z2 @0 d
Dim StrMessage
, D& m4 J; E; |: o, kDim ObjRSA 8 k( ]+ y4 q1 k% W+ x
LngKeyE = "32823" ! F+ K/ `! R; U, h% X8 |" [6 G
LngKeyD = "20643" 2 J" v$ \6 T9 v
LngKeyN = "29893" 8 I& r4 w2 d' ^
StrMessage = Message 4 d" `8 E( `7 n1 ~9 |( n
Set ObjRSA = New clsRSA * R2 b" e* ~+ J' v, W2 Q
ObjRSA.PrivateKey =LngKeyD
$ {( ?3 m5 ~9 @) p; \+ y" YObjRSA.Modulus=LngKeyN . [6 a- ?1 T# l; M
decryptstr=ObjRSA.Decode(StrMessage) 4 p0 R' `5 e, c6 w. V5 N
Set ObjRSA = Nothing
! I8 L) ?! J# |8 r) ?* nend function
3 }% d& A: J* Z& @" @% I%>
' J" K9 F+ C$ T/ b; J5 O# U% y===============================================- C3 W0 I% A/ S0 V8 J3 D
9 a  A( n, ]2 j5 V, l, D
还有一个用于测试这段代码的test.asp+ ^3 w* n4 u$ r5 I
有兴趣的自己搭建个IIS测试下
' ]/ ^& @& u/ M- R- L) S9 z<!--#INCLUDE FILE="RSA.asp"--> * {# ^( J5 j3 |- e- C1 B& Y- U4 C
<%- `- c. h; l3 I2 d' W; K  {- x5 ~
function Encryptstr(Message) 5 Z# C' h* Y( y; K! Y! n
Dim LngKeyE
& o7 E9 u  ?' o  I! f2 uDim LngKeyD
' N8 B5 H: Z; h/ @) w8 P" QDim LngKeyN
) v& t& Z4 O8 M" \; t: }; C& {Dim StrMessage 0 Z4 P9 j7 m( n8 M7 D3 `) A
Dim ObjRSA
5 \% u* c, J  r2 qLngKeyE = "32823" ! i& a" |9 T# J" c1 X" k' e
LngKeyD = "20643" / X5 O' `: d3 o* I5 n& p
LngKeyN = "29893"
4 m* m2 P$ T! w. _( fStrMessage = Message 6 H: q; u% \. A/ W7 p
Set ObjRSA = New clsRSA ( V/ G) {* T5 k
ObjRSA.PublicKey = LngKeyE - Y0 Z: Z  r( ^. s5 f- {+ O
ObjRSA.Modulus = LngKeyN * }- z3 t5 }) O
Encryptstr = ObjRSA.Encode(StrMessage)
9 x1 X* O1 u7 b- X' L" i1 FSet ObjRSA = Nothing * N! C6 U% c# ^- m/ G" G
end function
. V% W3 H; G. Q; ?  lfunction decryptstr(Message)
& R& b9 g+ G- D0 l3 ZDim LngKeyE
6 s4 {" a7 [5 oDim LngKeyD & i- E) d2 {% O  ]1 b+ P& Y" x
Dim LngKeyN + `/ x& W: m' K6 |7 T: ]- k- [% Y: E
Dim StrMessage
& E! \# a0 p6 _# X4 J+ J; {Dim ObjRSA 7 Y% L  c* ?: M1 m5 {+ Z
LngKeyE = "32823" 4 h- y4 ?! L$ ^; B6 ^8 R
LngKeyD = "20643" 2 a* u2 k  [* k/ n; F, G, o+ N
LngKeyN = "29893"
, {, l! h6 T$ uStrMessage = Message $ H2 d+ y3 ?/ a: u- x
Set ObjRSA = New clsRSA 2 D/ @8 F& Y$ _1 {
ObjRSA.PrivateKey =LngKeyD & R6 C) r6 i! ]. U
ObjRSA.Modulus=LngKeyN ; z/ J8 k4 i/ b8 ^/ @
decryptstr=ObjRSA.Decode(StrMessage) ; f7 E% _8 i: K: d' M
Set ObjRSA = Nothing
9 O2 ?% e/ Y6 I, G! f8 eend function
) w8 @  g' l" n1 Zdim last,first $ ^+ o8 A: C: C+ l4 k4 T8 N/ ^- q
first="!@#$%^&*()"
, D  \! U3 X1 ]/ w" C/ OResponse.Write "加密前为:"&first - o- r, z, o: ~* s/ E
last=Encryptstr(first)
$ H' c9 x5 y. h) r( U% AResponse.Write "加密后为"&last
. D7 c0 u. C& O& n# q% iResponse.Write "解密后为" &decryptstr(last) 1 P; _0 {4 b& i# ~8 \& [8 z8 j
%> ==============================================
3 }* z: W# h3 t- J, p7 X7 a( Y0 Z3 r1 m剩下的就是字符的对照表了5 ?. \- _" k$ @& z' _2 l
===================字符集================- @0 N. |6 v! N4 U7 ~
1_____6EBB
8 _3 ]: v8 q5 ^- y2_____5C1F
9 @4 O: d: g( B* B. C! ^3_____4D75
6 }7 S: `7 H5 ^1 E8 T0 a" a4_____26CC
5 ?3 S# T, I' D. \/ G5_____4F888 k7 T$ K, Y/ x
6_____3F4E
# T0 t5 w9 ?5 C. w" D# W7_____0A9D, o2 ]" j) S1 t* u+ t- ~
8_____1A1C: M. @+ d# z: O+ X; e1 i0 i2 N& u& R
9_____6D20
( p' N8 j0 L) Q6 Q+ M6 E9 [6 x, d0_____1089
/ L4 R1 G1 }6 M# y! H+ M8 C2 aa_____0F3E
* W4 e, [# O" j* mb_____3159/ |! I4 \$ S7 [* R3 U
c_____3517( p7 {: |7 p8 a/ w) U& o. U
d_____419C7 b- c3 Z! s: p) T* ]) l, z" v# x8 @/ t
e_____615C" T& x! g, y) ?) p, v* U) T- Q( c
f_____556F
7 [- B! b: q" o7 v' rg_____2B7F, ^: Y  e' m4 n4 S6 ]
h_____0F9C( q- A+ x! |6 M' M  \
i_____00FA; _# z+ N( v, e& M
j_____5A50
0 F: w6 s* s& ?7 Ek_____2850
: i4 F  w7 S! i' sl_____3E7B
& q# V+ R1 ]1 n8 Km_____71C5
0 [0 V& H. ]8 K0 N1 u' e( m3 Kn_____1FC8* e4 ]- {2 W8 W1 f, s/ ^
o_____74C1: s2 W# A  @3 r- ]0 V' a5 C
p_____5FB89 D6 ~, }) h# x
q_____6085: Q8 S2 u, D& s2 o6 a
r_____3AC44 |! K5 i6 V( ~* O! P1 x
s_____2F50
* g# f: Q# Z: F. H/ Et_____36F89 g( ~8 b: U( n) b4 O6 D1 \; l
u_____70104 F4 d" W( f  o+ W( M+ Q
v_____0B426 _6 c) p' k9 v+ k
w_____1C7A5 D! L, x# }9 b& `! Y
x_____16F8' y, `' D6 Q/ l% z8 u
y_____2EE7
; t, V2 R& s+ z( ez_____5CF3
5 q- k6 d+ q' N! c. m!_____6233
) C/ B2 f6 c3 F/ c" x@_____3A45
' t* |9 ]5 s4 H#_____22918 H( u0 Q; o1 j, H
$_____5D5C
1 w8 p( C$ @2 K%_____09B98 z! S$ ?, d- X1 b( H+ i, |* u6 V
^_____43EA! S" M8 d6 i; K5 e9 G. `  m
&_____62B9
% p: e2 ~9 ^4 D+ a  c9 g*_____6301
+ z% @/ _2 U( f& u(_____46599 U- U) u' _. C' T8 _& u
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表