返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm2 F- p0 B( L- h$ W
原始出处:http://www.3ast.com.cm9 ^1 V" B$ q, z: [) w8 E! _

0 {% Z; T" b: h/ Z5 `看不懂的直接绕过( u' z/ K# A" b3 ~5 a
加密前为:hwy123456; J7 O' J) |9 [3 ?, F
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
4 z0 A. ~) u; {- Z3 S
1 A0 {3 {. Q8 s2 w5 ?  u: L============================================
( A( o& P2 M: z% I2 U/ b上面是当时自己校内的心情。现在已经解破出来了,分享给大家. K# f: w2 R( i6 ]; }7 T: r
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法7 w4 h2 a8 U0 q; ~' N7 v. ~- G  {( x9 u
以下是RSA算法文件
$ f) K1 N; E9 ^9 ~: c+ T, P
6 E1 f' D& c5 O2 @' }文件名RSA.ASP
( F. t( y% f; P0 f3 h===============================================
0 X8 v* r$ q5 A7 Y<%
3 ~5 r1 H0 T/ l( I0 h& kClass clsRSA 6 M# E6 `3 Y8 [% I9 H
Public PrivateKey * L2 y, g: V* O. @. ]
Public PublicKey ( k$ c: s1 S. B
Public Modulus 5 l. d7 Y" }! v6 C! b" ~
Public Function Crypt(pLngMessage, pLngKey) 9 @+ s' k( W* R* H
On Error Resume Next
9 X$ W$ U% S: T2 B: ADim lLngMod 3 G& h3 X* G+ X7 S, {$ _0 l
Dim lLngResult * M+ l+ F# T' x/ G
Dim lLngIndex . r' [9 S' l" [. N. H
If pLngKey Mod 2 = 0 Then
+ O5 {+ [5 _+ ]% B& F7 q; zlLngResult = 1
  H$ k! P; O! Q$ c' R) h1 f9 eFor lLngIndex = 1 To pLngKey / 2 , R! ^. ?/ m' f
lLngMod = (pLngMessage ^ 2) Mod Modulus ( e/ G5 P& l" `% O  T
' Mod may error on key generation ( D. e7 ]* F7 p4 b. \
lLngResult = (lLngMod * lLngResult) Mod Modulus
2 |& G" G9 h9 w( I' T8 MIf Err Then Exit Function
' t3 ~- g+ i3 ~Next
- v' @. q6 _+ ]0 S+ N0 gElse
! K8 H  Q8 ~; R' a0 P  c/ zlLngResult = pLngMessage
5 O) O1 _* v( n! CFor lLngIndex = 1 To pLngKey / 2 , }9 t" @6 G2 I/ ?3 X
lLngMod = (pLngMessage ^ 2) Mod Modulus
) ~- Q& J1 m; u1 _) LOn Error Resume Next
) I0 j4 T) I9 G5 @% h7 L' Mod may error on key generation & B. v  G7 \* J4 R+ Y/ V# h
lLngResult = (lLngMod * lLngResult) Mod Modulus 6 L6 Q* z% A. \6 C* K4 X) Q
If Err Then Exit Function
; S, q$ l  C' t9 ]3 Q& vNext
6 J% p' V) A7 Y% _- K/ jEnd If
. Q; [" J. a" p( c) a" dCrypt = lLngResult . g( t8 O( t% J6 D7 m
End Function
; a- l- G% [" h8 f, f: E9 `; J( g* }8 B2 [" c, D* o
Public Function Encode(ByVal pStrMessage)
! z8 n) V! q- n- t* D* dDim lLngIndex ; Y6 ]! y: P% k- x. S; x
Dim lLngMaxIndex * W! _. f0 ]/ T4 i: ^& _
Dim lBytAscii
0 ?$ B' [, I  q' G, X( bDim lLngEncrypted
4 O. H) {# L% |lLngMaxIndex = Len(pStrMessage)
. M, d( b5 h4 [6 F& m2 `+ XIf lLngMaxIndex = 0 Then Exit Function + a$ Q: q! K/ J4 W
For lLngIndex = 1 To lLngMaxIndex
; Y6 w1 N- M* Y* N2 NlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
2 U, Y, q, g6 v( J  R0 @lLngEncrypted = Crypt(lBytAscii, PublicKey)
8 @3 Z+ m5 [7 ?7 h$ d4 y0 LEncode = Encode & NumberToHex(lLngEncrypted, 4) # @" ?6 R' O5 I8 J
Next " ~# l8 r: D- B% n4 j
End Function   A% E9 B; {* i. F* ?) z
Public Function Decode(ByVal pStrMessage)
6 x+ _& D8 [5 D" e4 |& [Dim lBytAscii 6 d% j  I9 X+ d& Y( l) {4 N
Dim lLngIndex
9 G; ?$ a1 E8 N6 @Dim lLngMaxIndex
% N! n# k, X' f* LDim lLngEncryptedData
8 N2 K/ y  L! c# n8 R. k* QDecode = ""
$ L$ q' O9 S# ~( NlLngMaxIndex = Len(pStrMessage) : N, S! y! M" t6 m1 |/ h; G5 ?
For lLngIndex = 1 To lLngMaxIndex Step 4
" Z: C1 M! E3 L" |+ e6 ZlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
7 d8 z' D1 g5 GlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
* J: s7 j0 @( B' v" j4 DDecode = Decode & Chr(lBytAscii)   `; N% }. T" O' E
Next
/ h2 y) q4 Q! O* h9 d0 ~End Function
' ]6 |  n' N# ~: _" VPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 5 ~4 E$ D% f" A+ u, @. Z0 A5 H8 p
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 1 W) f' n: I7 a# n" [! _: m: I
End Function ) T3 H. }5 O5 |1 U! F6 e8 p
Private Function HexToNumber(ByRef pStrHex) 5 q9 u4 K  A/ I' H. ~9 a
HexToNumber = CLng("&h" & pStrHex) % Y! C# z5 z# d+ w
End Function
9 h: z  A% B( ?# n2 q4 m* x) `% Q6 ]; nEnd Class 7 v6 z2 p* H2 b. i
function Encryptstr(Message) 1 q1 U) ~4 z- Y. i: Y& N  F0 }
Dim LngKeyE
0 ~+ T& f  r  E) U" BDim LngKeyD / Z  b' ^( G# f5 _- |
Dim LngKeyN
* A! V% |* B* G- ?  d  cDim StrMessage 2 q1 d, `# k( M+ b8 m
Dim ObjRSA ' Y( \. N5 ~$ ?
LngKeyE = "32823"
$ z- F  h, e; ~( HLngKeyD = "20643" 9 [8 v# J+ H1 ~! A1 l
LngKeyN = "29893" ; N' j; G" y# u$ ]' u
StrMessage = Message 4 \7 D1 l5 d: ?  p  N% @
Set ObjRSA = New clsRSA 0 ]# |$ c$ U5 w
ObjRSA.PublicKey = LngKeyE
+ P2 i* g6 u2 G; v: W$ c' ?ObjRSA.Modulus = LngKeyN
' ?& f5 Q- m- u7 _Encryptstr = ObjRSA.Encode(StrMessage)   ^& \* o% r5 b! g1 @
Set ObjRSA = Nothing # D5 K! s1 r" z/ M
end function9 ^( i8 k- K) L0 F! }
Function Decryptstr(Message)
' r7 V+ Y3 L; n" r8 F! @Dim LngKeyE
9 Q( _$ [( o  i/ tDim LngKeyD / `, N% |' b" x/ H
Dim LngKeyN 9 _% ]& v$ ^/ Q7 I3 v% n
Dim StrMessage
+ Y# p% N, y( NDim ObjRSA
# T4 s! [, }7 |: v& rLngKeyE = "32823" ; l8 v; Q3 b# \  e
LngKeyD = "20643" ! G$ S" |5 u/ j9 `5 \! k) q/ I0 S. z9 S
LngKeyN = "29893" ( l3 f0 g8 b# x- [
StrMessage = Message
& m" c* f+ N; u* c: K7 |8 ?! fSet ObjRSA = New clsRSA
; L. K3 T7 V' y: h5 p4 sObjRSA.PrivateKey =LngKeyD
- j  t8 j1 z# R% F9 WObjRSA.Modulus=LngKeyN   K6 g. G1 e  {& R- \1 l8 N8 w
decryptstr=ObjRSA.Decode(StrMessage)
! U* a0 n8 N! e0 |1 \( @Set ObjRSA = Nothing
' e8 N; _/ I0 T+ H$ m- U# Y# a, zend function * o9 s9 |# V; p/ Z1 R
%>
' }2 l8 o- _+ p0 |- B9 o: ?===============================================# c: W8 p/ ?5 ^' O2 E* Q
+ i! y- J: P; R* M3 e$ r
还有一个用于测试这段代码的test.asp9 M2 @: |: a0 l+ B9 l4 Q1 m) s4 j
有兴趣的自己搭建个IIS测试下
4 m# ]! k8 ?5 Z& _9 ^  H<!--#INCLUDE FILE="RSA.asp"-->
1 u7 m8 ~+ l6 O  }7 M: |4 o' G<%
9 V. d4 }# v* A7 d4 B9 n! Ufunction Encryptstr(Message)
9 O" i, i1 }( X% [! RDim LngKeyE ' w( x( ^) d# g; q9 ^+ b0 \
Dim LngKeyD
, [! E" W; r" R; ]Dim LngKeyN
  t3 _+ D, h! r  [! g, ADim StrMessage 7 u* d5 r/ @/ }4 Z
