返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
+ F/ S7 `! z& @' [& W- d. u8 N- R原始出处:http://www.3ast.com.cm
8 a, G( H. }* e0 Z" c# s$ M9 J4 ~4 f! \& Q
看不懂的直接绕过% u! L1 I( {. t, r3 w
加密前为:hwy123456
0 \. m. w& a% I9 L- ^- J加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
; b9 {! a8 ?  k# E$ B4 O( _9 H* K) Z! S% @3 S  W1 k) U4 Z! R
============================================; u$ @2 N% j( r
上面是当时自己校内的心情。现在已经解破出来了,分享给大家& u" `) Y9 h. J( M1 Z
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法! l6 s" ]- Q& Q7 Z  f% S
以下是RSA算法文件
# t% v! b. ^( m0 q3 M( _& g, ^" \  _) V6 q" |5 E( n+ F5 d3 c7 k
文件名RSA.ASP7 W; M  o; K% k& q6 q) p
===============================================: a4 w7 d" L' I9 b: K' C& _
<%
6 J" t: |8 j2 @Class clsRSA ' X3 W9 f; }5 Z, \+ B: S" @
Public PrivateKey 2 r  ^+ V  n& l" _
Public PublicKey
4 W* u, m0 c4 u( K5 y$ GPublic Modulus
2 j' @- i( J3 S# O7 _Public Function Crypt(pLngMessage, pLngKey)
" \8 l. F& o2 ?) {0 g. J/ g; q2 JOn Error Resume Next 5 }, \" V9 b  N' q. \
Dim lLngMod
( D, m1 m* ~) P: {Dim lLngResult
# C% h7 g9 q) A# r5 M1 P9 V. \Dim lLngIndex " |; }: T& Q) B1 R
If pLngKey Mod 2 = 0 Then
5 Y: p; {0 o: U/ ?1 u& zlLngResult = 1
, u1 Q! G: G$ s' G3 V% i, AFor lLngIndex = 1 To pLngKey / 2
2 x9 G3 X: p- G; T1 l- slLngMod = (pLngMessage ^ 2) Mod Modulus - E& n6 w5 I" R) A' U
' Mod may error on key generation % I2 }  G3 i0 ]7 x# M5 h! P; F) m/ ?
lLngResult = (lLngMod * lLngResult) Mod Modulus
5 M' o' m2 [8 _+ ~1 XIf Err Then Exit Function ( L2 I1 {( G& x2 h- [) B
Next
, F3 I1 m  T! l/ ?' nElse 4 \7 U, s; }- @- h, ?6 T/ p" f
lLngResult = pLngMessage
; |7 r: V" A4 V4 v3 f# Y$ kFor lLngIndex = 1 To pLngKey / 2 5 H/ v8 Z( `- E" E2 j
lLngMod = (pLngMessage ^ 2) Mod Modulus
+ `" ]' R+ ^- T9 q. G; bOn Error Resume Next
  `2 w( T% P/ ^' Mod may error on key generation & V* ]" E: |% e! v: L$ ?/ G3 ]  _
lLngResult = (lLngMod * lLngResult) Mod Modulus 4 c2 S  s1 N) T  F8 V8 \' F
If Err Then Exit Function
+ g) O0 s8 z' ^9 S) \5 N& VNext
4 Q7 X7 R' V7 V1 X7 \End If
2 k6 E, [& V8 ^+ w4 ACrypt = lLngResult
% \# C8 [+ _2 M$ REnd Function  W1 A/ t6 O- X1 Y* {/ |( t" F
) z: L6 r6 S  ]( Y: l6 ~
Public Function Encode(ByVal pStrMessage) , ]& E! M# L( _* Y* W6 _
Dim lLngIndex
5 S! z! |/ {& j3 _; e' F; }Dim lLngMaxIndex
/ V6 {8 x0 ?$ R$ T. RDim lBytAscii
  q, G+ D, X' e. ~+ ^, @0 ]Dim lLngEncrypted
, ]9 r5 n( B! z6 DlLngMaxIndex = Len(pStrMessage)
5 a! S, s. L! e: @: sIf lLngMaxIndex = 0 Then Exit Function
6 }9 Y, ]( U$ \1 F2 dFor lLngIndex = 1 To lLngMaxIndex * {2 l, A3 _( ^9 }6 n6 t, K
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) / i7 g9 E, _1 c% h) Z
lLngEncrypted = Crypt(lBytAscii, PublicKey) , _$ L3 }# U5 i7 C+ [
Encode = Encode & NumberToHex(lLngEncrypted, 4) ; Z$ ?  {/ j( e+ P+ Y3 v. r( V
Next 6 b0 K0 C" m# {% n
End Function
# G7 I+ K! k* l6 T+ Q+ NPublic Function Decode(ByVal pStrMessage) 2 H8 P  U% Y2 b& t6 j  ^1 @, k
Dim lBytAscii
2 I& ?+ C7 z3 G& i5 B0 Q# PDim lLngIndex
" m3 o; b& g& N0 zDim lLngMaxIndex
8 ?, S2 i- t9 M  n0 F! o' PDim lLngEncryptedData # L" h, X) C3 |# Q# K
Decode = "" % A3 y9 j& [$ m/ ~% y
lLngMaxIndex = Len(pStrMessage) 3 a0 G  X3 `( Z% ?1 R0 W" j# g
For lLngIndex = 1 To lLngMaxIndex Step 4
! p( K' o$ a1 a/ clLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) & {% o3 Z8 q8 N2 [& Z
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 1 N  v- N: [8 f7 Q- J* _
Decode = Decode & Chr(lBytAscii)
* S5 L9 q+ ~) x" B% Q7 vNext
( \+ J+ h9 y- a4 d' x6 t( a& _: @/ J  `End Function
' {6 h  l3 u3 c; ~# e2 W2 iPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 \9 X* Y& T6 |( @3 `# o1 X
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
5 R* J1 A5 L# I* G5 }- \) QEnd Function % Z! s4 b; L! ?
Private Function HexToNumber(ByRef pStrHex)
3 Z0 G5 _+ f# N* XHexToNumber = CLng("&h" & pStrHex)
  ^$ I6 o5 n2 u7 H% ?$ [End Function $ g" @2 \: N8 [- Z2 f. z/ ~
End Class 7 G8 p" c3 U+ J$ u4 O5 ?, ~
function Encryptstr(Message) , P5 Z. r" Y8 e& j1 P  [
Dim LngKeyE
# r$ W: W  z' S  L* G4 NDim LngKeyD / Z4 J* y5 t+ g6 L
Dim LngKeyN
1 A6 i: n$ T% J, {9 ?5 J) IDim StrMessage
6 S) w9 q* |1 KDim ObjRSA - V% V  Q0 P' l- V
LngKeyE = "32823" $ D/ c/ u! q- G  l$ F+ u* {8 Z6 r
LngKeyD = "20643"
# Q1 J' h# W0 dLngKeyN = "29893" 6 P* y4 H) P) X8 l) w6 [: g, \  ^% L
StrMessage = Message # m1 ~8 r% ~* `
Set ObjRSA = New clsRSA
) y0 z! p. P: i* o. G* p, uObjRSA.PublicKey = LngKeyE 6 |$ E  l( \9 v0 w. I
ObjRSA.Modulus = LngKeyN
4 h5 O/ k, H/ g& EEncryptstr = ObjRSA.Encode(StrMessage) 8 a! r3 W0 i' y, ^7 h$ q! J* W
Set ObjRSA = Nothing
1 H' d7 D- P8 A# p: u3 j. D: G# Vend function- B" Q+ p# y+ w( l# D; q) E
Function Decryptstr(Message) & w; o4 ~2 ?( ]* g
Dim LngKeyE : ]# j+ i$ x. K1 X$ m7 X% m! A
Dim LngKeyD ! U, a9 z) @9 p9 [
Dim LngKeyN
0 D4 d) d- Y9 aDim StrMessage
( ~. Q7 _# ]& l2 gDim ObjRSA 1 d' t0 Z  p; J# O/ B* a, s: {
LngKeyE = "32823"   }, B4 `. ]: q$ F/ L( u7 ?
LngKeyD = "20643" . w5 G& T. U. \" P9 h
LngKeyN = "29893" / e/ @4 e' E+ g
StrMessage = Message 8 U" B& B$ S  H8 _
Set ObjRSA = New clsRSA 2 ~2 B$ c" B3 U- F& t: J7 o- q: M
ObjRSA.PrivateKey =LngKeyD 1 h/ _5 C+ d, n  T* P
ObjRSA.Modulus=LngKeyN , d" s- M9 I+ T3 x7 R
decryptstr=ObjRSA.Decode(StrMessage) * A: {2 m- U; k5 q- D# |
Set ObjRSA = Nothing
, W/ w+ J$ V7 a, g1 R5 |end function
& ~2 M9 T& o) M0 v%>
( n; |  M3 V7 w7 `===============================================: q  b# U# J* b+ s; z
) k2 j4 Z) t& Q% ~; @9 U) t- J% m
还有一个用于测试这段代码的test.asp
$ ?0 i. z) ^" L0 N. |0 z6 i有兴趣的自己搭建个IIS测试下
2 j0 Y; X3 h* D( c& n7 u3 ^& B$ b<!--#INCLUDE FILE="RSA.asp"-->
3 Q# E6 v" j# m; T) Y0 X" o" X+ c<%4 r$ t8 }% e  b, p  v% i
function Encryptstr(Message) 7 W+ C4 D1 V; Y
Dim LngKeyE
* O$ T4 `! @( X+ F4 K- {7 JDim LngKeyD
0 v$ N9 L" G4 t- C) A" tDim LngKeyN
! q8 c$ A0 c  l& sDim StrMessage 2 ]7 E, I2 [' T
Dim ObjRSA
. P+ H9 c  {* q7 d- ]LngKeyE = "32823"
7 x; D1 L+ ?7 J$ o. QLngKeyD = "20643" / s9 @) S# _& f
LngKeyN = "29893"
7 r) W: \9 ?: i9 y/ P6 p9 {StrMessage = Message 1 B* A+ a5 e  F% e
Set ObjRSA = New clsRSA , z2 d! H5 E2 r& T
ObjRSA.PublicKey = LngKeyE ' A/ I( P' h+ c) z
ObjRSA.Modulus = LngKeyN + Z% o) M3 N( u! P8 C) |1 @
Encryptstr = ObjRSA.Encode(StrMessage) / }! ~% L9 o1 U1 q3 O
Set ObjRSA = Nothing
9 N0 R5 j1 r& N& Cend function 8 c* R9 {: F! x1 t9 S
function decryptstr(Message) + d3 d/ Q: L2 x9 ^
Dim LngKeyE
, N, [3 \2 ^% A, w( F, _) O2 B3 LDim LngKeyD
; x- x; C# z' |, @, t" e" n# _Dim LngKeyN ' N. Q6 w2 P; y
Dim StrMessage : ?" n. }' l# L- \7 g
Dim ObjRSA
. S( [1 a, ?8 s: [& X  \LngKeyE = "32823"
$ d/ h( v: F1 @/ ]: q6 JLngKeyD = "20643" ; I6 S, c' e6 G* O& _
LngKeyN = "29893"
5 a5 x9 |/ A. c& m* W( iStrMessage = Message . k. p! M0 x/ U; P% R# h3 L
Set ObjRSA = New clsRSA * J2 y3 v7 E1 x# B
ObjRSA.PrivateKey =LngKeyD
! h6 j! c+ K/ T' VObjRSA.Modulus=LngKeyN ! n( D* W- i: I5 @- s+ w
decryptstr=ObjRSA.Decode(StrMessage)
$ i9 G7 a3 D. q( |- V8 a  nSet ObjRSA = Nothing
7 D3 ~8 f) U0 q8 D  Eend function ! A! v3 e! H* N/ U2 Z  A/ i
dim last,first
  x/ v. U* O0 d4 y* ]0 B7 Tfirst="!@#$%^&*()"
2 H( i$ T* [6 ?% m# u# c" `0 r3 @/ ZResponse.Write "加密前为:"&first   z/ {5 y' O( Z* b
last=Encryptstr(first) 1 M! ], M. @) v% j" N" a% x
Response.Write "加密后为"&last ; A" f; c+ e7 w# z( z' u' Y
Response.Write "解密后为" &decryptstr(last)
, D: H8 ^4 j' v8 N%> ==============================================# A" ?- k3 }1 s! N, |0 ]
剩下的就是字符的对照表了6 A' j6 j- \- Q3 V
===================字符集================' i0 l1 S' _+ }" O) _: g
1_____6EBB
* U5 L) `9 w. t% i2_____5C1F
% r4 ]& }- }2 P, w; W1 E# y3_____4D75) y+ n( t: e- e/ R! q
4_____26CC2 g6 c6 q1 s- u
5_____4F888 f6 G- C6 O' A  o( o
6_____3F4E8 w! B1 a; D4 n8 u& O% X: B
7_____0A9D
1 _6 v  O" K  Y2 {! X- G0 l5 {. |# Z' h0 u8_____1A1C
- H9 U1 @; }3 j7 I: a  G9 f3 T9_____6D20+ Q6 D5 l: h, E; p6 {! r/ D
0_____1089
- T) u9 j- G# h: h. J  ka_____0F3E+ ?0 _& F6 h7 Q! k" m
b_____3159
7 `+ ?3 G4 u) ~% G" r, Hc_____3517
/ |# e/ D) t( D. Vd_____419C
1 {  Z: s; w, P& c: G  @e_____615C3 R3 G+ F3 z- l" A
f_____556F
/ y2 G- ]8 ?7 V+ j$ i4 b. k+ ng_____2B7F) n2 q$ X3 f0 e" I$ N% U
h_____0F9C; e5 a" F8 S; b  s* U0 C4 s
i_____00FA) g2 w3 M: k4 z$ v$ u# L* H. C
j_____5A50' X" n. v% F1 b8 {
k_____2850
  J. k0 c# B% L8 Ll_____3E7B  N! O6 Q( D3 v* M5 j
