返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
# n. K% X( R8 j% S, z- o: Y0 t原始出处:http://www.3ast.com.cm# e7 ?5 R$ G0 ]
3 S- V/ E* z7 M5 B
看不懂的直接绕过7 @& o& D. w4 \* c5 U+ {, U/ [
加密前为:hwy123456. ]* K0 D& p5 a+ t7 _
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
) P# S) b4 u. Q' q. E: G9 W+ S: r' `0 G2 X4 e
============================================
8 ]% c2 A& l- ^2 v; V# l上面是当时自己校内的心情。现在已经解破出来了,分享给大家4 w9 b& v) e4 X/ h5 e& W# }
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法8 A$ A) ^* p7 P, S
以下是RSA算法文件
! q9 z: q* P+ \) V  d% Q
1 Y# l' ^: W2 }/ P' S文件名RSA.ASP7 w1 l6 W0 A' v. K3 q4 Y) p& s
===============================================
: M# W/ d: s4 ?  n<%
, C- \4 D; R8 g* u& S8 UClass clsRSA
+ U2 e+ t/ N. h# P" p8 Q. rPublic PrivateKey
; u; D% L3 W( m# W# U+ k- EPublic PublicKey 4 j2 d  ?# B6 `9 j2 C5 o& N! ^
Public Modulus
1 I* A4 n) Y5 ^, ~Public Function Crypt(pLngMessage, pLngKey) # l& i% ~: x5 f9 m! Q! Q4 T
On Error Resume Next / P% W: Q( ]+ }4 M, `* K* [
Dim lLngMod 4 q; i, r! M# K5 Y( f- s
Dim lLngResult   n& o* d' Y. b& e$ ?
Dim lLngIndex / y% @2 T3 M( t  q4 l; h6 F
If pLngKey Mod 2 = 0 Then
  z) s" k, g# K& olLngResult = 1 2 m( k0 o( W2 h2 t  `: v( A
For lLngIndex = 1 To pLngKey / 2 5 k4 {: ]. R, _9 c  Q7 r6 H1 x% q. j
lLngMod = (pLngMessage ^ 2) Mod Modulus
  f; M" M$ U3 D) N  D4 ]  p' Mod may error on key generation
- T$ N1 m4 M$ z* L4 S+ u5 a2 \lLngResult = (lLngMod * lLngResult) Mod Modulus : Y+ k  p0 o9 r7 M- D9 _
If Err Then Exit Function
( p5 ^! c) j& ^- @' ENext
. I  F8 p3 z& Z. g5 [5 v) VElse 5 G1 ?! Q9 w0 ?5 `4 B1 O- s
lLngResult = pLngMessage ) `+ T: e1 ?4 G( w
For lLngIndex = 1 To pLngKey / 2 1 ~# A3 c! B% q
lLngMod = (pLngMessage ^ 2) Mod Modulus
: \2 H; s! t8 C- k  [6 QOn Error Resume Next
5 e! Y! o, z: r4 C' Mod may error on key generation 9 s2 g; p( z5 H6 g; H! @7 p+ q
lLngResult = (lLngMod * lLngResult) Mod Modulus
7 H2 ?1 H& a3 A3 MIf Err Then Exit Function # f# ^/ z; l" [2 A2 q# }
Next 8 z" o0 \7 J2 y0 s' q, G
End If " e* D5 M! @; p$ W7 ?; d
Crypt = lLngResult ' N2 y: I: N6 H, g
End Function" p( z( q% {5 a! z  ]2 U! o( Y. O1 P
4 {" f2 Q+ ?, q+ w. ^# s8 _
Public Function Encode(ByVal pStrMessage) 5 {" v1 h, V: Q- Q) }# |0 N( q6 [
Dim lLngIndex
6 H+ i2 W, H+ _2 V, wDim lLngMaxIndex / x/ Q; u. \0 M# K
Dim lBytAscii
; D% Y3 L( ?1 Y' `Dim lLngEncrypted
, @9 x- E5 K2 {1 ^. J: J. olLngMaxIndex = Len(pStrMessage)
; O( e; G: c5 v1 g! ^If lLngMaxIndex = 0 Then Exit Function , D) ^1 `; D# Q* I/ r
For lLngIndex = 1 To lLngMaxIndex # ^% G% L$ M  ?: V& n( M
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
; |! s! }. i! h& W6 `! n% zlLngEncrypted = Crypt(lBytAscii, PublicKey) : C: t& J. ]4 K
Encode = Encode & NumberToHex(lLngEncrypted, 4) 9 K. P* g! [, y3 t. ^/ }
Next
! \1 h3 ^/ c1 L8 T  XEnd Function ( j" c* e+ O, U7 t2 q
Public Function Decode(ByVal pStrMessage)
& @. C7 k* ?9 dDim lBytAscii
8 o* d) K; A  P! k: x- r$ NDim lLngIndex ! B) U& x+ o( j# w* b7 ^
Dim lLngMaxIndex
1 M3 z# o3 p4 N) |Dim lLngEncryptedData
) A& F* R1 m- p( l9 nDecode = ""
- R' F" J3 t: r( [% q: |lLngMaxIndex = Len(pStrMessage)
" l+ [; [; G, ^' v1 GFor lLngIndex = 1 To lLngMaxIndex Step 4
- i% |8 I- `8 y# v+ e# F: KlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
0 X: ?( _$ e* p4 _. Q; y6 slBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 U0 z# n/ j, L9 p, l) JDecode = Decode & Chr(lBytAscii)
8 ^" }1 h5 h9 M: d! N7 BNext % [9 y) d' D  g, j1 C9 a6 z- ~
End Function & @% Y9 _: z# H# G
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) + ?, G( Z2 R9 @6 s' n( y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. B" _, |8 @: x0 \# F" Q% R! JEnd Function
. d/ P- |4 B5 E9 |# p: P0 LPrivate Function HexToNumber(ByRef pStrHex)
. b* j0 d6 ?7 }" V0 E0 x7 a2 L2 lHexToNumber = CLng("&h" & pStrHex) % v0 L0 n, @1 w! l- E. p' t2 u
End Function , |# T7 L+ e6 A2 Y0 p0 R4 h" R
End Class
  [' @) I& x* F+ O* dfunction Encryptstr(Message)
, V' J5 Y$ Z6 d' eDim LngKeyE
' }& u/ |1 d" \% `& Y( sDim LngKeyD " u5 \9 b, s+ Q! }& P4 n
Dim LngKeyN : O! i8 T. H- D( Q) T
Dim StrMessage
' B& L2 ?$ \( U8 V6 R& GDim ObjRSA , {7 g9 T+ f' F5 r  W, Y" M6 H% m
LngKeyE = "32823"
: ~+ Y& I4 b4 x5 y) ~$ iLngKeyD = "20643" 5 h) |& [3 N: \/ c3 r' d
LngKeyN = "29893" " F, A% o: N9 p% [/ i& E
StrMessage = Message
2 s2 z4 S% Q# [4 U( ISet ObjRSA = New clsRSA * F0 d9 i$ ^8 T" ]' j
ObjRSA.PublicKey = LngKeyE ( |  g+ @8 i' D2 y' o$ w+ H6 X6 y
ObjRSA.Modulus = LngKeyN
' z" f+ \- G6 {Encryptstr = ObjRSA.Encode(StrMessage)
; G, \6 R8 j0 X7 q  Q& x% m! }Set ObjRSA = Nothing
( v( V/ |! l: B: j* a/ e# aend function
- m% X) e; B+ W- m7 n' U# x! i# R/ t6 bFunction Decryptstr(Message)
% [1 g. N# \# B) ~1 I- T# ODim LngKeyE 6 U- U! V9 n7 F; {" c  r
Dim LngKeyD ; b, ~4 R0 p# b$ T
Dim LngKeyN & C' ~% n/ H7 N) I6 J, a
Dim StrMessage 5 ]7 H4 g" k. H
Dim ObjRSA . _3 Z% {, A' \# X$ A
LngKeyE = "32823"
: T% u& x+ n/ f; J- _" kLngKeyD = "20643"
$ [/ d' A" [; |; F2 }& K' FLngKeyN = "29893"
7 E6 M7 u  m9 C, ]7 I4 D0 N5 kStrMessage = Message
2 z0 Y2 y5 P7 l7 _; ^0 F- L+ bSet ObjRSA = New clsRSA
) m9 H4 X* W* N$ r3 cObjRSA.PrivateKey =LngKeyD ( z3 A: I! E' k  i2 `+ z, R7 {4 l, r2 E
ObjRSA.Modulus=LngKeyN : w/ o3 l( _+ l  X* \0 _+ H
decryptstr=ObjRSA.Decode(StrMessage)
; m* T0 S( d7 c" H0 l* F  ~Set ObjRSA = Nothing 8 o; k7 ]% j; z
end function + t/ N6 K" o5 J, d; I
%>
# n+ X) F1 ^6 V; l===============================================
/ u/ Q: r' J: M9 v& X$ Y" f+ ], |: R2 R9 P  e
还有一个用于测试这段代码的test.asp
& E7 m5 d9 a' c: Y! j6 g. u有兴趣的自己搭建个IIS测试下
* T1 }# _8 _9 c. G; i. n1 y<!--#INCLUDE FILE="RSA.asp"--> 5 y  P, G1 @; Z1 A, c, L
<%
" X+ \6 d9 f8 i, T6 Mfunction Encryptstr(Message)
; Q2 |# U# r& x* CDim LngKeyE
5 {; e) k3 O. O" M; A- R3 B  @Dim LngKeyD
" K3 p4 o$ [& M, PDim LngKeyN
& i3 v" e) T% h3 Y9 C' {Dim StrMessage , m% u) h9 A3 Q
Dim ObjRSA
) e" U( y7 w2 N% S# |$ x% k) cLngKeyE = "32823" ) P! `3 G5 K3 m* r  U# R% e* B
LngKeyD = "20643"
2 N$ H: @' I- M0 V, \# i1 A+ _LngKeyN = "29893"
4 ?! N& g2 P" HStrMessage = Message
+ Y% a9 y+ R& I7 u; nSet ObjRSA = New clsRSA ) F% S: g* {' }  o& G7 c8 K
ObjRSA.PublicKey = LngKeyE ( p; M$ d. h7 d! B7 s- ?2 G
ObjRSA.Modulus = LngKeyN
& V2 X3 W0 U9 f- [& ]/ LEncryptstr = ObjRSA.Encode(StrMessage) 0 h, T+ M7 I+ Y8 b$ S5 }# R3 g
Set ObjRSA = Nothing
( |/ R# {% B& p7 X: S/ eend function ; B: F0 E" ~4 j/ U! k+ g' P
function decryptstr(Message) ; h8 [1 u3 G5 f* U3 k
Dim LngKeyE % [5 o! N& Z! e! [6 K' o
Dim LngKeyD
8 M" T% I) G7 K% w4 rDim LngKeyN
: T% D# J2 H5 N  U- Q$ U5 [Dim StrMessage
; K% D  z+ y) v! D; hDim ObjRSA . m$ k; X! H5 G' L
LngKeyE = "32823"
  }2 s% f+ N1 W, l2 Z+ @0 Q; JLngKeyD = "20643"
% }, t9 U' h4 ^2 TLngKeyN = "29893" 0 I  ^  a. m- K# g( l
StrMessage = Message / S" ?' [+ M) Y4 c
Set ObjRSA = New clsRSA
( _8 G2 W; m6 [, H) A  NObjRSA.PrivateKey =LngKeyD
* ^% Q! t- T, q5 i: K6 WObjRSA.Modulus=LngKeyN
3 I$ p6 {  ~( Gdecryptstr=ObjRSA.Decode(StrMessage)
$ r: F0 _- H* `/ i/ I- G+ H( z4 H: N# jSet ObjRSA = Nothing
) E$ K9 L/ l% I* i3 Xend function $ ~; k) f0 R3 L4 Q* ~! r
dim last,first
0 q0 {6 a, B! N2 b: R2 @first="!@#$%^&*()" + |; e4 e! w& z- z8 g8 T
Response.Write "加密前为:"&first
! D  q1 C! l7 y% `last=Encryptstr(first)
* P- D* l+ B4 ?Response.Write "加密后为"&last
" C: m( H1 p/ h4 wResponse.Write "解密后为" &decryptstr(last) 2 q, P4 `* `6 B
%> ==============================================0 e9 P# f; l6 n: E: Q
剩下的就是字符的对照表了
2 D1 E$ {( D+ Z% F# t/ b===================字符集================
5 c2 Y7 v  Y# V1_____6EBB3 A# j+ F2 T) b2 E5 P# c8 i( L# w
2_____5C1F
9 a8 `! q+ T) V; v* e0 Y3_____4D757 _. U9 W) {3 o+ v/ i
4_____26CC6 M% G; h1 Z2 H' p
5_____4F885 [+ ~6 \0 J5 W3 Z) b( I
6_____3F4E
( Q; b7 R/ S  U' T2 K& m7_____0A9D! X. _# _3 s% x# Y
8_____1A1C* {$ E' E1 ?7 a2 n+ w
9_____6D20: R9 d8 {9 ]& v% [6 `
0_____1089
! R9 O# ^4 X1 M, C3 ]& f# }3 ?- a/ ka_____0F3E
& z% ^7 K* u9 E( H6 r( rb_____31597 W; ]" ^9 {, @* {1 y
c_____3517
9 D' {, S, B* t+ v, _! P/ yd_____419C0 C3 g. o6 l/ d: L2 r8 o8 H
e_____615C. ^6 X0 p- _) M* q6 Y7 G9 V
f_____556F5 _% P& S6 {! V" k( G
g_____2B7F
' s' d% {) N3 X! ah_____0F9C* }/ E/ ~* _+ b
i_____00FA
, m, P% N- I) c6 `j_____5A50# P4 T$ i- ]% T0 {; Y
k_____2850$ M/ x* l6 X( t* f3 i- ~
l_____3E7B
/ U( V8 m  ?9 Q; u( j- K$ s5 gm_____71C5& {: O, O: R! y. o8 q0 K' I9 h# d
n_____1FC8
3 d6 x7 P0 r6 Q+ `o_____74C14 F( j3 c. `# x3 j' J2 ~! C7 J
p_____5FB8! \( v$ L1 |, O+ ]- l( W
q_____6085
- q& u' d' j, y% vr_____3AC4
7 K3 g, G% }' c. T6 e' ^/ Hs_____2F50
% Z9 O5 a7 }% w* K) rt_____36F8; L& @, R! o" A+ F! p& {; X2 T6 {1 X
u_____7010
3 Q& q/ I' z  W( ~v_____0B42
/ i6 p- r6 V6 J' sw_____1C7A+ j% c! g6 j! Y* v
x_____16F8
1 V5 A. m, B! Py_____2EE7+ n& C% s; F! F$ W7 Z5 |" K# @
z_____5CF3  _3 r1 r7 o) p3 }: U  z6 ~6 T/ o
!_____6233
) v; \, `/ e( s* G0 j@_____3A45
/ j3 S9 x! B) L; D#_____22913 `8 V  {% h6 M' o6 n
$_____5D5C
# S' P8 D* z+ [# W( w7 b. [%_____09B9
; q3 ?) `1 ~  [8 ^0 B- A^_____43EA
( f, }7 A# k& z* r! l$ y9 s&_____62B9
+ A8 L6 r$ G8 ^*_____6301  p0 u. g- E" i6 {( [( q
(_____4659* h  u: r6 n% `; Q' ^8 @
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表