Dim ObjRSA
( G* z" s: l; ^. xLngKeyE = "32823"
% A4 v9 K7 l$ P: g. qLngKeyD = "20643"
2 _+ x! \3 c- C0 b/ x% i: |LngKeyN = "29893" ! ~, X* _( H! u* e& ?1 B8 e
StrMessage = Message - Z8 l& Z; {) S6 E. a, B( |
Set ObjRSA = New clsRSA ; N# G' q! y; v
ObjRSA.PublicKey = LngKeyE
' Y6 c8 G) ]  \+ @; EObjRSA.Modulus = LngKeyN ! X- U! |- e  \
Encryptstr = ObjRSA.Encode(StrMessage)
6 G# B  ~$ N3 p7 g" o  wSet ObjRSA = Nothing
2 w6 q) z7 a! _% oend function   p" g4 ~5 u- _0 {: t# `+ x4 E
function decryptstr(Message) / A) X1 a8 ~; x3 I
Dim LngKeyE
# \5 y% T7 t) V- D4 U: F) J8 K$ _0 e8 CDim LngKeyD
8 R* ]1 t0 T: `Dim LngKeyN ; X  D3 p8 o: m* R6 ~
Dim StrMessage * `" c. ?' X* j  j: A; ~* o2 A
Dim ObjRSA
+ H# x: @* D) Z9 \! d3 B# e7 X+ M4 G" DLngKeyE = "32823"
, t. J; S5 \" i) X& s8 B; v$ y* JLngKeyD = "20643" & u" y9 |3 Q0 z& D
LngKeyN = "29893"
; e  _* t2 N6 i' k. MStrMessage = Message
/ ?# K3 q/ X$ e7 e4 H5 ^( r! cSet ObjRSA = New clsRSA
5 B! `2 B6 X$ O4 x9 W1 U/ R+ NObjRSA.PrivateKey =LngKeyD + a# H4 g1 T6 H. R) W2 N
ObjRSA.Modulus=LngKeyN
0 h" ]2 m  }% Y6 Q9 G$ y7 fdecryptstr=ObjRSA.Decode(StrMessage) ( `$ t% S7 T- b
Set ObjRSA = Nothing 4 [5 A5 ^, P$ G9 j$ v! y
end function 8 ~" S6 j) [2 e3 R. _
dim last,first
% W- R8 |5 f$ N1 Z1 w2 m# Cfirst="!@#$%^&*()" / n5 x; I) r7 N9 i  w$ G& \' T, G
Response.Write "加密前为:"&first & o4 M) X0 w+ v) P4 ^& n. i$ B
last=Encryptstr(first) . p6 \6 h; ^& S" R  H3 F* f  Y
Response.Write "加密后为"&last 0 Q& ~$ a4 H& A1 m
Response.Write "解密后为" &decryptstr(last)
  Z* j  d3 q8 l# z6 B! t9 M0 b%> ==============================================$ l7 V2 d5 e4 D% r8 N' H
