返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
9 W- L/ U- c& Z) P! X原始出处:http://www.3ast.com.cm
+ n# z: `9 I) R4 r$ Y- r8 K7 U0 {
看不懂的直接绕过
% ^- d$ O7 F# @0 I- j加密前为:hwy123456
! t/ [5 ?8 z. z加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E2 n+ D) q( H# s( G3 n! `+ H# I
9 {% d  Z9 E! t& g4 U* ]( y6 d
============================================
& h7 x5 i3 x8 U! k7 f0 P上面是当时自己校内的心情。现在已经解破出来了,分享给大家
  _3 ~/ c" O4 v也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: O- R( F! b1 |+ }2 t" H# B以下是RSA算法文件
' F# p" N* u6 ?0 B' q2 Y- Z; ?, ]. y& V$ g
文件名RSA.ASP* {3 I; O( M  O8 T5 R' X
===============================================5 r9 f; P4 [9 h# S
<%
1 _# O  N; I2 C( ?9 `, h- t+ g3 CClass clsRSA
% M6 C0 I. q$ N7 Z2 `9 KPublic PrivateKey
, I2 }  ]# G  fPublic PublicKey
  V" H: O3 V6 ], h1 U/ c' `! TPublic Modulus
, m# t& o; y5 A& L; vPublic Function Crypt(pLngMessage, pLngKey)
* d, g; N) Z4 I2 f" \( D! K( JOn Error Resume Next
8 ~+ K$ Z. i- M2 J7 BDim lLngMod
* l  Y6 B: O- @' WDim lLngResult 0 z0 E1 I$ R' t3 Y: h
Dim lLngIndex
* U# k6 F2 o- I  ~* W. hIf pLngKey Mod 2 = 0 Then ' l, z" p0 K2 r( I8 G
lLngResult = 1 ! x7 ^! R' b$ ?) ~3 ^- |* T! V8 {# D
For lLngIndex = 1 To pLngKey / 2 # a; p' v0 J3 |% }0 C5 X6 h
lLngMod = (pLngMessage ^ 2) Mod Modulus + G# |/ V9 F- b- }
' Mod may error on key generation
6 n- `: d* g' w0 t& dlLngResult = (lLngMod * lLngResult) Mod Modulus 2 n8 e* G3 o2 C+ a' S( o: g5 m2 N" k
If Err Then Exit Function 5 I5 t! }0 P) {5 D: u
Next 8 S1 _# B5 G7 D4 f
Else * f) R! K/ E) v8 S' c/ q7 K
lLngResult = pLngMessage
3 T. ?& R2 Z7 c2 C6 b3 v& gFor lLngIndex = 1 To pLngKey / 2
( [: x" g6 r4 ?6 [7 \8 r9 X# Z9 ulLngMod = (pLngMessage ^ 2) Mod Modulus * M% {6 m# Q' g
On Error Resume Next
8 z: U! i/ Y3 c- B" N. b( t3 h) o6 z4 d' Mod may error on key generation ' O0 k6 u0 j$ z1 ~+ k2 @, w
lLngResult = (lLngMod * lLngResult) Mod Modulus
& @# ^% u% C/ C5 LIf Err Then Exit Function
3 t3 J( E" B" ]7 d* UNext . ?/ T& M5 e& G5 y5 q5 c
End If , s% n, W6 Z  D* `- p+ ~- ~& A
Crypt = lLngResult
. s+ M7 [& S+ p! `6 e9 rEnd Function- p* D1 [, [1 \3 R& ?6 z
' o5 |4 J3 F; o, I6 U$ J
Public Function Encode(ByVal pStrMessage) ' q5 f4 F' z, A
Dim lLngIndex
3 R! [8 X/ e2 ^8 U7 G/ u9 vDim lLngMaxIndex 7 d' N( [$ l6 O
Dim lBytAscii
/ @2 K: R) i/ G  q* j9 [Dim lLngEncrypted
/ `3 N: [9 X- qlLngMaxIndex = Len(pStrMessage) 7 M6 r  A9 t/ c& U( i+ ~+ h4 U
If lLngMaxIndex = 0 Then Exit Function
* l$ q4 c" h3 L. Q5 ~0 M# }For lLngIndex = 1 To lLngMaxIndex
: b$ f9 t  V! QlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ |' L( n" [$ p! S: y: v* i6 flLngEncrypted = Crypt(lBytAscii, PublicKey)
2 r' R$ T$ x! I. O/ s& gEncode = Encode & NumberToHex(lLngEncrypted, 4)
( l3 |# j) o3 Z& KNext / v+ m! h/ K; O$ ~; R+ R& \3 Z
End Function
- [6 I  O2 J9 Y7 E5 t* l. ^Public Function Decode(ByVal pStrMessage)   z* d" N: I" {# i4 A- n
Dim lBytAscii
% ?2 a; K: r& C9 S& t! X3 j. CDim lLngIndex   L! B7 m9 o' X4 ~8 u' S: I
Dim lLngMaxIndex
6 J: O( m* D$ ?; I$ |2 l& BDim lLngEncryptedData
1 o: q( S: G# q+ `Decode = "" ( M# Y2 J, W: I5 C
lLngMaxIndex = Len(pStrMessage)
1 ~+ v! ]+ J* pFor lLngIndex = 1 To lLngMaxIndex Step 4 3 G5 Q" y" w1 h( t$ b4 a
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
5 V/ O. i% s4 q2 ]8 @& z2 d" llBytAscii = Crypt(lLngEncryptedData, PrivateKey) , o! a# r5 v( @2 A6 T7 i
Decode = Decode & Chr(lBytAscii)
. @# \  m) m* i& h* m0 @+ YNext . l/ i$ F- ^$ k9 Y7 d" A: F+ {* H
End Function
- C' G& @% R$ Q% [% \/ k2 xPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ( Z- A5 D% S  z# n9 S4 Z) J
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
% q* S$ d7 `# ~# F6 x- y7 y  e6 oEnd Function
6 w1 g2 r# i9 e0 a2 m" gPrivate Function HexToNumber(ByRef pStrHex) 4 X) F( {' }7 Z" z- j3 B" Z4 T
HexToNumber = CLng("&h" & pStrHex)
) w$ d4 K, \2 }7 I% p, @3 JEnd Function 7 Y, c0 @! G& ]' q  }
End Class
; F, Q$ S# _* W* Y$ n+ f9 dfunction Encryptstr(Message)
+ ]$ p$ n: e; @Dim LngKeyE 4 |5 e# w" `6 Y; G) P4 N- f. K+ y4 b
Dim LngKeyD ! e  l: F4 c% D: Y0 D* P: o
Dim LngKeyN
; D# y3 Z' F& b2 f7 {* m  n5 MDim StrMessage
5 D, }9 {0 Q; |. N! FDim ObjRSA ' e2 j: s' V" X$ D" N' B
LngKeyE = "32823"
/ G5 g, B, o0 [: h+ hLngKeyD = "20643"
/ s$ _- p6 d- u$ R  I; yLngKeyN = "29893" 7 Z  g# R( X1 J" i8 U1 E
StrMessage = Message
% w+ B9 A& z9 r' O/ m2 H1 S- vSet ObjRSA = New clsRSA $ w# N, d6 f* k( S  L
ObjRSA.PublicKey = LngKeyE
% P: `$ {) ]5 DObjRSA.Modulus = LngKeyN
" C- U! y7 m$ o! o8 REncryptstr = ObjRSA.Encode(StrMessage)
8 D( x( Z0 Q5 ?Set ObjRSA = Nothing ) L  s+ v) h; }0 ^+ _0 u
end function/ L" K5 ~6 {6 q
Function Decryptstr(Message)
+ C% g* D9 q! u- dDim LngKeyE
' a3 [! I7 }6 d/ A. y. t7 dDim LngKeyD + n( H" j8 z* l% f/ y9 L* s# Q6 P
Dim LngKeyN ; j& l; G/ ]# ~
Dim StrMessage " r( }1 y2 N& _1 p6 X' l4 T/ d2 Y
Dim ObjRSA
7 Q) N/ V! F* Q4 c4 eLngKeyE = "32823" ( d  x+ l" V& r: O. l
LngKeyD = "20643"
* @; |9 `! Q9 e" l; s4 ]& L3 LLngKeyN = "29893" 7 U, a% Y9 `% i2 _) n
StrMessage = Message
  A% L2 x+ t, A8 X& D; YSet ObjRSA = New clsRSA 2 s5 H; f+ e) _
ObjRSA.PrivateKey =LngKeyD 7 o& u; U0 z! F: s, I6 G& T. V
ObjRSA.Modulus=LngKeyN
# l1 g! \7 t4 ^% n" pdecryptstr=ObjRSA.Decode(StrMessage) ! @5 u1 R! b# ?, O+ j
Set ObjRSA = Nothing " u' o2 A1 a3 X1 n# N- \6 F! l
end function
6 D0 r% q% |9 z% i5 \; j%>
3 e% R$ j( `( i' l+ Y* y===============================================4 D& H9 T# J4 G
0 f5 e1 j& ]0 }6 K& y
还有一个用于测试这段代码的test.asp
2 S4 V: k  t/ l. F$ }- N2 t$ J4 i) r有兴趣的自己搭建个IIS测试下- j# w3 Q  \& L8 J1 ~
<!--#INCLUDE FILE="RSA.asp"--> 3 U8 y$ H9 O& g, d7 h4 k
<%4 F6 D4 n9 z3 s! @* k& t
function Encryptstr(Message)
/ P6 z' M- N+ yDim LngKeyE
) A8 q$ u6 H& I' u* @& b$ t) |Dim LngKeyD
% V: Y  K5 A; x, p2 aDim LngKeyN
' {! a& L+ P( @3 Q1 |/ K) Y$ g7 ZDim StrMessage ' l6 x( P. n, U3 T
Dim ObjRSA
/ h& T, a# g( K3 p% o$ D' w3 GLngKeyE = "32823"
& H% G! z% {, OLngKeyD = "20643" ' p5 F6 k2 U1 g+ m4 e: [3 P
LngKeyN = "29893" ! l# ?6 w, ^4 n. C
StrMessage = Message ; b* H2 Z# J/ \" S  w, v
Set ObjRSA = New clsRSA
/ h  F6 R7 K# b$ ~ObjRSA.PublicKey = LngKeyE
- P" Q3 p7 p8 T: L! C9 LObjRSA.Modulus = LngKeyN $ f" U/ ^3 G+ `7 C: c2 A4 P
Encryptstr = ObjRSA.Encode(StrMessage)
6 }) F3 W6 K! ^# G+ a0 H0 R. ^Set ObjRSA = Nothing 2 h$ n1 F# ]7 D! f- v
end function
  F! e$ I2 p9 i. `. efunction decryptstr(Message) , j; J1 T. ]7 ~8 J
Dim LngKeyE
# s; o# J, V: E  ~6 _4 uDim LngKeyD
( y+ ?4 I9 k1 c% Z; WDim LngKeyN
$ ?+ Q9 Y4 V5 _+ N1 w6 {" pDim StrMessage
" ~% j: c. ^1 b1 [. n( C! bDim ObjRSA
: U) `' A. W0 s+ d9 M1 KLngKeyE = "32823"
/ r) D2 U, O+ p; M( `LngKeyD = "20643"
& c* y# Z. K1 v* KLngKeyN = "29893" - @" G" t$ |: K: w5 q
StrMessage = Message
/ U3 B/ Y" ^; |- h9 b9 ESet ObjRSA = New clsRSA , @2 f9 y0 y. X3 u- B; s
ObjRSA.PrivateKey =LngKeyD % o% w0 [' t4 F- z0 P7 o) j) G
ObjRSA.Modulus=LngKeyN " Q/ f* {- ~* A* l  {" {
decryptstr=ObjRSA.Decode(StrMessage) ! \2 X- X% F6 Q& Z* J
Set ObjRSA = Nothing
8 q1 x+ I4 `0 G, P6 Jend function + D$ a! C" H5 s4 x: y
dim last,first
8 x& A' J8 r4 m. Z+ efirst="!@#$%^&*()" ) h/ V+ m9 G1 C5 W  Y8 E) G: i' X% S' z
Response.Write "加密前为:"&first
& J1 F$ ~" h+ s7 qlast=Encryptstr(first)
; M: f5 \% T  Z$ u$ JResponse.Write "加密后为"&last
* o# Y* r% I0 H. BResponse.Write "解密后为" &decryptstr(last) 4 E% \: {- w  Z) W- o+ j; c1 n
%> ==============================================! r+ M8 y+ R. m
剩下的就是字符的对照表了- @! l% a* O1 F
===================字符集================
3 V7 i# T5 m9 D* b5 e  W0 G) c5 P1_____6EBB# ]' @. d. J$ }, b. t9 ^
2_____5C1F+ G% r# y6 z8 ~
3_____4D758 [5 m) b* H+ i
4_____26CC2 G7 N7 `4 B$ n0 E; e& S8 b: U
5_____4F881 X, [, L  O0 W% h! s% y0 K
6_____3F4E7 c- Q" w+ i0 n' L
7_____0A9D
1 L9 B. @* a& B0 J' m: U4 x. Q8_____1A1C
" a; Q$ l9 b, l: X9_____6D20: I; Y' o6 q) B: M8 I7 C6 ~. P
0_____1089
  i/ S$ Z' s$ {1 Pa_____0F3E
/ v/ W: v! b* P' u# n8 L! ub_____3159: {9 U: x# T. @9 h, x) ]
c_____3517, D; x  S# [; n7 A! N( l
d_____419C
: c8 m) N  ^9 N) Y* k: E2 j* ie_____615C
5 M8 P: I9 h7 @/ Y8 h; L0 p7 Nf_____556F& N7 r2 y. y# ?6 T
g_____2B7F
6 E- ]- X, f  @( B- jh_____0F9C
! X8 {. N# K; f  ]( li_____00FA
, a  c" {! k$ k4 J, M6 b6 Cj_____5A50/ \* B% a( i! q, p' e
k_____2850, a, h& W" C' ?$ s
l_____3E7B
$ M" L9 ~- m+ _9 d& }" im_____71C5
; f$ ~, M, C6 C2 x/ D5 on_____1FC84 a, O, j9 y8 I- L4 }3 D
o_____74C1
7 Q  c3 c  n+ C' Ep_____5FB8
5 ~' N; u0 G5 sq_____60855 z' w" l" S7 F3 T: X
r_____3AC4
* V5 Q8 z2 ]- @: {% I; S5 is_____2F50$ r9 l3 X, S1 L, r$ y4 [
t_____36F81 h' h7 d3 }! l2 F& s9 l/ h3 g" ?
u_____7010- A9 o. b, M2 ]3 U  A
v_____0B42
. O2 C; ~  e1 O7 `3 v2 Zw_____1C7A
+ s$ l1 _9 C, |6 P8 B5 gx_____16F8
, x/ C; T% e$ D: T1 [" sy_____2EE7
8 n, p+ g$ ]3 Z- R/ ]6 B; fz_____5CF3
- p; V% ^! F+ t3 h5 n+ O% P!_____62333 D0 W3 w# @0 b: p0 i2 c: b; l2 s
@_____3A45/ E3 j8 J$ r  a& q9 c4 O% |0 T
#_____22917 {. D: n! w* i
$_____5D5C
: C- e( y$ o- P! e%_____09B9
4 {( x' r* Z& h+ P% p6 S/ |6 E' o^_____43EA
  E) b* P7 s7 [; j( }&_____62B9
! E, [3 w! F, b7 G* Y- F*_____6301" X; b- n5 B& h* Y' G
(_____4659
7 x: U& T  i* ]. z3 g9 Y* v" B)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表