返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
% J) e2 u9 c& b" T. a& c原始出处:http://www.3ast.com.cm
1 c; J0 M  m/ V$ p  S3 ~0 N6 F; m( s& M
看不懂的直接绕过. c  d6 o2 J; c2 a! s
加密前为:hwy123456
8 [% K4 R& {* ]  Z加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E! c* l& U6 }( Y' j# D; J7 }: A

0 `" X8 }) {; [$ G, `============================================4 t1 }6 \: `& F
上面是当时自己校内的心情。现在已经解破出来了,分享给大家6 i, H% q* y' o: l
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法1 X) j" E8 ^$ S! h
以下是RSA算法文件
  V* b0 G9 D" q7 ]+ M
6 m5 T7 v& c- l) D文件名RSA.ASP
1 w, f4 e0 i' r' L! X===============================================
& i3 N9 K% s& P" p3 H' J1 o<% % m9 r4 R, E$ `4 f
Class clsRSA
( n2 N4 C- F! Z' [- _Public PrivateKey
# @& L7 |. f- p$ L4 e" h3 X/ J! R0 DPublic PublicKey
8 z( }7 V; `7 bPublic Modulus
( H, a5 P5 r2 [2 `5 R2 f: i% N, WPublic Function Crypt(pLngMessage, pLngKey) 9 ], C: d  E# F: [! F( S0 `
On Error Resume Next , a4 x( B" ]5 d/ k
Dim lLngMod
6 K& P# {3 r0 b- {2 n) B, b0 vDim lLngResult
: q! w$ R3 U; X! |  k7 FDim lLngIndex ( [$ w2 l1 ^! ^% q
If pLngKey Mod 2 = 0 Then
0 P2 Q3 e! t/ \7 ~4 mlLngResult = 1
! ~4 R0 D1 R% B5 ]0 NFor lLngIndex = 1 To pLngKey / 2
$ |  S( _# S' W' xlLngMod = (pLngMessage ^ 2) Mod Modulus
. }& {% K2 s  [) D' Mod may error on key generation
  l/ ?; a$ K  `1 v4 y3 FlLngResult = (lLngMod * lLngResult) Mod Modulus
& b" M& U# K! F$ g  ]" ZIf Err Then Exit Function " B; O/ o; P) q5 v
Next
8 P: o( c' p: f7 \Else 8 X* Y7 H7 `# H2 k+ \
lLngResult = pLngMessage 2 d0 t5 R0 O1 _3 [% H+ V
For lLngIndex = 1 To pLngKey / 2
$ p- r- u" k" `( k' d% glLngMod = (pLngMessage ^ 2) Mod Modulus
$ |9 K- i+ h# o, K4 F4 T- COn Error Resume Next
8 h' L. D( }  Z6 _9 T' Mod may error on key generation
9 C; ^: q! W5 P' ylLngResult = (lLngMod * lLngResult) Mod Modulus
; H+ g( }/ v) X3 M( H2 [If Err Then Exit Function 7 m7 v$ h3 e* }( \1 F  i
Next 7 [2 S. a2 M" q0 [+ f
End If # K* q4 {8 d- W+ U9 u
Crypt = lLngResult
& C: H6 H& U. E: Y9 gEnd Function
) I% Z, T* h# s; K7 A; ]2 P+ M1 v1 m: r4 s5 c% `/ j. H
Public Function Encode(ByVal pStrMessage) 2 V0 c! x$ \# J" ^; R# B
Dim lLngIndex 1 Y0 r. i) P: y( @/ u) Z
Dim lLngMaxIndex ( t9 |; \2 y7 ?- h
Dim lBytAscii , [3 Z# J9 T* ~
Dim lLngEncrypted
& x8 B$ ?4 y1 H& O. a3 E6 v, X7 j6 klLngMaxIndex = Len(pStrMessage)
' X4 P% o3 x- f+ L; ~# Q) SIf lLngMaxIndex = 0 Then Exit Function
9 h4 K/ o  w# H; KFor lLngIndex = 1 To lLngMaxIndex * ~$ ^& u# ^# f+ v
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
, s7 T* g  i( D* F4 l& L% d/ O2 L* dlLngEncrypted = Crypt(lBytAscii, PublicKey)
# y6 |  Y8 c* V( z: N  V7 kEncode = Encode & NumberToHex(lLngEncrypted, 4)
: W' W; g0 O" I5 kNext
5 }! R9 p* Q# q- L7 k2 @End Function + K) y; |5 |2 R  G
Public Function Decode(ByVal pStrMessage) * h7 O- m( O$ L! K( W6 T
Dim lBytAscii
; x1 |- p6 y1 t4 E/ j" I: r* dDim lLngIndex 6 F8 Z7 }4 l) t" h; j# e
Dim lLngMaxIndex
: a  ?$ I: o4 z- q, f8 LDim lLngEncryptedData 5 Z6 `7 u  Z6 @8 Y. ]
Decode = "" / ~. k1 B/ e9 H3 w4 _9 D+ F: U8 E
lLngMaxIndex = Len(pStrMessage) ( u7 V7 V$ e2 {( Y1 `
For lLngIndex = 1 To lLngMaxIndex Step 4
3 V2 F  T6 M# N1 O. y, y! D9 ]: P1 {4 BlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- v* E! s' T' `+ N4 plBytAscii = Crypt(lLngEncryptedData, PrivateKey) 6 Q$ r, Y1 W" u# {$ e8 G
Decode = Decode & Chr(lBytAscii) , F" V2 N. n5 l0 g
Next 4 b. [0 a, P4 T, _
End Function
$ D8 G; a9 \! t4 x& `Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 2 B1 M7 H8 l/ n2 ]
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   f8 W. o# j  E9 V! K9 T
End Function & J9 H. o! m. h) E+ |4 m, c
Private Function HexToNumber(ByRef pStrHex)
3 x& Q" p. }3 }6 C- o" QHexToNumber = CLng("&h" & pStrHex) ; w- B! r. x3 y7 D; G, w9 ]& X
End Function # K* k7 c7 k+ k6 f; v7 `* {
End Class ! Q- |0 p/ v  t3 d% }
function Encryptstr(Message) 9 r$ U* g+ d# z  K! R' E, T
Dim LngKeyE
% Q" M6 J, x  e; oDim LngKeyD 9 N* C/ J1 x" B
Dim LngKeyN
# `" }! b0 ?4 WDim StrMessage
6 Q) o% I  d# x. P" F% aDim ObjRSA
2 d/ `' E* H$ E( l8 A* \, [# \LngKeyE = "32823" 7 S% u! s; K; R2 a) ^3 G2 W& _
LngKeyD = "20643"
8 y6 ], n4 [& t3 M2 x/ ^% w. G# L; nLngKeyN = "29893"
# q8 l& e3 p- W" U; p7 L) j5 SStrMessage = Message
; f3 E) \6 F" G" V) j1 mSet ObjRSA = New clsRSA
6 M. w% b6 R8 e' LObjRSA.PublicKey = LngKeyE
6 ?1 b0 e8 r- y" e; uObjRSA.Modulus = LngKeyN
3 @4 t2 x& G) a3 v; y" r% G) E" [/ iEncryptstr = ObjRSA.Encode(StrMessage)   X8 Q% t' \' l/ z, A7 i, y; n! y
Set ObjRSA = Nothing * \5 _, D$ a* @$ p/ R6 t3 Z; [
end function7 B5 K% z- x! t( U( x0 v/ I, s
Function Decryptstr(Message)
( p, U( s6 \8 {4 B( WDim LngKeyE 6 T$ F: t9 K4 z% _; N- F+ ^# m
Dim LngKeyD
9 |1 O" E* Z" Y& I6 J* oDim LngKeyN
; c5 F! _9 _; y, u: N1 Z+ WDim StrMessage
. q/ l3 y; r0 I2 M1 CDim ObjRSA , c* ~6 U9 |# |# Z0 C* {
LngKeyE = "32823" ; Q9 v; Q, t- c, F5 u/ M8 {
LngKeyD = "20643" * U6 J# ]% U) R0 s
LngKeyN = "29893" ( ^# U2 Q- r8 A, _5 e' f5 X/ P
StrMessage = Message " o  ~- Y2 _9 U6 n) Q4 w- r
Set ObjRSA = New clsRSA
0 ~7 _2 N7 o2 XObjRSA.PrivateKey =LngKeyD " p9 G( I3 R! V. o6 S" ^8 f
ObjRSA.Modulus=LngKeyN $ \. f4 E2 F4 e/ A- c. A/ e
decryptstr=ObjRSA.Decode(StrMessage) 1 b/ N9 A# i, Y+ Z9 ]! j
Set ObjRSA = Nothing - ]1 g. W& B/ d% _/ b9 ^! k9 U
end function
; M) M, c9 K. P: e- x7 a1 H%>
- F3 k$ p. A5 ~/ j- v===============================================
" k  P5 {( X# f+ _
' F* Q' O* U/ d  f, j$ I- r( ]+ n还有一个用于测试这段代码的test.asp
8 Z8 I* G- t% b2 ~! R& V有兴趣的自己搭建个IIS测试下
7 L3 @- s. Y9 i1 s! i% M6 _9 y<!--#INCLUDE FILE="RSA.asp"--> 5 B2 W( c1 @" n; O* D! D5 y
<%
0 N9 C' m; }- g8 r5 _function Encryptstr(Message)
" ^/ X4 y" ^/ K0 T. y# ADim LngKeyE
# x+ ^6 j; ~& v& R" \. qDim LngKeyD 7 S. q/ x2 J9 X$ Z+ V' c# U- T/ _. y
Dim LngKeyN * e: ^  d8 x( \; w5 C6 ]
Dim StrMessage , q) O; k: ]( B/ {$ {0 ^
Dim ObjRSA
1 J$ T4 T+ ]0 h' @; d, gLngKeyE = "32823" ; O% B* o; b1 l3 V% g, J1 J# S2 F
LngKeyD = "20643" . l6 b+ j0 G( q9 B" ~
LngKeyN = "29893" 8 n) X. @) [4 ~; {' u- M
StrMessage = Message
; N) ~+ Z7 D4 Z3 C9 p' CSet ObjRSA = New clsRSA
( X( G" e, ~0 R% J, P: Z1 SObjRSA.PublicKey = LngKeyE
& C. V3 Q3 V1 I& a! r6 M1 O3 F" PObjRSA.Modulus = LngKeyN
  a1 R- G( b" k+ _# kEncryptstr = ObjRSA.Encode(StrMessage) 9 |2 s4 N6 C& i% h$ `; w
Set ObjRSA = Nothing ; L7 g2 x: y2 s0 E* G
end function
9 v; M8 m: w* [: @) C& Jfunction decryptstr(Message) % }/ M/ R; t1 R4 G
Dim LngKeyE
# }4 s. y( ?3 y3 {Dim LngKeyD
( J3 d9 g, h. B& Q( lDim LngKeyN
9 ^- _! w+ B' n4 PDim StrMessage : g/ e5 z. Y) l& M, w. Q
Dim ObjRSA
$ i3 \! h" D$ K7 }$ E: vLngKeyE = "32823"
: p! w* w- j, ^0 E5 l' NLngKeyD = "20643" ) |: Y2 M, U" s6 J  m, [/ |
LngKeyN = "29893"
7 X+ a6 E2 X) ?: vStrMessage = Message
2 Q6 f3 r7 x! dSet ObjRSA = New clsRSA $ Q# B: u4 m2 D% K6 ^
ObjRSA.PrivateKey =LngKeyD
8 K0 B: P5 u1 \/ H% @ObjRSA.Modulus=LngKeyN ) s3 O% i3 P0 g- \! [# b
decryptstr=ObjRSA.Decode(StrMessage) 1 f) x3 `5 D( ?, s, V* G) v
Set ObjRSA = Nothing
7 A& e6 p4 \8 H  a; [end function   u2 Z3 N7 ]$ D
dim last,first
4 N/ g1 B9 P8 f* S6 vfirst="!@#$%^&*()"
, @0 N1 @2 ^2 x% r: RResponse.Write "加密前为:"&first
6 |6 y& ?/ c2 @2 xlast=Encryptstr(first)
, ~& y# x8 C# S3 f$ ]( ?. DResponse.Write "加密后为"&last ' F6 K6 \4 P9 y
Response.Write "解密后为" &decryptstr(last) 0 v0 Z: H" i5 }0 u9 ]0 k7 e
%> ==============================================* n5 [! v& i- J
剩下的就是字符的对照表了
# u; O- f) P4 ^. ~" U! _===================字符集================' O3 M. h# [5 |) W+ {: _
1_____6EBB( H0 ?" X# i+ T8 K7 u- w
2_____5C1F  [* I! l) y& \: F: y7 x
3_____4D750 M- z- k  h  @& {+ z$ c& j
4_____26CC
' a& z" A3 U4 h/ Q% ^0 R, E: b5_____4F88
; P) Y0 E" r8 P7 B$ k9 i" ~; n* o6_____3F4E! a5 l" A( J  X( r
7_____0A9D4 i% b  F, {% i7 ^" D6 U# o' _
8_____1A1C
7 I- D3 i$ t2 y) Z# I4 d9_____6D207 K4 @' C6 X9 H5 U; r
0_____1089
. W! H/ O  k! |% Qa_____0F3E; I7 {2 V* Y( F3 Y# h
b_____3159- d' ~" S- d! f" n
c_____3517
$ R$ ~  {7 K6 {; {+ Sd_____419C
: t7 e& N2 X" i* o% Q" X3 C8 `2 [: b# ^e_____615C/ h! X! ^4 @& g
f_____556F3 \4 \+ f( A& u. g; F4 A
g_____2B7F- w1 g. @6 u+ g; I$ t$ L
h_____0F9C; w" i9 c. r/ Z# B" [
i_____00FA2 ?  \# d3 U1 }( j
j_____5A50
2 Z5 k8 \$ u4 i7 Tk_____2850% Z) p' q' ~' z5 h% U
l_____3E7B
1 |) H5 ^' q4 \9 N! \m_____71C5
; P6 A% D, Y& k" P8 sn_____1FC8' v7 B$ d8 C" _7 F- L# h' D
o_____74C1
/ L: \1 l* f' e/ a) _+ J/ J8 p3 Yp_____5FB8
9 c, q. o7 v- S8 d: _q_____6085# [; z) w3 E" H* q7 {
r_____3AC4
8 S2 l  f, A7 V  f# R1 Os_____2F50
% K; \5 S& Q3 ?# Ht_____36F8
1 Z! q* V0 R5 ?6 A0 A) a6 [8 Lu_____7010
( t7 m0 j' l% W9 T+ jv_____0B42
& E  n, g+ C! s$ yw_____1C7A
. j3 P# D5 o$ I5 ]4 T# _) dx_____16F8
& v( L' R4 A4 G7 T3 \  Ky_____2EE7' f3 }" y, K' ^
z_____5CF3; b+ N9 p( ~2 |& I7 i1 U$ @9 ?, @
!_____6233! B  m- f* C& n( B& w
@_____3A45( ~5 u7 a! E$ p: F
#_____2291
8 f' ~, `& a4 m$ K, U# [$_____5D5C
' f( B+ Q( N; O9 ^, M%_____09B9
5 A2 F! F) o- r: \4 W^_____43EA
8 e. ?1 n/ M* w  D' F8 ~. l7 h( Y&_____62B9
7 f) k. `% s2 i*_____6301( F8 j: {3 g, J. H9 ]
(_____4659
; X- ^9 f2 ]7 }1 H1 l+ N1 u)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表