返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm8 z# M* Y) P. ?. y2 j
原始出处:http://www.3ast.com.cm
8 Z1 ]/ I# U+ v. b+ N# z* U" o: b) W. E6 W: N
看不懂的直接绕过
3 w/ i! [4 U! R( J4 _- c加密前为:hwy123456* A( N8 R- g3 u3 s; {/ |0 e
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E9 ?9 O1 ~/ l" G- U7 {+ n5 b$ P# ]
8 r: l6 g7 w3 @& W
============================================
2 X# l; V1 f/ p* W9 Y. Q上面是当时自己校内的心情。现在已经解破出来了,分享给大家' M! G0 T) ~* t' l0 A6 l: I4 A+ b
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
% I; i4 w" s0 u% S8 @" N以下是RSA算法文件7 s  n, S" M9 W+ \6 @

- y1 n/ O8 T4 l8 [. [文件名RSA.ASP
* {9 Y; A, h$ V===============================================
4 o  K0 Z' Y0 u: I9 v: V3 _  i<%
/ ]  d' a; }7 W! J5 zClass clsRSA
; C, r( G, E( r5 N+ m$ z2 }2 zPublic PrivateKey : T% f; h- U- O
Public PublicKey
! k. \7 l- d) a( s1 EPublic Modulus
( I% S9 ]( H" l) F) y0 g2 B9 JPublic Function Crypt(pLngMessage, pLngKey)
0 }9 D; C5 @+ g! y2 F8 TOn Error Resume Next
& a8 _; r4 z$ I( T* w/ Q1 m* {Dim lLngMod
( ?) h. M  t' C: T9 r5 XDim lLngResult
8 @% ]  Q5 |, d  kDim lLngIndex : b- P& H- n. J( ]) s6 X
If pLngKey Mod 2 = 0 Then : Z- }9 F3 j. L9 Q" E5 M$ R) D
lLngResult = 1 , J, S9 q' U6 k( ^* O
For lLngIndex = 1 To pLngKey / 2
* m+ W3 m" U( ClLngMod = (pLngMessage ^ 2) Mod Modulus
! j4 C% z4 P3 b1 M1 O; r* L' Mod may error on key generation - }( ^2 j+ {( `7 H) p% x) E
lLngResult = (lLngMod * lLngResult) Mod Modulus ; L6 \- h* t' V7 \# [6 ^. x
If Err Then Exit Function
7 y+ S7 Y  G' Q7 G6 p! RNext
) `3 m3 Q- r4 [. z8 u4 I2 |Else . p1 O; U6 n, g2 X
lLngResult = pLngMessage
# S+ `1 Z4 w% f6 w- ^( ZFor lLngIndex = 1 To pLngKey / 2
& s* D3 [( a. }# S( u, q# tlLngMod = (pLngMessage ^ 2) Mod Modulus ! D& c) \2 m1 H! N
On Error Resume Next 9 Y3 N% R4 l5 A5 a/ u) U- Y
' Mod may error on key generation 9 {1 w2 ~. J/ v
lLngResult = (lLngMod * lLngResult) Mod Modulus - m3 r) Z. J' l- _% z( v* F5 H
If Err Then Exit Function 0 v2 f/ P6 C2 o7 I$ k
Next
& @" u  Z( O2 w& zEnd If
* m7 J) k2 Q5 [" m/ N% I" W% [Crypt = lLngResult 7 h. ?' Y0 |7 p1 a! s  `
End Function0 n& O- M" z( U- f/ L* n
1 B; {- q& V# y
Public Function Encode(ByVal pStrMessage) 4 L+ F/ x# a: G$ W
Dim lLngIndex
" E- A% f! x" p; {Dim lLngMaxIndex ; N; C  v; [/ v/ ]  D
Dim lBytAscii ; R. C% V4 q8 y- ^5 R4 ~! Q9 o: {
Dim lLngEncrypted ; [: l4 w6 S  F1 G* Q$ R1 w
lLngMaxIndex = Len(pStrMessage)
' n4 x8 ?5 q2 A4 c# b; P6 j# ?, PIf lLngMaxIndex = 0 Then Exit Function 9 j) ?, d4 o) U( X3 b. x& [
For lLngIndex = 1 To lLngMaxIndex 0 Z4 L! j) _; j
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 0 S; `' ~$ _! v, p  a
lLngEncrypted = Crypt(lBytAscii, PublicKey)
/ ]( _) f+ e  Q9 d' {6 W: l+ UEncode = Encode & NumberToHex(lLngEncrypted, 4)
2 B: C. I1 V1 A" M# Q: h1 INext ) ~; ?" ]7 t/ ^) L( `* M  e
End Function
) [! _2 b! z- _8 ?/ j! y! dPublic Function Decode(ByVal pStrMessage) 2 h( S5 [+ _; s! p
Dim lBytAscii
1 k! }6 ~- T9 p- g; p$ ?Dim lLngIndex
+ e: s4 ^- J3 ~* qDim lLngMaxIndex
: v, ?5 \1 ^( ], o$ w1 O9 l: tDim lLngEncryptedData
1 M9 G% i/ H# |; GDecode = "" , o& R9 k" t# H: ~
lLngMaxIndex = Len(pStrMessage)
4 K4 L2 h, ~3 Z9 ]. M% N; t4 qFor lLngIndex = 1 To lLngMaxIndex Step 4 : y+ {6 t5 I' a, N) C, B9 t  D
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 J9 ]( p8 Q' X7 llBytAscii = Crypt(lLngEncryptedData, PrivateKey)
) M9 q$ V0 I6 M: D4 yDecode = Decode & Chr(lBytAscii) + Q9 O; w* Z" T- o
Next 5 C$ t& M: h  S" K* ^8 D6 G
End Function
- }/ W3 ?! R& G1 p! e; HPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) + a7 f. a* |  e/ E/ m# Y
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) # k' G) m( s6 e% m" q  K4 L8 B
End Function . a' K, b5 ^+ {( E! Y
Private Function HexToNumber(ByRef pStrHex)
# q/ q0 u( @+ f7 R$ vHexToNumber = CLng("&h" & pStrHex) # Y9 M  j( T; G2 O, l  X7 I
End Function
- M7 u* _: o& ~End Class
  @! t: T. _8 nfunction Encryptstr(Message)
6 }/ y' _" p! I+ U  m" L0 y7 zDim LngKeyE
7 e( F  s8 g7 X9 V$ R# x9 `- _3 wDim LngKeyD . [- f' d) v9 }  V% l! h4 S# T$ @
Dim LngKeyN
) C+ P( X% f  [" a9 N1 M( KDim StrMessage
: s: m; A/ s4 i# O9 l* XDim ObjRSA ; L, t1 W1 m: h# a  }$ j3 ~% e
LngKeyE = "32823" 5 H. ]9 D5 m+ q- b4 P, K, V- E, `7 |
LngKeyD = "20643" $ \4 C" v: j: K" w
LngKeyN = "29893" / u0 K8 `% a0 ?+ m/ t- F
StrMessage = Message 4 V1 M/ K8 u2 j( r: d6 g4 c
Set ObjRSA = New clsRSA
& E  ]  X2 k# K8 tObjRSA.PublicKey = LngKeyE
  L9 ^! A) \' V) lObjRSA.Modulus = LngKeyN
) Y. ], o! j/ W8 o4 b8 VEncryptstr = ObjRSA.Encode(StrMessage) 6 r( r3 c: L4 D( B5 Q0 ~
Set ObjRSA = Nothing + Q$ _5 X4 V5 R# h
end function
* H6 u5 p0 ?" ^9 |* bFunction Decryptstr(Message)
2 x3 q$ U; i) ]8 Z0 ?& R7 hDim LngKeyE % n8 i  l- F7 |: y6 f& D  u, O
Dim LngKeyD
4 ]& c3 b" U/ ?- X% b8 L0 E( VDim LngKeyN ( W4 B% Y# r! h4 J& Z7 G" z% Z
Dim StrMessage 7 F2 n# I+ {; g. T. o
Dim ObjRSA ' }; K$ ?9 `; q2 \! E
LngKeyE = "32823" 7 s8 i. a% P% B$ k* ]+ `  A
LngKeyD = "20643"
# v" R- B6 V5 v8 u& b/ @  _LngKeyN = "29893" + ^1 d# k$ l5 b# q6 N
StrMessage = Message " f4 g5 j8 L2 A& t4 s7 m$ H% z7 E6 _
Set ObjRSA = New clsRSA / P0 L+ Y1 x* y
ObjRSA.PrivateKey =LngKeyD . \/ z. B7 @; |- u$ \* b4 T! a' [
ObjRSA.Modulus=LngKeyN 8 E& \1 M" o# C6 I: J
decryptstr=ObjRSA.Decode(StrMessage) - q( D# R% a% r$ p
Set ObjRSA = Nothing
( P5 E: U- Z) Q8 q! N$ Nend function
+ c5 {4 U' D/ W) X%># h: |1 Y7 J  p
===============================================, Y% ]' Q: v7 z. X5 g+ c8 H
( d3 A; @% C& G: @, o) l
还有一个用于测试这段代码的test.asp
4 v2 }! R9 @9 p! ?. a, ?5 U有兴趣的自己搭建个IIS测试下0 M# g$ g, W6 Q
<!--#INCLUDE FILE="RSA.asp"--> / S  H' z0 C' \! O* e+ J" J' s2 R3 j
<%' ], V6 m2 L* ^, M9 n" E: Q
function Encryptstr(Message) " v, u7 L  i) _
Dim LngKeyE
# m! p9 \0 d- k, v3 @( QDim LngKeyD 1 A4 R$ H6 n4 X( U7 {9 u. p
Dim LngKeyN % ^! U# A  M* S  F4 A
Dim StrMessage 1 s% F  e% R$ b) l+ ]
Dim ObjRSA 1 I0 O( B: E& Q& q
LngKeyE = "32823" ; `! b$ Y, _: U8 ?
LngKeyD = "20643" & Q9 P! V: Q7 @& Z( T7 D3 j
LngKeyN = "29893" + j0 J: a; X0 j; @
StrMessage = Message . b4 l% F; r6 y. F' G/ F
Set ObjRSA = New clsRSA
- L" S+ `- k' e& R6 d5 i! X7 C9 d6 SObjRSA.PublicKey = LngKeyE
8 {% B; C; K) V+ L3 i; e  WObjRSA.Modulus = LngKeyN
0 Z9 B) I5 e" a# U: GEncryptstr = ObjRSA.Encode(StrMessage)
5 L2 S0 y2 T: i, ~$ c( P3 ESet ObjRSA = Nothing : \- b- W/ \1 ^8 G1 A1 j. z* R
end function
: o/ f% i! |4 ?6 \4 ], Pfunction decryptstr(Message) ' U! b9 Z5 @% E5 j3 p  y
Dim LngKeyE
6 b  O3 F0 F# E7 ]Dim LngKeyD
" x0 W, q4 _$ q8 dDim LngKeyN
6 C% m* k/ J6 h- R) zDim StrMessage
0 l& K9 H- m4 r6 i& t' C3 k  bDim ObjRSA
8 L3 H& [. t7 _) HLngKeyE = "32823"
+ D- x  |# p, pLngKeyD = "20643" % A0 }6 u  l/ ^! X; {0 n' K3 r
LngKeyN = "29893" $ F" V  h5 E/ p! W, l
StrMessage = Message
1 M1 G: i0 v2 {Set ObjRSA = New clsRSA
" ~( }- M) V7 r  _  `ObjRSA.PrivateKey =LngKeyD 2 J/ s' _! l2 C7 a# y& ?
ObjRSA.Modulus=LngKeyN , v/ @( \0 r5 M5 Q) }- }4 W- X
decryptstr=ObjRSA.Decode(StrMessage) 6 ~. O, F4 g6 j1 o
Set ObjRSA = Nothing
' z0 D: ^* B0 wend function
% ]5 Z" E0 o) H: V: {2 Xdim last,first 0 z3 m+ k% p" W' t: F2 Y
first="!@#$%^&*()" 1 }  {' u: ]3 P: B- C7 H
Response.Write "加密前为:"&first
+ \2 s& b$ L4 y* R- Clast=Encryptstr(first)
- S+ ]2 X. _7 ^3 rResponse.Write "加密后为"&last
9 f$ g) j# r* V. hResponse.Write "解密后为" &decryptstr(last)
( X3 {, N8 ?7 w7 p6 Q0 [' I2 [%> ==============================================
/ L  o3 e7 r; x5 G剩下的就是字符的对照表了4 c! e7 w( O( e: a6 }
===================字符集================+ P, c2 e& O: a7 e
1_____6EBB4 T  P& ^. B4 {5 Z, W/ ~1 t4 _
2_____5C1F. I0 T! _6 q, I
3_____4D75
( T, V. z9 `/ [& N4 P4_____26CC
' y# W3 @- d# v: W5_____4F88% M; C' |9 z0 G, a# l: w+ x  ^
6_____3F4E
; ~, i; \2 a& C" {* Q6 S7_____0A9D3 z3 }! @9 `4 m/ ?7 f
8_____1A1C, W7 h/ Y% R" A& N0 p2 u# k& c" I3 U8 U
9_____6D20! P4 |/ W8 k$ M  L+ {7 p" U2 h
0_____1089
: a5 D1 C& \5 s- ba_____0F3E
7 ~( h, [3 ?/ \+ j5 a1 ob_____3159
: [) J( Q3 R6 H, Mc_____3517
; [# E8 ]  X7 A7 d  H' ed_____419C
1 a/ u) y% V% r/ m% [e_____615C* k" {5 J" R# @  |( B3 G- j. _6 [
f_____556F5 V$ ]0 I4 ?! P4 n* C
g_____2B7F
/ M% w5 R: o; b7 D$ I" ~h_____0F9C
6 e& @; W4 r6 g  F& \i_____00FA
, {) U6 R) f- c9 r- Z: jj_____5A504 J) I5 r% u- h% n) w$ D+ R$ i/ B
k_____2850
4 x2 Z" Z2 |1 il_____3E7B: P+ R* k2 F3 ]( s4 z& h1 P  t5 T
m_____71C5/ j6 L* e2 d- n- Z+ W; r) u1 F
n_____1FC8
& m. W: l' ?9 s2 Z; Q9 yo_____74C1
3 j. o' i+ }( ?- Cp_____5FB8
. j! N" v4 O* Q4 Aq_____6085
) r$ J: B% }! I- x! K/ dr_____3AC4* C% H2 R: j4 y9 c0 O
s_____2F505 I5 x# L. t+ P6 ^0 p
t_____36F8% V& Y5 N+ s1 W7 p: l" j" z$ o
u_____7010
3 e# z1 i4 p/ Iv_____0B42
" M: }6 r' h2 ]( D! l# vw_____1C7A7 v6 x7 _5 ]) R% h+ I" G" E
x_____16F88 l5 [+ `' P6 R4 _
y_____2EE7
( B, b  P& F7 a. D2 Cz_____5CF3
2 H4 `3 T/ D7 F!_____6233
6 k, ^: C6 J) M& e' E@_____3A457 M1 Q% z' \; B  L
#_____2291, d  `4 P. h4 `! Y
$_____5D5C. Y2 p; g# l( W& G: O
%_____09B9
) Y7 }: S& w0 @( b% ^& m  E+ M! x5 }^_____43EA% R4 y. P! n; z; V, D. u
&_____62B9. p2 R2 b5 e& U; R+ a
*_____6301
8 y! c# r5 K( y! f  L(_____4659
! d, ?+ L  W  p: u2 q)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表