m_____71C56 z  s$ X  T! K" h4 c3 I
n_____1FC8
, S) j6 _+ c' r0 ]. ]2 D* h/ ]  v) wo_____74C1  Z* z2 _: F4 e% j
p_____5FB8
; N8 L7 z8 S. A: M* P1 mq_____6085/ j( Z% o( n# |6 A% Q3 y' r
r_____3AC49 y. e3 {; R% l0 p- v0 S9 g
s_____2F50
" ~3 S; D+ @/ C( y" X- D' `4 T6 G4 Rt_____36F8
! [' w$ o, o% `1 Q( }u_____7010. k, L4 `; m; m* u6 Y( i! B4 \
v_____0B422 H: q6 `" d  S. s
w_____1C7A9 s4 o+ w9 {6 t( I8 \0 V2 `3 R
x_____16F88 _0 f" d! I3 D2 z! W0 U# u
y_____2EE7, @9 @, o. M: m& |
z_____5CF3* }" i- e+ o$ M/ v
!_____6233
; U, m: w6 s6 v@_____3A45! ^% s- ^8 \' B( F0 G; c, H
#_____2291
5 w$ r% K2 \; x6 n; P$_____5D5C! g) I1 y& L6 x0 e
%_____09B9- H' q2 l; ~' ~' T. s1 n& J( a( C
^_____43EA
  U2 I0 c% I% N&_____62B9' P6 b4 U2 O8 ]. k
*_____6301
! I: T/ q- t+ k0 W" k& _(_____4659  X7 I' ^. x! Z8 ]* R; Q0 c
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表