返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm' _9 y/ s# t9 w# S. b6 D
原始出处:http://www.3ast.com.cm: h2 j* w( A, L# b" ^4 N
5 g* m5 E/ @) h. O
看不懂的直接绕过
7 k0 P: _9 O( D9 W8 K/ Z& |4 h4 D8 K  M加密前为:hwy123456
9 u$ F0 u+ _+ g加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
- \' \. @8 t: @: B$ L
, ]6 A' A% D! l9 T5 D7 R" |) S8 Y0 v- O============================================' N" z$ k0 C! w' Y/ {( p
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
5 q# g2 j; o. H( e/ c; L8 ~也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法$ j5 q8 @* T  X! F' l3 z  B
以下是RSA算法文件" b' L$ z( J8 v' M! x2 m
4 a) H* M* A* d5 ~
文件名RSA.ASP
6 R4 @! N$ u1 I' }6 \% r7 l  O- }===============================================
7 Y, P. I6 B* k" \<% 9 N& n9 Y' c) u& G; z+ B
Class clsRSA & g5 C1 u8 @* j, M/ ?
Public PrivateKey
7 K  @' I2 J$ a/ vPublic PublicKey
; \; W3 x- g; |! d8 dPublic Modulus
) i4 Z1 ~2 q* i* \$ ~Public Function Crypt(pLngMessage, pLngKey)
: `3 _' r  u: h0 ^' ~+ H9 L9 vOn Error Resume Next 7 r3 O5 F7 P7 Q# Z% c% J" y
Dim lLngMod ) N- R5 s( Y( \9 g; ~' ~
Dim lLngResult : c9 Y6 b2 S, W$ C- K5 E! ^
Dim lLngIndex 9 k% h7 R; v" I; I2 n1 [0 R1 N
If pLngKey Mod 2 = 0 Then 2 K# u$ k0 `+ Z0 L. y* n
lLngResult = 1
" u/ Z3 T: ?( e: T9 h; f# h* xFor lLngIndex = 1 To pLngKey / 2
; g- x* j$ y8 w0 g) v2 QlLngMod = (pLngMessage ^ 2) Mod Modulus ) ~/ E6 i, x% o) j
' Mod may error on key generation
$ {# P- X2 o7 ^lLngResult = (lLngMod * lLngResult) Mod Modulus
; T1 h7 W  n7 }$ g9 s( {& mIf Err Then Exit Function
) I( k0 ^2 t- I. K4 sNext ) W% P, V! ~' ~/ t2 W
Else - u5 @. v7 J2 a: r  u8 \; n
lLngResult = pLngMessage 4 Z  v; R" n0 F' j. T
For lLngIndex = 1 To pLngKey / 2 & h; {9 q) t% P6 g6 E
lLngMod = (pLngMessage ^ 2) Mod Modulus
( G% d# _1 i% c: y" GOn Error Resume Next
8 Y9 t% i) L; I2 }( d' Mod may error on key generation
( W7 n/ K1 v" F0 e" zlLngResult = (lLngMod * lLngResult) Mod Modulus ) b0 m& ^* ~5 s) L( j
If Err Then Exit Function # M$ e5 `+ j. W; q( z& c4 X+ k/ v
Next 1 K' K) Z$ _3 q* Z
End If
8 F; G8 {% {) v6 ZCrypt = lLngResult
$ \- S. ^3 i6 `; q0 dEnd Function
+ M. ?. P/ P, H# m2 V& J5 a1 M+ j9 _+ Q, \- q2 f. h: h9 K1 I/ {
Public Function Encode(ByVal pStrMessage)
* |( u- y8 j# Q4 C2 r$ ~( lDim lLngIndex
, U* ^, m5 H; t4 |5 j4 ^Dim lLngMaxIndex ) y, R' C6 J& {
Dim lBytAscii + U, `6 e% t) i) h3 U7 I
Dim lLngEncrypted
4 G8 ]9 g1 F& |) n2 n( R7 ]lLngMaxIndex = Len(pStrMessage) & b: o& D; {3 H+ k, M
If lLngMaxIndex = 0 Then Exit Function # W: K0 T/ ^7 t+ v) W! ~0 D
For lLngIndex = 1 To lLngMaxIndex ; [3 i  Z* F; F, i+ ^4 F9 g( A' p# n
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
2 s! c! W8 ~! \4 m6 S5 o/ S$ ]lLngEncrypted = Crypt(lBytAscii, PublicKey) % w$ r& ?* h8 M7 V7 M8 h1 o
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' B2 J8 K, F1 L! X6 F' U4 H! f" XNext
0 H" b  X' A  v( h1 mEnd Function 2 |' v( q+ y& U4 a  K, ^
Public Function Decode(ByVal pStrMessage)
: l' a: Q8 O0 ~! _6 u/ z: z! aDim lBytAscii
' B2 l4 _( ~1 wDim lLngIndex 5 W' U& R7 l' ?* @( i) J2 S) q' T- c
Dim lLngMaxIndex , \- j) z. M. X
Dim lLngEncryptedData
7 `% m, Q9 h" Z9 VDecode = ""
5 }0 I2 s8 K1 e. J* hlLngMaxIndex = Len(pStrMessage) ' ~& M, w  _' h+ F" Q# u' s
For lLngIndex = 1 To lLngMaxIndex Step 4 / C9 u) t6 F; j, |# \+ X* D
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) - L7 V3 V9 H% l9 A8 D. n
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 3 S: ]" `; i0 b' l4 l! J
Decode = Decode & Chr(lBytAscii) ; k$ g' x/ @; F1 G% N1 f
Next
+ V; j+ w, |$ _; `End Function ) _$ ~3 J  H$ R, @" m4 h. d
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 E! j$ k" w4 W0 c9 j+ s; d: y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
. ]8 i( x/ Y$ Z0 }4 f8 b/ p& ~8 `End Function
/ k. N1 p+ I# @$ ]" R8 hPrivate Function HexToNumber(ByRef pStrHex) $ }3 O3 T, g$ W, P5 `9 Y
HexToNumber = CLng("&h" & pStrHex) 9 G8 V7 p3 c" W" w1 j  D
End Function ! ^' t' s$ s1 E
End Class 4 E- J5 [6 A( m$ d) e
function Encryptstr(Message) 2 k2 L4 E: A1 r* q
Dim LngKeyE 6 x7 P+ K, {) {( r% X/ d# W5 p9 Q
Dim LngKeyD / L+ x, ]5 \  g5 s% p* j
Dim LngKeyN 7 o! r( h' K+ d+ u& E7 Y
Dim StrMessage
. f/ y: y5 m" q( }+ P; YDim ObjRSA ' G( E8 V: ^1 o* o$ y( @
LngKeyE = "32823"
+ ^3 J6 e3 s0 N' n& y( ^0 U1 nLngKeyD = "20643"
: F; Y2 ^6 i$ w8 w1 ^LngKeyN = "29893"
" w: T( F; F7 @7 B- Q( r1 x2 wStrMessage = Message
: E6 L1 K5 F, Z4 S6 n8 {2 Q1 rSet ObjRSA = New clsRSA
) B  K# O# }" tObjRSA.PublicKey = LngKeyE + X/ @8 G  b4 J+ {8 d8 X- _. D
ObjRSA.Modulus = LngKeyN
0 p% v6 v* _! B& O! ?" |Encryptstr = ObjRSA.Encode(StrMessage)
& O7 Q4 ]. R/ k4 _Set ObjRSA = Nothing
5 b9 a# A  j  ~* g; t; C8 Yend function* m0 j* G3 m' k2 P# I. W
Function Decryptstr(Message) % W" u9 Y8 H7 ]. `& F" s, h
Dim LngKeyE
5 v7 y8 p# N% \  q6 lDim LngKeyD % _# g( E, i1 y! N  x
Dim LngKeyN 4 g* X! w6 V/ J' {4 k. ^
Dim StrMessage
- g: {/ o7 w& x% P- z. l8 z' [Dim ObjRSA
* {( \! |" F+ U! T8 \2 cLngKeyE = "32823" , W2 {  T8 M! S4 r- b
LngKeyD = "20643" 6 e) G7 o9 h, {; q
LngKeyN = "29893" & R1 P9 l  u, H: _; G+ E
StrMessage = Message / X& `( l2 ~/ D' k
Set ObjRSA = New clsRSA
, I$ r9 _/ Y5 {- @4 P2 R1 C6 UObjRSA.PrivateKey =LngKeyD
, X- P0 }" L0 C8 u2 h  B, aObjRSA.Modulus=LngKeyN 9 V" n* N! ]  }/ g' D
decryptstr=ObjRSA.Decode(StrMessage) : ^  w9 w# ?7 A
Set ObjRSA = Nothing : k% r# ^5 j* a4 \, r8 G
end function
- \7 k0 f! y9 k  v%>  V9 p/ a- X6 c8 ]5 M
===============================================" a3 R2 C( c) _8 n+ d2 x1 S) S) k
* S6 N4 I/ l' |& m; O. ]
还有一个用于测试这段代码的test.asp
4 ]9 S! g9 r, z- o4 T) Z有兴趣的自己搭建个IIS测试下3 b% n- a3 T5 T* L. q' d
<!--#INCLUDE FILE="RSA.asp"-->
- I; T; O1 x2 C<%* d; O+ e1 S) t: b2 m9 o6 S
function Encryptstr(Message) 1 n% ?! y$ M, b9 P+ L  i
Dim LngKeyE
! @. F# n! i: [- y% BDim LngKeyD
1 [5 q- X" v0 Z" xDim LngKeyN : [' `3 p: W/ b' H# R
Dim StrMessage
& P+ Z; c; E0 g- e5 i) lDim ObjRSA 8 O. v$ }0 f  v) x% \9 n
LngKeyE = "32823" 5 }: z6 t/ H* n, |! G$ |
LngKeyD = "20643"
3 E. \" x+ k0 G/ t' O  fLngKeyN = "29893"
3 P# o% q# t0 u, Q( s/ B0 UStrMessage = Message 7 Y0 d$ g/ ?$ {" t/ p
Set ObjRSA = New clsRSA
" T. a3 h% T. e/ }' |& l. {3 vObjRSA.PublicKey = LngKeyE # h5 v+ V/ R8 z6 A
ObjRSA.Modulus = LngKeyN ' ^  t5 W' l; \/ f- p' {
Encryptstr = ObjRSA.Encode(StrMessage) ' u/ h4 [* M) a# r! |
Set ObjRSA = Nothing
& d( ]# s' B& S) i% q' b$ Y& E' Tend function + j  w7 I! x5 u& q7 t. E# B
function decryptstr(Message) ) x. q, h& {% Z" f) l' U7 _6 y* o
Dim LngKeyE
( ~+ K1 [: X, p- a* b8 SDim LngKeyD $ `+ A; n( v6 H. Y$ X
Dim LngKeyN
. U+ }: p  x& X& ~# v; J( gDim StrMessage - Z8 D4 j2 ]0 K, L, b* {& U
Dim ObjRSA 6 U% B# R, D2 ]2 r/ Z" C% x9 ^  h
LngKeyE = "32823"
+ M; k' _9 J* W) u* S6 N" JLngKeyD = "20643" 0 M; ^) z$ R2 ^/ ?( l5 F0 Z5 t
LngKeyN = "29893"
2 y1 K4 @' l3 S8 F! j4 ~+ m( m6 nStrMessage = Message
+ [1 M! `+ h9 H: L  P0 DSet ObjRSA = New clsRSA 6 h  y* i! z% ?8 |
ObjRSA.PrivateKey =LngKeyD ( [& h  H6 T9 A& j3 L6 \
ObjRSA.Modulus=LngKeyN
9 |: ?( m' o" ]decryptstr=ObjRSA.Decode(StrMessage) ( G: g. n, r- v6 S
Set ObjRSA = Nothing + w+ g- T3 b+ A% W
end function
' J9 d* D* k# n8 X- Tdim last,first 6 n* H* l( E  y; \
first="!@#$%^&*()"
; B! b! r: V% ]2 s; S; S/ UResponse.Write "加密前为:"&first
, e( M' v7 @* i) f0 t* p8 [* `last=Encryptstr(first)   O7 Q$ I) a+ M, u3 f1 L5 R: [% r
Response.Write "加密后为"&last % S9 A8 L0 o- F/ s# e# R. ~* s- M
Response.Write "解密后为" &decryptstr(last) 7 w: N8 Z2 U" [% L& }% \1 K( x7 ]
%> ==============================================+ @% V3 G/ l% T$ K
剩下的就是字符的对照表了
+ t4 r2 K: H$ j! D===================字符集================
) }# f; f: R! Z* E3 ?, h7 u1_____6EBB0 p% d- X7 a3 f. W6 m- J
2_____5C1F
6 P7 B  x1 j, R' N/ Z3_____4D75
, C! O6 c, d. Q" U4_____26CC
& J& o4 t+ E* X3 C5_____4F882 J0 a% n! l8 ]
6_____3F4E' D& p6 d) A* B$ F' ~2 K: e$ f) M/ V% d
7_____0A9D  ?# @! x5 |2 `% E
8_____1A1C0 M  j4 Y5 }8 o
9_____6D20
* I5 l# g) l4 A1 ?0 X8 @* h0_____1089
5 s5 G' P3 i7 i  A6 H0 wa_____0F3E
* M& W  E* b& k& \9 W7 w; Xb_____3159
! {: r0 E( |2 e* [2 J/ ic_____3517
3 p+ x: S& K9 N5 D. O# j0 Y, bd_____419C0 \( v- F" C) W, n, Y. m# ^
e_____615C( H- c/ @% J1 V$ t1 a9 b
f_____556F
6 f% V3 w8 M/ k: t+ @g_____2B7F
& D, w! \5 c) B% U* Z# ^, v$ _h_____0F9C  R9 l. @# a2 f3 S- V: V# |7 C: }
i_____00FA: E+ \- g; l3 P  _2 ~; _
j_____5A50
7 r! k/ a4 m3 X4 q% _k_____2850
& E3 M- W" Y7 r' K3 |- _4 Rl_____3E7B8 n8 ?$ R2 U8 i/ e
m_____71C55 p) H. s: t4 c' l; `/ y6 `1 L
n_____1FC8! ]. ^) ]8 x/ ]/ G8 C: j3 ^
o_____74C1( w8 p" e5 U9 E7 p0 G) ^! J7 R8 D
p_____5FB8
7 D% W4 L; u! zq_____6085  k2 Y' }$ A! r! b* c0 Z0 V) c
r_____3AC4
( w* R/ n" \: P2 k2 Os_____2F507 k$ A- N$ g7 c% e5 Q  F: P: I; a
t_____36F85 E. N0 ~/ \' i4 a/ T9 _, Q
u_____7010, Z$ [* \5 Z1 m1 t" k
v_____0B427 Q: Y3 X' p" @5 X9 Y( }
w_____1C7A0 [7 `+ G$ J  ~$ l" b* s2 T7 s$ [6 m+ s
x_____16F8
! t- R3 e8 Y, q; q  a5 D, V8 b- Py_____2EE78 k3 B' Q! _: X/ t4 L" @% R
z_____5CF3) I! S' z, I" z$ u+ S
!_____6233, }# @- ]1 ?- j
@_____3A45& b- w# z# H& i- v' k9 q5 _
#_____2291  T& s7 c8 I/ c$ u. H% o5 d5 d
$_____5D5C
" _; X2 w: j3 A4 @; I%_____09B9
' A' u, N# v, s  I/ N5 T2 Z^_____43EA
; \# a/ A0 M( x1 f" e% A* b: V&_____62B9
( i, r+ |* h: x& k8 c$ M; y" y/ c*_____63014 n& @' ?9 J+ v
(_____46597 Y6 |" z8 P, G
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表