返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
% b0 [/ p& S, o( m% q3 n- }原始出处:http://www.3ast.com.cm" A$ G) M3 n- p- X% B
/ q: z9 ^( X, r, P) H8 L
看不懂的直接绕过
4 K$ J' r) Z) |# Q5 `( u加密前为:hwy123456% b8 b# W' l; Z# F& M& [
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& `* h+ `0 ]& d. U
7 c2 D9 I  p$ C7 N' r  \) }
============================================* C7 a, a/ r  g& w2 Z
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
# e( c0 s4 F+ ]5 n9 t7 Z& B也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法6 {; t5 Y# S# F, w+ D
以下是RSA算法文件
/ E( f& w1 R8 M1 Q, ]7 I% q7 J- c4 p3 U" m: ^- S
文件名RSA.ASP8 n# O" s6 i/ L: C3 G% X( z: ]8 ], r
===============================================
- N; m0 I) I4 K. D) Q<% : t( S0 z9 J1 c8 b8 q  r  M1 l$ h
Class clsRSA
1 h( L. j7 n* R: C& XPublic PrivateKey
. G$ Y0 V7 p0 Y3 p4 xPublic PublicKey
2 C/ S; m/ r* Q% g, `Public Modulus 7 B  Q1 }* n& i+ x) N& s' D
Public Function Crypt(pLngMessage, pLngKey)
' [! s" l9 u" k, MOn Error Resume Next 4 h) i& a5 i* r$ L* P/ u4 ^0 {
Dim lLngMod 8 W7 ?% l/ @, [4 T( F) q  h. o
Dim lLngResult
5 _2 U+ O/ G2 R% IDim lLngIndex
. m0 g" y7 l2 `  {8 M5 X# k5 {If pLngKey Mod 2 = 0 Then
7 @( H2 R' _2 b6 o' u% hlLngResult = 1 * j. W9 l' m! G8 r7 f
For lLngIndex = 1 To pLngKey / 2
$ J; `* Y% V( T" a# W' klLngMod = (pLngMessage ^ 2) Mod Modulus
# Q  L8 @4 H! I- y; L' Mod may error on key generation ! ~/ v, Y, G+ l. W- M6 i
lLngResult = (lLngMod * lLngResult) Mod Modulus $ ]8 }, R1 D# P' e: b3 w7 e, p
If Err Then Exit Function 1 Z( I) X5 O7 l
Next 0 ?0 B, \* z5 z
Else
2 j# G. h; B; T# V! I+ zlLngResult = pLngMessage
6 J4 i' X" K  G& NFor lLngIndex = 1 To pLngKey / 2
( \6 j* O' X- |lLngMod = (pLngMessage ^ 2) Mod Modulus
, m/ t9 v- [) y1 b' ]. VOn Error Resume Next
/ ]2 G( f; n: O$ P6 V2 S' Mod may error on key generation
' w. R  x; u7 D4 O" {lLngResult = (lLngMod * lLngResult) Mod Modulus & N( a& m( h" _" L
If Err Then Exit Function
- v0 ~! u% h- M& X; V6 }5 rNext $ \& F% l/ D2 n/ I; c
End If
5 G- K4 \" n, mCrypt = lLngResult
' \1 ?& @' R$ E7 X/ f* zEnd Function
0 P8 j  z7 k2 g# Y+ G; M- F. ?4 o# S# |
Public Function Encode(ByVal pStrMessage)
7 x) r) ?4 j9 IDim lLngIndex 8 Y6 L; m' O" s/ f% Z7 q, o) G
Dim lLngMaxIndex + d$ d; A" L) G) _4 v0 D2 H
Dim lBytAscii " K6 G; B; o+ {! j
Dim lLngEncrypted
% N: n) E; s/ C5 d4 s! YlLngMaxIndex = Len(pStrMessage) 8 p0 p" a' E" u7 w2 Q4 ]
If lLngMaxIndex = 0 Then Exit Function
5 P5 K( q/ Q& t4 n" xFor lLngIndex = 1 To lLngMaxIndex
( B4 O( l/ H1 f+ }# plBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 I# Y5 g. X1 Z2 P! Y2 Y
lLngEncrypted = Crypt(lBytAscii, PublicKey) 0 w  V2 E3 N4 t5 O. v6 H  m
Encode = Encode & NumberToHex(lLngEncrypted, 4) $ V' _/ n! h! s4 D4 b. w: N5 _& j' M
Next
: ^- Q. N9 ~& G6 |) kEnd Function
  {3 e' }+ I' n$ Q% {Public Function Decode(ByVal pStrMessage) 8 n9 i' S. R. |% z, s& b
Dim lBytAscii
7 w, z6 }! C1 z  ?, |Dim lLngIndex
- L) V- s# H& k: j- Q+ l3 @Dim lLngMaxIndex
$ G7 ?' K" S3 z! Y: TDim lLngEncryptedData
, u  L! I, O5 T& N0 T$ f0 t, tDecode = ""
3 |* H+ L6 o+ Y9 |- ZlLngMaxIndex = Len(pStrMessage)
+ H& U9 j0 b7 f6 c5 W2 R* ?" E) BFor lLngIndex = 1 To lLngMaxIndex Step 4 6 X2 B+ b% b0 u7 s4 G& A
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" b1 j! O4 y- \$ @1 X  ~; c1 i1 IlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
; P) u! x0 k1 |) H% H8 d3 X: ODecode = Decode & Chr(lBytAscii)
4 ~" g6 `+ k' }7 t/ lNext
# g; s0 a) p) {! `/ ?2 V3 l2 C: f' jEnd Function . X3 `0 X# g1 B
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! z1 k3 D/ b+ z" _3 l. a, l8 Y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ) }5 \* S2 J" A& u6 A
End Function
& [0 Q" \; a" p3 y7 M* z# f2 T' Q* o0 aPrivate Function HexToNumber(ByRef pStrHex) # C3 ?: n5 w& z& f' ?
HexToNumber = CLng("&h" & pStrHex) 2 ^! y% m! W: J
End Function
/ |' Y* u4 `6 SEnd Class % q& X) }" t, g3 w/ R
function Encryptstr(Message)
' t# \7 z9 Q3 U, g& X! S/ k; ADim LngKeyE % K5 L3 G3 w5 f2 {! V. `
Dim LngKeyD 9 G$ q& {. K7 @, h
Dim LngKeyN
5 s4 y- D) n* v  q  n: @! VDim StrMessage
- ]8 m8 x1 D3 R/ ]& O5 R( h6 ADim ObjRSA 2 Z& b) G! z- H) G+ q0 L6 r" ^
LngKeyE = "32823" & I5 B# c+ B, G$ ]1 z. a
LngKeyD = "20643" ! Z2 s- ]& o& f& ]! k  r
LngKeyN = "29893" / p; w% T, B% O! |# ^
StrMessage = Message
1 ]6 g- b2 T7 q3 `. }Set ObjRSA = New clsRSA
  Y; T! g9 O& e2 y  K. ?ObjRSA.PublicKey = LngKeyE
/ o, w5 g, a" W8 eObjRSA.Modulus = LngKeyN - X) {/ H$ t: B) `4 J
Encryptstr = ObjRSA.Encode(StrMessage) ( u$ G( [" V* @- b
Set ObjRSA = Nothing # U% N9 U$ C3 `6 w# @' E, P1 D
end function* Y+ I& D8 O; l8 r
Function Decryptstr(Message) 8 |$ }* ~7 C3 x$ _- e, m
Dim LngKeyE
* |: f/ D& G& Z! j: T! d; {# SDim LngKeyD
/ o3 D0 t0 B/ f2 X" k3 o! a# X# sDim LngKeyN
3 d' V* _. j  h( f3 dDim StrMessage , B7 v' X9 ?: D, O( D
Dim ObjRSA 6 r8 k- M: ]  C- B( N0 A3 p
LngKeyE = "32823"
0 ^) B3 [4 p. O7 [0 h, OLngKeyD = "20643" 4 o/ f/ l) ?2 R3 A  L
LngKeyN = "29893" 6 B; d0 j( ~" k1 \1 T
StrMessage = Message
$ c. r8 o: Q' ]: ySet ObjRSA = New clsRSA
  |4 W5 r1 k# E, D7 Z7 jObjRSA.PrivateKey =LngKeyD 9 y, X  z1 A" s- S
ObjRSA.Modulus=LngKeyN 4 y9 ~# @6 q0 N# j
decryptstr=ObjRSA.Decode(StrMessage)
- x4 E* ?  c& l; U+ {Set ObjRSA = Nothing
/ D2 Q# {' H/ o) Q) d- e- A+ T4 u0 l4 pend function
% q* @. p0 z% Z%>
0 H1 v0 q7 d( b. c===============================================8 J1 m$ b- K+ \) ?' J4 [9 |

: o2 q6 n6 l' u9 l6 @; w还有一个用于测试这段代码的test.asp$ K- u/ j! d: K. @
有兴趣的自己搭建个IIS测试下+ b# D) }3 s1 y+ K+ K4 E
<!--#INCLUDE FILE="RSA.asp"-->
9 B: N8 ]% C9 ~( p# x$ M' w: o8 R9 Y<%" q- X( u: u2 B! l* |2 v$ |
function Encryptstr(Message)
, d* u: |1 L; G, VDim LngKeyE " t3 e' {4 u, F/ E" K
Dim LngKeyD ) P% s' W) {; p& @2 |( U2 H- L" Q7 |
Dim LngKeyN
: M0 M2 |  W' }. JDim StrMessage $ f# s  X* {0 k+ a# E
Dim ObjRSA
: i4 F$ l8 m4 U. Y$ E$ iLngKeyE = "32823" 7 v- ]7 \4 ~% z3 ~( r% s8 s: ~
LngKeyD = "20643" ) W+ t4 d" k/ u2 k* h4 l5 ~
LngKeyN = "29893" 1 I1 {/ S: R; E0 K
StrMessage = Message
4 }+ u" f/ m$ b9 y+ i5 XSet ObjRSA = New clsRSA
1 b3 b; r0 ]- N& S; W! O" C+ L' E2 KObjRSA.PublicKey = LngKeyE
+ s" b- Q; C8 |7 i' q8 bObjRSA.Modulus = LngKeyN 4 C. }( y) d$ \2 F5 ^+ K
Encryptstr = ObjRSA.Encode(StrMessage)
4 p! `  Y; X. OSet ObjRSA = Nothing
/ S( L7 P" C; w2 b" Cend function
. y& t5 o& B# R% l; K; `function decryptstr(Message) # P" n4 Q0 q. T" @- m  s2 U
Dim LngKeyE " s( t1 B) E( ]" k7 t* j3 H4 e
Dim LngKeyD
3 N% z: B# R  {! d& [" r9 tDim LngKeyN * A2 K7 q5 ]: M; S6 q" d6 }
Dim StrMessage
& I2 O* }! C  T8 h3 YDim ObjRSA
% R1 }9 z% ?9 ~) a$ ]; ^) U/ ]: iLngKeyE = "32823"
" W6 X8 x% j% n! b5 k, CLngKeyD = "20643"   Y4 O0 k( Q& g$ y
LngKeyN = "29893" + L% ?% U& s* \1 `3 D: R
StrMessage = Message   T$ Q4 ]/ d% Y( j1 F; w% I& @
Set ObjRSA = New clsRSA 8 q- r9 y, ^. s" Z% U7 L1 }+ E
ObjRSA.PrivateKey =LngKeyD
0 Q  D9 U) j, [8 s. rObjRSA.Modulus=LngKeyN
; Z5 K/ d" O/ c1 `- A' Y/ _- K2 Mdecryptstr=ObjRSA.Decode(StrMessage) # i. z: X3 Y2 M/ P7 x! a6 o4 M% a
Set ObjRSA = Nothing
5 ~9 M$ \6 t0 nend function
, F8 ]/ Y8 @) [+ N' jdim last,first
' |7 b2 _. G! k0 @6 S+ v- Sfirst="!@#$%^&*()"
# e8 ^7 P; s( [/ E+ V/ I  lResponse.Write "加密前为:"&first % u) u, f. R1 [4 [! w
last=Encryptstr(first) $ y- x5 w) B+ b
Response.Write "加密后为"&last
4 Q( I% M- L$ L: `, M' s! M9 aResponse.Write "解密后为" &decryptstr(last) 4 s4 m1 {$ ?% j& I' g9 E
%> ==============================================
2 j8 M# Q* c* s" o$ |- s' H) z剩下的就是字符的对照表了
: x, Q4 Z" G' _; `===================字符集================
& R- j0 @$ Y& ^9 M# _# F6 F1_____6EBB  v. u1 C7 V0 b
2_____5C1F5 s) r8 \- f! L8 k- {  u
3_____4D75
/ p* h5 z# E4 x% S9 v& y4_____26CC
- m$ S2 j, c3 ~" |+ |$ Q5_____4F88
3 l4 y% B. n0 A& D; @6_____3F4E8 o' H9 k7 j( u& p' K
7_____0A9D% ]) Z( z, K* N4 E' G1 {! F7 M
8_____1A1C2 R. X- x3 q- T- _6 M6 A
9_____6D20
' S9 N& h& H% F0_____1089/ R9 s' M: O6 L6 h# {1 _
a_____0F3E
. ^9 T4 Y& M+ i0 p4 Rb_____3159. Y5 g- X3 ?5 g1 _) v" z
c_____3517
% P" c9 d' {1 }5 F0 s1 Wd_____419C
4 s5 f+ ^# [, q4 R; ?0 Je_____615C% e& p5 L) u1 q3 J, v) ^3 d4 D
f_____556F' K/ B3 b$ V1 q% ~8 P
g_____2B7F
% ^  E  d6 l+ P6 R: t. ch_____0F9C1 t6 C- j9 c1 I0 o
i_____00FA: E* K( g- B* }, Y4 M- h: E5 H( o
j_____5A504 f' ]5 O2 ^& i) H4 m9 h. d. |
k_____28506 F: M$ L" M( b
l_____3E7B- ~. t3 d: v) X) j
m_____71C5
5 j; A% E0 N8 ?8 h, w2 i) T1 j, _, Yn_____1FC82 q1 I- `$ s  w* `' [" s
o_____74C1( z8 R2 y* t2 c, W& O* H. X
p_____5FB8& I  n( n# l6 }' c
q_____6085
& j0 F8 m/ M) H* s" m: q& kr_____3AC4* ?7 p: Q+ U* Y$ Z5 R# y! h- ]
s_____2F50; p$ D7 M4 W6 y% `( W, i
t_____36F85 Z) ?- o$ b. Z" P! e% [
u_____7010
; r" V# o) G; O. a  g2 O& F6 p  Jv_____0B428 q  B* d4 [$ Z# ?
w_____1C7A( O2 Y: l! _1 A; u. d0 F
x_____16F8
3 M2 [, T  x# B7 ly_____2EE7
0 f( G5 w0 T0 n- d8 Qz_____5CF3$ e$ Y2 _1 [" W& f' S* [% o7 u
!_____6233
* S( E2 I9 M' q! e1 X: s@_____3A45
9 }4 r" o  s9 u. z) d1 ^: E$ W! M#_____2291
0 ^! Z6 ^; H) x1 g$_____5D5C
1 W6 W0 t2 {! k%_____09B9: [; |, a# G' v7 }
^_____43EA
/ F  i3 A1 D* {0 M&_____62B9
8 d4 E, e, B8 w8 M# E7 h3 r*_____63011 F6 F+ C/ G. C& Z0 S2 L! }
(_____4659& X" S3 p4 }- H1 l) C- c$ m7 C8 m# ?
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

返回列表