返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 E. P- h8 V3 S
原始出处:http://www.3ast.com.cm  e& I  ]5 ^! _# \+ E8 `
- x2 P& I! G1 i+ q3 G- Y. w+ N0 n
看不懂的直接绕过. |& K' O2 V) C" H
加密前为:hwy1234564 f9 g& F4 F9 v. Y
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 ^7 ]8 f- U# a# L% z
* J6 d  V- c" u8 h# e* n  R2 i============================================4 r4 x# o2 h5 ^1 O- ^
上面是当时自己校内的心情。现在已经解破出来了,分享给大家) y7 `# @  ]. E9 S: q
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法6 W- T, L- H# I, b$ ~2 q% v% |
以下是RSA算法文件6 f+ k6 g/ B6 @$ M0 h8 d6 y3 A2 I
% B# z  @+ j: e# ~* ~/ c& j2 @
文件名RSA.ASP8 E$ B) E- Q# i
===============================================) m2 o! b- j1 B
<%
; g% z) T$ m! Q: WClass clsRSA ! x) s, V8 {( F! q+ P/ o
Public PrivateKey / T+ _* b  U, P& ]; z
Public PublicKey
* l/ Z( Q. R! a$ c2 xPublic Modulus 7 f8 x0 m9 L7 F: ]% ~% Q
Public Function Crypt(pLngMessage, pLngKey) 8 L- t' J: r8 L
On Error Resume Next $ ^5 C4 X3 j5 M6 l; U# i
Dim lLngMod % A3 }2 K) ]& e
Dim lLngResult ( m1 c& |8 s8 X/ c7 d9 N
Dim lLngIndex * b9 |: T0 z7 V' a6 ?
If pLngKey Mod 2 = 0 Then + d) ]5 H1 ?4 |0 s3 ]5 K
lLngResult = 1
/ C1 r" q$ [: T2 ^1 wFor lLngIndex = 1 To pLngKey / 2
6 H- r+ `7 s; X: O# |lLngMod = (pLngMessage ^ 2) Mod Modulus
1 F: F6 R- ]5 V( d2 W' Mod may error on key generation
' U: _5 Y3 N6 z  X0 J) _. i3 r" KlLngResult = (lLngMod * lLngResult) Mod Modulus
/ f" t5 U3 [6 s. P8 t0 AIf Err Then Exit Function & ~$ c; L% ?+ i0 [1 y4 D/ p+ k4 B
Next : h" L3 B: w* ?+ z6 W- G; i) f7 Z
Else
( a" ]' b2 w2 G6 }  [* e9 ^" nlLngResult = pLngMessage
8 Q5 [) j4 v5 E8 QFor lLngIndex = 1 To pLngKey / 2 # r3 x. S: @2 E: Q
lLngMod = (pLngMessage ^ 2) Mod Modulus
4 h, ~$ i1 h' @/ j2 k4 BOn Error Resume Next . k9 {- H- X+ M# D
' Mod may error on key generation
* u: P, ?2 t2 W$ BlLngResult = (lLngMod * lLngResult) Mod Modulus
. W, p! }- s2 u& z9 b: \& OIf Err Then Exit Function
8 M. o9 s9 }/ m, u7 h/ L1 _Next ( T9 }* Y5 y$ _" r/ h
End If $ P% [! N" f1 }9 d2 f/ i9 k9 F
Crypt = lLngResult 0 s+ r# C9 L1 J' X. X- t, n8 }; y0 g
End Function
% l1 T: o6 `- ?+ t
# u9 H8 C2 D0 [3 `4 VPublic Function Encode(ByVal pStrMessage)
! D! c" |+ \) Z- l/ k$ gDim lLngIndex
) B" A3 R& q: ?) p7 MDim lLngMaxIndex ! s! F% A  M* @3 I0 w
Dim lBytAscii 7 O- E$ p0 v" l% x- e& C
Dim lLngEncrypted * K" k  k) @* O7 u5 l. I& N) y5 `) D
lLngMaxIndex = Len(pStrMessage)
' @1 x9 S1 ]/ aIf lLngMaxIndex = 0 Then Exit Function 8 j$ F2 D3 a" i+ A* @% c8 ~
For lLngIndex = 1 To lLngMaxIndex
8 r" m) f/ d$ {5 f4 W& `3 nlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ) a  k5 p1 G9 A9 E0 K
lLngEncrypted = Crypt(lBytAscii, PublicKey) % s2 t3 {( J  Z& O8 [$ Q
Encode = Encode & NumberToHex(lLngEncrypted, 4) 7 D/ q# x6 ]" v1 Z
Next
( K& ?) E9 i) o8 H) z+ REnd Function $ U7 x" D% u; ^' m+ z7 d) V# l
Public Function Decode(ByVal pStrMessage)
. o7 S1 W, a" V7 pDim lBytAscii
/ F4 P! q+ O6 G. \Dim lLngIndex - B) d8 h& q' z' C" h0 |8 `
Dim lLngMaxIndex
  n- c! `  c7 T7 q1 b' mDim lLngEncryptedData 5 D' w9 F$ G9 s; E9 [3 Z! m
Decode = "" + D# K$ x4 T2 j& j& R
lLngMaxIndex = Len(pStrMessage)
# E# W* O5 F% Z9 W8 o! tFor lLngIndex = 1 To lLngMaxIndex Step 4 & X7 G8 E* C* Z; q  j1 c- J( L
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ( F9 o# n( p7 J: l( D
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ u; U4 U; h3 y2 r0 zDecode = Decode & Chr(lBytAscii)
! o& e3 A# J9 g! W% T5 qNext 1 O! ~* j5 h8 W
End Function
0 z. J9 p3 m/ e  v- X4 MPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 _" P. U) [$ MNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
+ F9 L' d2 `2 Y7 @End Function + z9 j7 C% _' j8 m/ Q
Private Function HexToNumber(ByRef pStrHex) 5 K3 [0 _8 J# c. x  v" a& F  _
HexToNumber = CLng("&h" & pStrHex)
$ J1 y& S! ]5 L; Y" h2 i6 bEnd Function # W! g' ?/ g" _, X
End Class ; c8 Q6 b7 X) c2 {- u& g
function Encryptstr(Message) ) W1 r! H; c+ w; I7 [8 J3 j
Dim LngKeyE 8 V9 n- y! M# k# y- ?
Dim LngKeyD
+ L- m+ O  J6 m7 v' `# P) qDim LngKeyN : {+ |/ L3 x. H4 c1 k& ^
Dim StrMessage + b" s% [# {: V& B
Dim ObjRSA & Z$ C. K- T4 j+ R5 }5 _
LngKeyE = "32823" / _  X1 G$ |4 g6 q( Z1 a
LngKeyD = "20643" & n/ r1 s5 U+ U' V7 |; l
LngKeyN = "29893" ; n  N5 T7 r# e4 q: p
StrMessage = Message 3 m, R9 l. }9 l3 s9 C/ H6 C3 M! U
Set ObjRSA = New clsRSA
5 D7 k4 v3 J9 |$ F, v, h8 GObjRSA.PublicKey = LngKeyE
/ a( B0 I- [0 |- A3 H( ~ObjRSA.Modulus = LngKeyN , b# ~$ Q5 c9 |/ Y/ P6 R: b% G! k/ c
Encryptstr = ObjRSA.Encode(StrMessage) " `8 [9 s9 k$ j$ ]2 `
Set ObjRSA = Nothing & S) ^! [6 ~, U; R1 c  X6 }7 P
end function
% Q" k* B: H' s, u& K5 Q& t, PFunction Decryptstr(Message) $ `; ~$ {$ d7 e& x/ K, f  n
Dim LngKeyE
( K& k( B7 n8 i, S8 a) WDim LngKeyD 7 i, @2 X$ \  G2 I+ p) U7 K: R* x
Dim LngKeyN
7 \& ~0 B$ [& w8 I, h! J" ADim StrMessage 7 Z9 j3 c' k& c) \+ _# }
Dim ObjRSA
  O( r+ n1 C; J3 PLngKeyE = "32823" 8 b4 ?) F+ q8 J% h
LngKeyD = "20643"
0 I1 X! \, Y7 v1 v5 \LngKeyN = "29893"
! Y# U, \3 L! a4 HStrMessage = Message
1 Q6 _9 S% S6 v3 C  _2 y+ S9 [Set ObjRSA = New clsRSA % @( k* ]; `5 V% C. @; R
ObjRSA.PrivateKey =LngKeyD 3 F7 y6 S7 B  t' R! U* P
ObjRSA.Modulus=LngKeyN * g7 v: v5 [- e$ H4 |, }* B/ r9 m
decryptstr=ObjRSA.Decode(StrMessage) # B$ h# j) w, i& D+ q1 u- x
Set ObjRSA = Nothing . `$ ]) B* a0 N
end function
7 ~* ^8 L, l& J; m%>
  s$ }4 v5 J- O1 I" d0 l===============================================
9 X6 k$ s) V& s- ^6 n: H
" h6 b, n9 w8 w% G还有一个用于测试这段代码的test.asp; q* X" T, }( O% M) ?& r* D
有兴趣的自己搭建个IIS测试下4 T# b5 Q. r# K+ u2 D+ q$ B" q
<!--#INCLUDE FILE="RSA.asp"--> " H2 m2 I+ o5 g1 y
<%
4 a+ \, l0 {; C; Y0 e7 Qfunction Encryptstr(Message)
$ R+ A$ h8 h/ d' b+ HDim LngKeyE " o. K: B% [& f6 Y
Dim LngKeyD
' Z8 E' X5 b# vDim LngKeyN $ ^5 H) Z$ `3 Q' Q
Dim StrMessage 5 d" w# a1 }2 c; w: A+ ]: E5 {
Dim ObjRSA
! q7 l2 o4 f4 q# f  Y; u# \0 @LngKeyE = "32823"
$ D$ ]9 H/ T) _, J0 Q0 U- F" Y, r+ N# uLngKeyD = "20643" / T9 e2 C2 e4 }% B$ x7 B
LngKeyN = "29893" , r& q0 a: Q! I5 v
StrMessage = Message
$ @" U9 g$ Y: |" d9 H" xSet ObjRSA = New clsRSA   E9 w1 K& m) Z/ S: J0 a; f* M
ObjRSA.PublicKey = LngKeyE $ d' i; w( F3 P9 c
ObjRSA.Modulus = LngKeyN
* U% s, d9 H' B" Q: Y! f( }1 AEncryptstr = ObjRSA.Encode(StrMessage)
) {2 I3 W# }" b( y. s: |- M) MSet ObjRSA = Nothing 7 r# _9 ]) q" M& t. H
end function " ~9 H1 m8 O- w" B
function decryptstr(Message)
  ^1 {3 l' n% V, x2 B! r( o0 T2 Y! eDim LngKeyE
! d; W  I% M1 R8 A6 P8 JDim LngKeyD
) r: }; ^& l' m. \Dim LngKeyN ; Y) T8 q6 K. ?2 [6 x  ?* _
Dim StrMessage
* o' w% W5 [9 `. u/ ?. M! z. p1 IDim ObjRSA + I' i" T# P. a1 s
LngKeyE = "32823"
; O9 f% |2 |" ~# ?' N( ?) ?, P, CLngKeyD = "20643"
0 {. j2 P4 a/ l* nLngKeyN = "29893"
5 v" O1 ^  j* V; b* f$ k! e8 B6 vStrMessage = Message
/ I- k7 D# ]5 R1 f; w! i! g( j: ISet ObjRSA = New clsRSA
4 e1 j8 k% Y5 |( x" q3 H. |; iObjRSA.PrivateKey =LngKeyD 1 c6 U* ~' t& k
ObjRSA.Modulus=LngKeyN
9 i) W5 k4 h) o; L7 w) s+ ]decryptstr=ObjRSA.Decode(StrMessage) 5 h; g, R5 o& Y* g2 g! B
Set ObjRSA = Nothing
0 z! ?8 W# \& x3 ]) r$ Q" Qend function
% Q2 ~/ k* g% F4 L/ l  s: Hdim last,first
8 [$ A8 S1 m4 `, d+ m2 T$ U& pfirst="!@#$%^&*()"
# m' P$ L8 g- ~% \5 H- qResponse.Write "加密前为:"&first 2 X! Z( M" ^4 v3 x0 b0 E5 |8 `+ P5 x
last=Encryptstr(first) 0 m9 T$ |) r( |, c
Response.Write "加密后为"&last ) z) P9 b5 U  L# ~  |( B7 d
Response.Write "解密后为" &decryptstr(last)
) v/ E) P# o+ C% e%> ==============================================
  p8 l$ a& G- k$ @" s" _  R. f: c) z剩下的就是字符的对照表了' u6 q$ L4 p$ v. M
