返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, b6 J: j0 V- d1 B原始出处:http://www.3ast.com.cm
1 I2 X9 M3 }2 p$ s+ R' Q  L8 M( n! M/ S" ~* W
看不懂的直接绕过
: H2 i& |) X) @: s3 v8 C加密前为:hwy123456
- r5 Q  g5 c5 m- o8 w加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
8 P$ I3 T! _) ^6 i3 m* P3 Z4 k$ o7 J3 a' V1 F: a# E/ n
============================================# l/ [3 h  ?2 G3 `
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 n* {0 B* O' ?, O- r, V$ N5 V也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
6 O; V- C' m9 y以下是RSA算法文件2 j1 V6 @* Q1 V* m9 m2 O

4 {7 B# |0 |; M文件名RSA.ASP( w' g* L5 ]" _4 I/ M9 S& a: ~
===============================================7 O" ]9 ~5 O$ ?) e* J1 i
<% + R. \/ J$ K/ s- I2 O' w: {5 G
Class clsRSA + [1 H5 G$ O0 G- y2 v
Public PrivateKey
; R* u. P& T- RPublic PublicKey
7 ^% u; U% ]% z/ |5 a2 J- xPublic Modulus * `/ i* G$ N% H" d1 u( n! |
Public Function Crypt(pLngMessage, pLngKey) . C( H# z0 m8 N7 V5 y& {) r
On Error Resume Next - y+ g+ O0 S" Z$ d" r
Dim lLngMod
0 U. T& j, U* ?$ P5 Z% eDim lLngResult
' H* _8 Q' W+ x7 lDim lLngIndex * B" Q( k! J0 o# f3 E, i# o
If pLngKey Mod 2 = 0 Then
) y; E8 b* p: `) [- [, `. plLngResult = 1
& v% z8 }7 Y; _6 |) c+ [6 uFor lLngIndex = 1 To pLngKey / 2
; a: J: x5 U& klLngMod = (pLngMessage ^ 2) Mod Modulus ) U4 t( Z5 f" H' N7 Y( u2 u
' Mod may error on key generation
' d1 ~2 s& R" B0 A+ y/ U3 a3 }, e* AlLngResult = (lLngMod * lLngResult) Mod Modulus
3 I7 Q& k9 c% L" @, V6 l( n5 VIf Err Then Exit Function 0 I) ]0 |! \8 t; ]; P
Next
, G$ N) z( ~0 x1 UElse
* e9 R% q$ x3 @lLngResult = pLngMessage
3 `  K, M" j0 c# B4 v8 |For lLngIndex = 1 To pLngKey / 2
  ?, W1 {5 Y* N* ^! G1 s8 ylLngMod = (pLngMessage ^ 2) Mod Modulus : [7 [! T) V, `0 Q% u
On Error Resume Next
% G# @/ I+ n. m9 O& @7 q5 o5 p* O' Mod may error on key generation
  P  k7 J- a7 [! ilLngResult = (lLngMod * lLngResult) Mod Modulus , e/ P6 Y# h- X$ J0 s2 O5 W. U
If Err Then Exit Function 3 D4 i! e0 M9 w: X6 V7 y
Next
0 u% J' O! Y$ O: FEnd If
2 s2 b  w5 c7 Y* aCrypt = lLngResult
! x8 ^( J: x3 T* B! R/ iEnd Function% I* w. s0 G% Y1 H

7 K* x0 ?, r9 n7 \. e& Q4 ]8 LPublic Function Encode(ByVal pStrMessage) % H; M2 d! S+ |6 a7 e+ v
Dim lLngIndex
' f: m8 d7 e+ w# s7 _: Y# k9 tDim lLngMaxIndex
4 ^; M, o7 s8 E8 t/ pDim lBytAscii
5 @- w+ a) f8 Z. vDim lLngEncrypted
# d. v, w* w- Q3 v, a/ I( W+ O0 ^lLngMaxIndex = Len(pStrMessage)
" T1 l! i% O, Q- d8 xIf lLngMaxIndex = 0 Then Exit Function / C, [) a- P- Y$ t7 S  g1 q4 V, \
For lLngIndex = 1 To lLngMaxIndex 5 _& D5 J* M* |1 H8 r
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 2 G) k+ L( c6 R3 S3 {  M! }$ V5 h
lLngEncrypted = Crypt(lBytAscii, PublicKey)
" L- Z: P% X' @  Z6 zEncode = Encode & NumberToHex(lLngEncrypted, 4) 9 v% u+ f5 d6 n/ T
Next 9 l+ f) }- B% o1 d- O/ D
End Function / p2 ^4 `2 w8 {+ H2 n" ~! `+ Z
Public Function Decode(ByVal pStrMessage)
* \& b: p2 a1 R6 |Dim lBytAscii
* W% G, S8 N; `Dim lLngIndex % h3 g& r5 \) {0 b# z
Dim lLngMaxIndex
4 O* a* W% a; n, TDim lLngEncryptedData
1 m$ @1 s# M. f: D( U# ^1 Y) bDecode = ""
. p( m2 i) U  W/ SlLngMaxIndex = Len(pStrMessage) . a* t3 v: L3 R, F: m
For lLngIndex = 1 To lLngMaxIndex Step 4
- P+ ^- ?  X* ~2 H* T% ]) zlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 L- u/ O0 c: e$ Q- K
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ i1 h9 V* C2 L/ V6 NDecode = Decode & Chr(lBytAscii)   c3 b$ ^. z5 {! {
Next & K! s, L6 ?/ d& B
End Function . W$ r; b& L7 j1 @
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 \/ M3 E$ q; z- c
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) & }' K2 M. p* ?) B9 H
End Function
1 j2 i; K1 w9 @1 c# i, D# {; RPrivate Function HexToNumber(ByRef pStrHex)
1 N5 v' n3 N- @$ W/ g9 K! u9 vHexToNumber = CLng("&h" & pStrHex)
, R- ^" o1 {6 }5 t  {8 nEnd Function % Y% g9 x, f; r7 U( ~' @
End Class ; g' E! C2 a+ Q) @
function Encryptstr(Message) 3 T) ?, ]& I4 C
Dim LngKeyE
5 N* @* R) Z/ {8 J" rDim LngKeyD
) f, c! `/ o- nDim LngKeyN
$ ]+ C$ L! t8 j9 \Dim StrMessage 9 x1 C. b* Q' r  a$ ]; N7 {! s& Q
Dim ObjRSA : |) K# `% ^, }
LngKeyE = "32823"
2 H3 p$ Q: S# F# B) t. PLngKeyD = "20643"
' E$ U+ N, b4 g1 R2 v" XLngKeyN = "29893"
  o. L$ R9 L( w* N9 t* VStrMessage = Message 0 w; L3 Y4 @0 D- C0 i
Set ObjRSA = New clsRSA & }6 q# X. r+ v5 O) l3 \
ObjRSA.PublicKey = LngKeyE 4 i+ q  i' U* q+ Y" L& f
ObjRSA.Modulus = LngKeyN ( o9 ~3 ?4 V- G8 n- F8 L8 c
Encryptstr = ObjRSA.Encode(StrMessage) 3 @$ m# v- w2 {% C7 s5 {: H
Set ObjRSA = Nothing
: d  O2 Z) z. _: s3 t( F# \# ^1 Uend function
  y& W! ~) d9 P; _, p4 AFunction Decryptstr(Message) 3 `, w$ y; s+ B
Dim LngKeyE
1 @. a: j$ d- b" C5 ?Dim LngKeyD ; M  j& `0 e  n9 e$ ]
Dim LngKeyN ' V; j, P9 ^$ W1 [* A" s! p: M" ]
Dim StrMessage
/ l3 g& N) C% U, bDim ObjRSA
6 R2 U! U  w$ v% p4 j$ v0 ?LngKeyE = "32823" 1 g5 f9 J) e9 K1 E  I
LngKeyD = "20643"
; L6 q/ f- {3 T7 o/ i6 j) oLngKeyN = "29893"
6 H. l9 b; i- E& O7 y$ I* ZStrMessage = Message 7 l. i" T2 Q2 g% ~% F' ^3 s9 }% j
Set ObjRSA = New clsRSA
; `. t6 _9 p- `& s5 ?  Z0 t* qObjRSA.PrivateKey =LngKeyD
# k" X1 Q8 p) P! IObjRSA.Modulus=LngKeyN
; \: ]9 w( f% H4 |+ l$ S  adecryptstr=ObjRSA.Decode(StrMessage) 4 B% y2 D# y8 e$ o+ ]
Set ObjRSA = Nothing
6 c1 z1 E' @; p, v* l$ Fend function * G& i) ]: _, \8 A1 d
%>
8 h6 k; C. A$ |2 Q===============================================( h4 H: `+ `) H

  `( v3 m0 V2 m6 E0 a" _7 e还有一个用于测试这段代码的test.asp9 x9 t* E7 J  r" G$ r# y3 o7 ~
有兴趣的自己搭建个IIS测试下
: t7 W& N4 u+ S/ k  |<!--#INCLUDE FILE="RSA.asp"-->
( T# Q( L# {5 l; c+ v<%5 e/ A1 H9 M3 H1 D! B9 z3 a5 b
function Encryptstr(Message)
7 _' a. `" @- e) M% h9 yDim LngKeyE
6 @& u, h$ r) e3 x( b5 W! _" ODim LngKeyD
: a: T* t8 C( ]- ADim LngKeyN & V6 ^! a: F# l9 z' G" g; n
Dim StrMessage
6 {- i4 s2 V: ^/ `$ f# s. @Dim ObjRSA   f+ O1 e9 I% @1 i5 [
LngKeyE = "32823" . a9 p1 ^* a1 k, b7 c2 H
LngKeyD = "20643"
8 w2 R" g; E8 W/ F/ f" V/ YLngKeyN = "29893"
1 w) f8 q  s# A) @: HStrMessage = Message # z& f. ~" N+ R: {$ W' a5 K
Set ObjRSA = New clsRSA ; V4 M6 `# X) R
ObjRSA.PublicKey = LngKeyE 1 L$ O8 s; D) P6 J2 g
ObjRSA.Modulus = LngKeyN
5 a3 s, q' n6 z6 \; b, O$ gEncryptstr = ObjRSA.Encode(StrMessage) 4 L5 E5 d$ j8 j# p1 r
Set ObjRSA = Nothing
! j) e/ x/ Z/ u4 R0 k9 ]' M. ]! send function ) _9 M! V. x# j, e
function decryptstr(Message)
6 A& {& G, v2 w# s4 W0 qDim LngKeyE
. r2 {2 m2 S3 {9 x/ `Dim LngKeyD * O- B8 U4 {7 R
Dim LngKeyN # m) _. B# o/ P9 I% s+ t
Dim StrMessage
/ b0 ^& D, W+ wDim ObjRSA % V- [3 f- x( H+ X: Y
LngKeyE = "32823"
& h* u8 e- a" \3 T/ ALngKeyD = "20643" 5 d  j  p$ V% b/ ^9 U
LngKeyN = "29893"
6 |0 [- Q) w" o' q# N- W; a7 D6 u2 BStrMessage = Message 6 f7 o6 g2 W- F% R+ }% U
Set ObjRSA = New clsRSA ; M" t7 Q8 X8 k
ObjRSA.PrivateKey =LngKeyD
% }4 @0 Q& O9 h" Q0 ?9 {6 GObjRSA.Modulus=LngKeyN $ T' c3 s' q: l; D! f5 C* C
decryptstr=ObjRSA.Decode(StrMessage) * O" j0 u2 H2 [& H8 T
Set ObjRSA = Nothing 8 x' Q5 g8 u) `* n0 R* ^+ B( a
end function 5 C' t8 G1 @. a! @
dim last,first 7 D8 `. Y2 y/ r3 r
first="!@#$%^&*()"
2 ~4 ]) t' p0 U. t' C1 @8 ^Response.Write "加密前为:"&first
' k( I* m% s; i! ?8 R( flast=Encryptstr(first) $ b- Z: P0 n# ~8 z5 O
Response.Write "加密后为"&last
- s3 z) @% ?0 GResponse.Write "解密后为" &decryptstr(last)
; f4 S. X# I" [7 f+ d%> ==============================================+ M! i4 V8 D* }' ?% }# i
剩下的就是字符的对照表了: p- p' \; i" T. c4 a
===================字符集================4 k; x( y( w3 C9 I
1_____6EBB
- W6 |7 L% p7 g4 H( M2_____5C1F
% v. J2 a, w  b- l" o3_____4D75- `; S4 c: ]8 E# Q: C# I
4_____26CC
* A, S( x. d6 T; c+ E7 |$ o5_____4F88$ G" Y4 `3 U9 Y4 [& ?7 j
6_____3F4E
4 c% ^+ q' H9 Z. @! z! r7 V5 [2 j7_____0A9D. O8 E3 ^; l7 r# E0 G' W
8_____1A1C1 W$ a6 ]8 G5 j, r; s+ u0 {
9_____6D20, F# v% E% P3 U
0_____10893 m/ D9 F0 W6 f- C$ B, i* H6 L
a_____0F3E
9 W! |1 Y# |2 C, I4 S- _b_____31599 O9 d; o. C5 S0 f5 k/ g5 k3 m
c_____35172 Z' U2 K' v; U( X1 i: E0 \) h5 C* ^
d_____419C" w9 o+ c. {3 Z' e% z! C( ~) N6 e
e_____615C$ o3 v- A- ^3 J! \4 B6 e
f_____556F
7 U3 g! k7 V) e8 Dg_____2B7F
' y% W0 t7 k$ R* L3 Y( K% wh_____0F9C! t1 G2 ^& B7 [. b5 |4 z' s
i_____00FA0 d) {3 a5 m: _6 v0 A8 j8 |7 s+ y) m
j_____5A50
- b+ P& x/ _" t8 l# }k_____2850$ y$ n% z( `0 g0 L: Z! z! D0 J
l_____3E7B
' H7 n+ y5 V1 z% F$ Gm_____71C5
4 V3 \3 y$ {% V* C- qn_____1FC8- G- B: l/ `: t, d8 v
o_____74C1
3 S8 [; ?* H7 y4 t! H" t" Hp_____5FB8! A. {  ~: t( K% K: m/ }
q_____6085
7 [/ X+ c6 b- ]9 q6 O! vr_____3AC4) n# `3 y' S3 ?8 u+ P/ @) N
s_____2F50% |% ]. X; v1 z1 H2 h
t_____36F8
; M, K  ^8 `# n- su_____7010: ]* Y' t! G* c' A; i: O! h1 [
v_____0B42; y4 I" L, B4 T" A4 Z
w_____1C7A
5 v  t9 D# a9 v! Qx_____16F89 Y2 n. |* B1 f: L% {( u
y_____2EE7" [& W# B1 R8 f4 X% I
z_____5CF32 }# J! d7 U  k6 Y5 C% @
!_____6233
+ F! M5 c* |) t5 w% Z# }# i' o@_____3A45
( e: T4 J, _) Q( V% [#_____2291
/ r6 W2 S2 X/ F5 }3 D# Q' Y$_____5D5C; `  C3 }$ W4 v9 w, _( u
%_____09B9, e( O9 |* q( M, d/ z
^_____43EA, B! q: R* T4 t) t/ M: i
&_____62B9
$ ]7 A$ l& g0 K5 E- C* V*_____6301" `1 a. c# k4 W# ]+ C* f8 F
(_____4659
# E# W' T3 x4 |) b4 O! r)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表