剩下的就是字符的对照表了- ]; p; Z; X6 P
===================字符集================& R) `  Q: i7 f" M' f
1_____6EBB  `. J  p9 ]* u+ J; F% }
2_____5C1F
  s$ {' ~, Q$ X7 C5 a3 }( s3_____4D75
9 F; \; e0 p& Z6 N4_____26CC
9 g2 Y4 l$ n  ]5 y2 V3 i% U5_____4F88
& {' s5 `& W$ w( h6_____3F4E  s$ g0 W3 R6 o/ k3 |
7_____0A9D# h& `: ~7 v5 Q8 \: g# Y
8_____1A1C
" G+ h8 j% x9 D# ]' S; M9_____6D20
" _( j3 _3 \$ v! R8 w4 E. ?5 F; M0_____1089
; I" ~5 P& }7 p" ?; G2 f1 Za_____0F3E+ k  N& {- @  ?
b_____31596 Z' [' t0 N7 J6 j& O* V" x
c_____3517
. e9 {0 X0 `3 U- k* l- T9 ?d_____419C
! z' X9 k: J' d% C: {e_____615C
0 _- h* D( q* D8 U3 j! yf_____556F
4 v9 E" S, h/ J/ Mg_____2B7F
6 V2 A% w' @  K6 O; Yh_____0F9C
# [- g2 g7 H, ^8 c4 O& zi_____00FA
: E, B) y, o7 }j_____5A50
; \* G9 b, Y; C! J, i* Q' {k_____2850
. p5 Y$ c9 V# @4 Rl_____3E7B5 E/ s0 Q, Y1 e7 {6 }* J) g7 e
m_____71C53 u! a, X& \! j
n_____1FC89 @2 j, c* }' M7 N% j+ B: e
o_____74C1% q+ z7 V  b* ~! W+ G# r0 O5 J
p_____5FB8
% E& j/ K% |$ y1 ]q_____60854 f- w8 b/ j$ s
r_____3AC4
: W. _5 a. s* |s_____2F505 N: T# n" w2 p: a  G; v4 }
t_____36F8
4 R, }" {' K. P: `u_____7010
* \4 ^3 t# e) h5 a0 S3 k  Nv_____0B42: w9 X4 g4 G% y; B3 L! i3 Y3 c
w_____1C7A! S2 f- p& t& s! u2 A' j: r
x_____16F85 p2 g# H6 K8 K& i
y_____2EE7
$ J! `8 \( f; a( t9 Y: @. ?$ ]/ q, jz_____5CF3
, p. g" b2 n) W9 }' \!_____6233
" i) O* L/ o/ k. Z1 |@_____3A45+ ?+ X+ M6 J8 O
#_____2291. N2 M4 V& z' u/ \, F
$_____5D5C
1 ^7 i! X% d& ~' T%_____09B9
8 ]5 }3 V5 ?4 Q3 N+ ]7 F  i4 [* y+ G$ {^_____43EA4 F% X, G0 ~! j% f
&_____62B9& ^& _) y" g: m
*_____6301
2 B+ ~. ?7 u! Z! T8 {5 E8 q$ {(_____4659
/ ^, a2 x" z2 m: m3 h& })_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表