===================字符集================
. D' R, r. s  d  f! f4 M& K1_____6EBB8 K: k, X8 T6 p+ W
2_____5C1F
- R% l9 u* o- Z& J0 }9 S3_____4D751 F2 P6 B, E, q7 I
4_____26CC
* D) i  Q  B- K6 v0 [5_____4F88  H# C/ s. H: C& ^6 k& C
6_____3F4E
* `2 X1 T/ g! l" P! A0 J- j7 y7_____0A9D& |9 W4 n/ Z* |  u4 k/ j# i
8_____1A1C
: F. L" p0 k; @) ~9 L9_____6D20
$ y, J) ~+ ~: m1 |. `$ x% q0_____1089
2 s# J* V3 |, O/ I1 Q# X8 W" _a_____0F3E
/ G3 j# S/ b" d2 K+ u' K- S8 Tb_____31599 l3 H3 E/ c4 B; h
c_____3517; Y1 V; o0 a+ D' ^( k: {. o
d_____419C
9 O% [. Q& ?9 `e_____615C
9 K# R% G  |/ B: h/ v# O7 Sf_____556F
6 |" }$ g. m) r: xg_____2B7F
# P; y; p+ E- B- @$ jh_____0F9C1 \$ Y* v5 l/ J& S5 L2 ~7 }( w$ D
i_____00FA
7 {' v; V7 B6 L+ S( G, ^, yj_____5A504 Y8 M; i5 n* y* ?0 L( N1 b  O9 N: C5 }
k_____2850
. W9 L2 t9 v; o$ d9 fl_____3E7B
6 I% x; p1 |: ^5 f! U5 o0 w9 |m_____71C5
* [2 E+ G) R) p! K; vn_____1FC8
9 Z9 m& s% c6 Wo_____74C1
. R/ a' \* g: e9 r) m% D$ G+ U; zp_____5FB8" c) p# I; J% m, e8 D
q_____60859 m! t2 C* P+ Z
r_____3AC4; y+ d$ e6 i; {/ u: p: G8 Y7 H
s_____2F507 g8 O, j* i  p* @  ^( G- s
t_____36F8
4 @8 L# B2 r9 }u_____7010( h% q/ }$ M$ d1 X6 W. c2 j
v_____0B42
0 l) u4 ]  ^, `  bw_____1C7A
6 c7 {- L7 f4 n/ j5 s7 j* ^! Tx_____16F8/ M$ {/ E7 Z6 Z
y_____2EE7
3 o$ W; }; j! N0 A# sz_____5CF3+ y& a0 ~2 h- i/ s3 U7 d6 M+ L' F
!_____6233
  R( j" v1 l* g* k4 q+ o% Q5 Z@_____3A453 D" s! n# a# b. s
#_____2291! @2 @. R5 u8 g) s# G; X& |
$_____5D5C
3 }: E) N: k8 |2 v! a3 I# p, n%_____09B9
# ~9 }% V' Z) y- v; s^_____43EA( w  n$ D' X1 o, n
&_____62B9
6 a9 |: a4 h7 [$ M# _% a2 c9 `) a*_____6301
9 D- o" }. k" r* ?7 U1 a(_____46592 S- ?! S0 o. `% f" M
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表