返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm, u! ]: ^1 @* \" ]8 J7 \- E: \
原始出处:http://www.3ast.com.cm
2 g' @8 B6 U6 d" W
6 ^# r, E: M: J! w$ O6 U看不懂的直接绕过
8 \: t3 o6 c% F* C* z+ V/ |加密前为:hwy123456
# L" Z8 H  |; ]8 i# o4 W8 A, n* G加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
6 H5 p1 j* s. D2 Q3 t, d4 W+ p: ^; v$ I" H# @9 \1 _% u. h
============================================
0 i0 E- n- |) h7 J$ m" b, c4 a6 P上面是当时自己校内的心情。现在已经解破出来了,分享给大家: {& o/ Y" E- b6 q- l
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
$ o; r6 d. I0 {1 P; J* p以下是RSA算法文件6 O6 Y5 t6 t' B& W/ X7 o4 C

# q* I6 [( s  Q文件名RSA.ASP
: ^7 {) B9 X8 _% l3 V0 V6 a===============================================. a: B. s) l3 U$ c& b/ ^5 I
<% 7 W( P! t: z! y% `0 S! G
Class clsRSA
" L5 h6 T2 |. j' aPublic PrivateKey
& p5 n) \( l. cPublic PublicKey
8 R3 Q8 p+ [% v3 t/ a0 VPublic Modulus * z1 _' {4 i' t/ |
Public Function Crypt(pLngMessage, pLngKey) 9 K* D4 p4 ^/ x9 r
On Error Resume Next
, [+ _# X" }+ @+ tDim lLngMod 4 R1 {2 {, I$ v! a  U! W  Y
Dim lLngResult
" n  T6 z; f0 b+ n9 aDim lLngIndex
8 F! q1 B$ ?# j% L: H- D  nIf pLngKey Mod 2 = 0 Then
8 F: L9 k4 r/ p$ v2 ~6 dlLngResult = 1
/ Y  R& X! d7 L9 d0 HFor lLngIndex = 1 To pLngKey / 2
/ M7 V# Q5 n& K: }& u# [lLngMod = (pLngMessage ^ 2) Mod Modulus
' O  v! v" M& E1 B4 j' Mod may error on key generation " y, w+ v* w3 y9 p1 V1 @
lLngResult = (lLngMod * lLngResult) Mod Modulus
& n, `1 B' d! G- z) hIf Err Then Exit Function ) e7 _- u, o! o6 L3 n% E& z& T
Next 6 R- _- O$ b( y. X! G! [7 s* j
Else 3 Y6 O6 g9 D' u' z/ M
lLngResult = pLngMessage * r/ @& @: k; l
For lLngIndex = 1 To pLngKey / 2
6 I; @. H9 R$ N8 \5 ]lLngMod = (pLngMessage ^ 2) Mod Modulus + z, T# `, h' o
On Error Resume Next
0 _1 W0 ^: U  G# y. A0 q# t' Mod may error on key generation 2 k. ?' w, h8 a1 K5 u
lLngResult = (lLngMod * lLngResult) Mod Modulus ( p' m5 U  s; `$ O8 H% _; q: _
If Err Then Exit Function   M/ K0 |4 k3 T
Next
0 _: s+ o) M. r# [9 nEnd If - T! K( p5 U+ q  G" j4 x7 `0 [
Crypt = lLngResult $ D/ |" g% V. C9 S0 Q5 g' b
End Function/ N  T" @3 O2 y; w$ c4 X$ w4 B

9 H; }% o6 X; i( gPublic Function Encode(ByVal pStrMessage)
( l; t4 }! {; M+ P. `Dim lLngIndex 9 @3 P/ S# [: u7 P2 F# {
Dim lLngMaxIndex
2 J1 R5 }* t3 l+ [  B& {$ rDim lBytAscii 4 O9 P" J! R& B2 s1 {
Dim lLngEncrypted $ Q9 Y4 D9 ~% n  L
lLngMaxIndex = Len(pStrMessage)
) |( y$ K% V# hIf lLngMaxIndex = 0 Then Exit Function
& G0 f: k7 x' j3 Z. c; pFor lLngIndex = 1 To lLngMaxIndex
! X1 q9 f* {0 {' Y4 c# u+ vlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
& [" O! E! M8 `2 RlLngEncrypted = Crypt(lBytAscii, PublicKey)
3 M6 R6 f0 |$ X3 DEncode = Encode & NumberToHex(lLngEncrypted, 4)
/ f: G0 g4 b4 p" ]; b) i; ^6 RNext ) `3 U  O- `6 k/ c# j
End Function ; ]/ `- F, s9 q
Public Function Decode(ByVal pStrMessage) $ X/ ^! c! j7 q$ ~; c
Dim lBytAscii 2 q$ j& T8 _  F8 R( Q& e
Dim lLngIndex
$ t/ I# A+ ~, G9 l: }9 C3 {! uDim lLngMaxIndex 9 Y; c/ ?# L8 S2 w1 g! \, O
Dim lLngEncryptedData % ~; x. T, J1 U% T8 N5 e% j
Decode = ""
1 K+ H3 g2 T+ k0 MlLngMaxIndex = Len(pStrMessage)
! R; [9 ~6 A+ tFor lLngIndex = 1 To lLngMaxIndex Step 4
2 A$ @; ]8 Y0 YlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
* c) O# a" {$ f  V$ m0 u7 q! zlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
! n  Z! i. {6 n/ B! PDecode = Decode & Chr(lBytAscii)
" ]" c- b; T  l) s* o6 BNext
9 v( }+ M7 V& @: f* E( `! ], NEnd Function & O) ~+ e0 b1 u
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) # J% C8 X2 t! c* |2 m# U
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
6 K3 J2 Z: k% c) _End Function   r3 C/ |6 V0 `% Q& f6 R6 Z; B: ~
Private Function HexToNumber(ByRef pStrHex)
. J9 p: l6 Y2 N% u- IHexToNumber = CLng("&h" & pStrHex)
6 d6 ~7 S! o( L( H' c+ s1 ], EEnd Function
* c3 t0 I" U1 v% e9 JEnd Class
0 S' e) T( i7 B$ x4 Pfunction Encryptstr(Message)
/ G; V/ B& O% a6 P' GDim LngKeyE
. k" w8 l3 `: C8 r$ GDim LngKeyD 9 s7 e! P: b+ }0 Q; t7 P4 f
Dim LngKeyN & H- O# E# y: j% R( m+ ~
Dim StrMessage ' E1 _, |9 M0 G! f
Dim ObjRSA
  J- \: }0 X9 hLngKeyE = "32823"
3 Q! l- y) n) P" E6 dLngKeyD = "20643"
5 `/ q, j& Z' ^7 G+ i6 nLngKeyN = "29893" ) o0 ?0 y) y& y: [* \
StrMessage = Message 7 i) x& D5 y% M) T3 J- ?% o9 a- G
Set ObjRSA = New clsRSA
  j4 V( X1 e& ]. q, HObjRSA.PublicKey = LngKeyE : k& I( n4 P6 D
ObjRSA.Modulus = LngKeyN
( n( D$ ^/ e1 y. e. Z7 D$ {# ]$ `Encryptstr = ObjRSA.Encode(StrMessage)
: m5 Q( U( I8 g. a9 q. ^Set ObjRSA = Nothing
4 d6 o$ ]- [- x1 xend function
$ |) r7 j" m+ c" s" q- F8 g/ [3 h4 fFunction Decryptstr(Message) 9 \, _" W+ U# h; C  o2 ^! @; m
Dim LngKeyE , r9 a1 L' |: m
Dim LngKeyD - O$ i  m' \( \# Q  s4 u: O  _( o
Dim LngKeyN 5 ?( g1 g9 L/ l, B
Dim StrMessage 6 l1 L" }6 e, R. Q: F3 A
Dim ObjRSA
, e) y' L0 v6 e5 Q" ULngKeyE = "32823"
, \# O( _9 D9 t  j( h0 H+ ^" w$ pLngKeyD = "20643"
& E. r/ k7 M# e( Y! Z+ D# W# |LngKeyN = "29893" 2 {! U9 \( I& E- N0 D, t8 I
StrMessage = Message
: r" a( U/ E4 M+ O/ C0 N* K+ H, b- P/ ISet ObjRSA = New clsRSA 8 G% G. G! D; z! P1 M
ObjRSA.PrivateKey =LngKeyD ' i* E' j0 [7 U: F" r
ObjRSA.Modulus=LngKeyN ; ~& C. T  `; J4 z
decryptstr=ObjRSA.Decode(StrMessage) 0 t1 X2 Y: l' a  h) k, L
Set ObjRSA = Nothing
7 Q9 U/ H  |/ rend function ; ~# h6 \+ y1 g8 ?: Y0 p+ D' L0 f, ~
%>
. U! ~# ^; `$ K3 X9 W===============================================
8 q: k8 N5 R8 T% }8 P) a# @3 G
) u# p0 M8 o" _* K还有一个用于测试这段代码的test.asp, G# N. [* [( S4 g9 V% i
有兴趣的自己搭建个IIS测试下" n2 ^1 U2 x% ?5 J
<!--#INCLUDE FILE="RSA.asp"--> 3 U4 e/ p5 n# ?, x) G* Z: u
<%
. z: N3 U, T3 l! P& Zfunction Encryptstr(Message) & f; Y, B$ T- Y) P
Dim LngKeyE
1 T; l% u  k4 oDim LngKeyD
3 \' x* l" g" `Dim LngKeyN
1 ?5 d6 V' O. P% a* q/ f, n8 o5 wDim StrMessage   h; w/ x7 p" H" j4 g, Q
Dim ObjRSA ( _+ C2 H- A! `* s3 H& q# V4 a
LngKeyE = "32823" 5 f3 T! q, O/ `5 p
LngKeyD = "20643"
5 ~0 V8 T$ w( l9 aLngKeyN = "29893"
/ |9 Q% Z: d; Z- o* E3 OStrMessage = Message ; s) x( Q# `" j7 l
Set ObjRSA = New clsRSA 8 j7 C, l5 A6 L- `
ObjRSA.PublicKey = LngKeyE
8 Q/ q/ {$ ?  f+ t$ dObjRSA.Modulus = LngKeyN
! X* c' ?" s+ ]! y3 G; z1 G7 ]Encryptstr = ObjRSA.Encode(StrMessage)
3 P  O, P8 C! l! O" m7 d5 BSet ObjRSA = Nothing
' _) O' g6 a' H) Zend function 0 L7 |5 \3 X0 Z, z: P7 i
function decryptstr(Message)
' P+ J+ R9 \9 Z  A/ v+ ~$ f; C( gDim LngKeyE
& O$ N# u' v7 Y& H" k1 IDim LngKeyD 0 \# k. T' H! _/ Y& s& g- K
Dim LngKeyN
# |. v5 C2 Y( N/ KDim StrMessage
& h# Q! V. s! w9 I4 G9 D# U$ EDim ObjRSA   v; P4 n4 `, P
LngKeyE = "32823"
  w# S& s' t6 Z! BLngKeyD = "20643" $ z, h4 ?  D5 g  o
LngKeyN = "29893" + l  D1 q/ K1 d
StrMessage = Message ! w! \9 f" [; Q7 W- p* f8 @- x
Set ObjRSA = New clsRSA
1 B7 {2 J0 m# f  D/ hObjRSA.PrivateKey =LngKeyD
- G  p/ s9 f! _5 z, d) xObjRSA.Modulus=LngKeyN 6 b& C- f6 s& D( ?4 J; V
decryptstr=ObjRSA.Decode(StrMessage) 2 X& F$ ?4 K& \4 V( M) C
Set ObjRSA = Nothing % X4 \* t  d+ r7 e& y
end function
" b2 Y2 K% T: q5 e7 odim last,first
, p4 {0 n, T, A& r8 u. \8 ]first="!@#$%^&*()"
# {  G, ]% i. `7 T. MResponse.Write "加密前为:"&first
0 N* W) d/ ~& x3 llast=Encryptstr(first)   u. t" q, I8 V* f$ V$ \8 O
Response.Write "加密后为"&last
" Y/ e5 a- V" x8 A' ~) f5 {+ b1 vResponse.Write "解密后为" &decryptstr(last) 6 [# y% Y9 ^+ R# X7 u' }6 F2 q
%> ==============================================+ x2 x( N$ F! m/ f: A
剩下的就是字符的对照表了: C2 v1 {, {7 }9 u$ x
===================字符集================
  e0 r8 A9 V, W  S, Y8 _1_____6EBB9 ]( G. {* q6 [6 J8 y0 T
2_____5C1F
7 ]) q2 u( J- D3_____4D75+ u) z' |+ {% J8 N1 N% x. g
4_____26CC
: P8 F- j+ o/ }) w: X  X. H# q5_____4F88
0 j: f( K  n' b; R6_____3F4E
; M, i* o+ x7 ?7 \" j% }, `' N7_____0A9D
: V' y- _+ t: A" u1 l; C- n8_____1A1C
) N  G- V, |1 k; p, ?9_____6D20
8 J$ S9 A5 K* d& T4 Q1 W+ Y( z4 k) N0_____1089
" ^5 d0 q, A. O2 r( B1 K0 A; c) I# w  @a_____0F3E
' G) z8 {* J" L% Db_____3159' t5 j5 `) S" g1 z2 o! p+ S
c_____3517$ S$ G& k1 n" V8 D- ~) T8 K! R
d_____419C5 b- Q9 E+ {/ X' g5 V) q
e_____615C
. G  R' D7 ?$ ~2 n, x$ F$ Tf_____556F& N7 H. K5 c. a/ b' R: B
g_____2B7F
; w2 m3 x) s3 j1 R! Lh_____0F9C: n* o, m3 R7 d. F: @" M6 C
i_____00FA0 V: I4 o1 q5 m1 S, D
j_____5A501 d6 H* N4 G3 ~( ]& ?
k_____2850# w( o( N5 P8 N4 o7 @, u
l_____3E7B
. R# I/ C2 B/ K7 q0 {  |0 \3 Pm_____71C58 ^7 Y' `1 Y( N
n_____1FC8/ v3 U( T2 F8 Y- c9 U
o_____74C1( K3 l, c6 [3 n) _5 B
p_____5FB8
& x: i7 I+ R; B$ p; d7 G  Vq_____6085) V6 K( p. i2 Y% F% _) \2 F
r_____3AC4
8 ^' h/ y" _' ~, Fs_____2F50' _0 J# B! H, _
t_____36F8
+ ~+ M9 }% s, E6 R+ }8 M) Ku_____7010' b. c. m* q7 t' @6 f
v_____0B42
1 l+ ?( C0 X; e0 ~7 Y& Gw_____1C7A4 `8 w) n7 j5 [) b
x_____16F8
- D- P: c& e* z+ D3 y$ k% ?3 z% B9 fy_____2EE7
2 E3 d+ p. _2 _4 W( R& W0 E; |) l. Tz_____5CF39 q/ O" ~& b  h* R
!_____6233
! N% s3 Q0 j( R( G$ q+ ?, U@_____3A45
: ~9 a* Y: h! v1 a8 }#_____2291& m0 L2 H4 s/ P
$_____5D5C
  C; M4 N. C5 r+ {& K4 |2 t. b4 v%_____09B9
7 j0 R( B  ^& P" Q9 ~4 Z^_____43EA0 |* A3 E; B9 O  O8 M
&_____62B91 ~9 g2 t; x8 o) o1 o
*_____6301! c: B5 }9 d) U8 D" R
(_____4659
; m* ]9 ~4 z: a)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表