返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
% o$ C$ n) x4 p% Q# {原始出处:http://www.3ast.com.cm
8 f5 L. [1 s- A8 e
1 Q% e8 x2 I+ T: |& Z看不懂的直接绕过6 g% ^# u1 S; U1 [# B- k' _$ B
加密前为:hwy123456
% n3 q5 ^6 S6 u6 f5 f加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
. C, c5 B8 n, ]8 Z6 `
& z" ^: a8 Z& g) F3 }& ^* |============================================
" x0 H  `; @8 I+ w" B# B- n! Q上面是当时自己校内的心情。现在已经解破出来了,分享给大家
( f( M  s8 \; y也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
+ v/ X  J8 |8 ?2 T/ }以下是RSA算法文件
$ h5 J2 Z# n4 U' P. N9 k7 L' ]1 I. X6 S
文件名RSA.ASP
8 Y: Q$ [+ J1 k/ W+ J7 ^===============================================% V  @2 H  ?0 j9 O$ y6 t8 p: T
<%
3 Z9 H7 b6 @8 ~5 W! P. V+ \Class clsRSA 7 G) J: L7 w9 @; ~
Public PrivateKey
' t, x% B* ^  T  V6 r3 hPublic PublicKey . h4 J8 s5 A, p; {
Public Modulus
9 a* K' P% ^  F* c- l2 p3 E/ xPublic Function Crypt(pLngMessage, pLngKey) / t8 q  w5 R+ q- _
On Error Resume Next 3 f; |& k# U$ @) r; d0 M3 n1 p
Dim lLngMod 5 C3 g! H( n% B* T  _4 l
Dim lLngResult " j; b: n5 {7 c- c3 t
Dim lLngIndex ( n3 @& a; z6 L
If pLngKey Mod 2 = 0 Then
0 V) |/ L, n4 I# }7 I9 SlLngResult = 1
4 q# B* ^1 ^1 X' pFor lLngIndex = 1 To pLngKey / 2 # y- q' H* r; O: X
lLngMod = (pLngMessage ^ 2) Mod Modulus 8 m: y. y+ l3 J* h. K
' Mod may error on key generation
5 X8 r5 @" J$ M: @8 c# `% w( wlLngResult = (lLngMod * lLngResult) Mod Modulus
+ e' X3 ]; w8 O3 D6 ?$ d" |If Err Then Exit Function $ J! [. V; J6 c0 `  N  z
Next " J+ K" k: l% [& ]" d* N4 m
Else & G2 L5 b# I- U8 `7 n2 [8 K# S1 z
lLngResult = pLngMessage
- Y% j8 p+ z# g* mFor lLngIndex = 1 To pLngKey / 2 : ]: q/ J8 T2 A: z/ K$ i
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ Y  r5 S5 X3 C8 C6 e$ nOn Error Resume Next 3 t' s3 f3 A5 v9 g: y
' Mod may error on key generation
6 h' F0 u. }; \lLngResult = (lLngMod * lLngResult) Mod Modulus
- T/ y; t" a6 z- @If Err Then Exit Function 0 @, ^% U* D4 K. ]7 Y
Next
  z. Q8 f! c* b4 AEnd If
0 X& h0 v7 D' WCrypt = lLngResult 0 T1 O* N/ A" c0 k% S: v
End Function
3 S2 D) R9 `/ k! A/ F
6 s7 ]' `1 R9 ^; K+ DPublic Function Encode(ByVal pStrMessage)
9 |& [& [8 \, B7 L. }5 V: B) i! TDim lLngIndex . M- K) U! a! E" i8 Y1 b9 F
Dim lLngMaxIndex
  T7 ^- f* J! V& RDim lBytAscii : [( s3 d* P9 s# R0 Q% @6 U
Dim lLngEncrypted
& w: A# {1 N' b' }9 wlLngMaxIndex = Len(pStrMessage) ( ^9 i' }8 Z7 J2 h1 |$ b! J
If lLngMaxIndex = 0 Then Exit Function ' e$ q) \3 e$ W* |1 X- ?; ?- H3 P
For lLngIndex = 1 To lLngMaxIndex ! P3 ~+ K  M7 ~- b2 }4 q
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) * T" f* Z0 {. u0 K
lLngEncrypted = Crypt(lBytAscii, PublicKey)
( t+ J, M* _& b5 [Encode = Encode & NumberToHex(lLngEncrypted, 4) 1 ^7 x! c3 E6 P1 z* {: G
Next
7 y9 k' L% T" R8 M$ B/ h) c5 tEnd Function " X; w* Q4 y) j- A( b- q% P5 P4 M
Public Function Decode(ByVal pStrMessage)
6 A% O  G! c; Q; q& `0 ]Dim lBytAscii 6 a- F; b0 s6 o
Dim lLngIndex 8 I/ y( k& `) N4 q9 q
Dim lLngMaxIndex
- f+ `+ G2 l$ n3 {# _Dim lLngEncryptedData
5 s/ Y2 N( W* Q& `3 _: S  g( JDecode = ""
# V, }- `0 [% S9 e: {9 HlLngMaxIndex = Len(pStrMessage) % q( R; T3 A+ x& L* |: P2 N' g- r
For lLngIndex = 1 To lLngMaxIndex Step 4
$ m- x5 Z/ S  ?8 klLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) * U" h& V$ [- F5 K' O8 M/ P( ?
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) & Y& q" s( J% g1 v
Decode = Decode & Chr(lBytAscii) 0 q2 Y. q4 K. u4 A: M" G
Next 1 `9 \  ]$ {$ Q5 D7 \
End Function & K9 Z" O, ~% D3 j
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! f6 t1 w! f3 Z' e' u' X0 v' o! [
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 5 W% x* x- [- |" d" P) \, D) D& l
End Function & }8 r3 k( U0 d* {# h
Private Function HexToNumber(ByRef pStrHex)
4 k. b7 p/ o" N' L4 V7 mHexToNumber = CLng("&h" & pStrHex)
' `9 M  m0 [- I; |% MEnd Function
$ \: o+ x( m, q2 U; N1 v. _End Class " F. T) C7 ^/ m/ t+ y% j8 F8 U* J
function Encryptstr(Message)
& @& F# l* c, S$ D! }% HDim LngKeyE ' t, k! t  X! t! J/ c" {
Dim LngKeyD
: v8 M4 ?, @& q4 t/ J5 N/ wDim LngKeyN " K, C4 M8 O4 U2 u
Dim StrMessage
6 ^+ x$ \4 Q9 @1 W0 m: M6 XDim ObjRSA # C) v# E+ D7 Y2 j2 ^/ p, B$ m2 T
LngKeyE = "32823" ' }3 N; E. z4 }
LngKeyD = "20643" - i5 u, A  I9 [# g% x& B
LngKeyN = "29893"
1 D2 N: I* f5 u% E' f- t& |$ UStrMessage = Message
  W& R& o7 s% h9 J6 tSet ObjRSA = New clsRSA
# z# Z8 H1 I( [/ y) x; EObjRSA.PublicKey = LngKeyE
1 |* O, U6 ^1 DObjRSA.Modulus = LngKeyN
6 d% E2 O- q" s& ?* k8 d: c, ^' ZEncryptstr = ObjRSA.Encode(StrMessage)
' [* J7 M& \& B. i# nSet ObjRSA = Nothing 0 y; b' n; q% a1 S" Q1 }/ Q
end function
9 r+ }. q9 z9 l+ G+ l+ UFunction Decryptstr(Message) ) L% n" h3 ?. q% D
Dim LngKeyE . }6 Y8 z4 P+ A: f# ^
Dim LngKeyD
. p- U3 X4 O; [0 CDim LngKeyN 6 Q8 L* J0 B+ z8 @
Dim StrMessage 1 o0 o; @: J) u6 }/ j2 V; B- i" N5 `
Dim ObjRSA
' k& U1 L+ U$ ?3 c' f5 ILngKeyE = "32823" " g% E' C# H7 T; {/ r  J
LngKeyD = "20643"
, S( v- _3 j( U: K  a7 n( `LngKeyN = "29893"
& N! r  Q3 B, n; }StrMessage = Message - w2 a4 |6 v. F2 V. J8 w# h- a2 ^) \
Set ObjRSA = New clsRSA 5 T8 q3 q5 S0 m% j$ g( W) T
ObjRSA.PrivateKey =LngKeyD
  g8 j* u' ^" z) {% u: ]9 kObjRSA.Modulus=LngKeyN
5 f( ?. [2 [" u1 A: ^' M5 C8 zdecryptstr=ObjRSA.Decode(StrMessage)
* J: P: y; V2 r7 fSet ObjRSA = Nothing 3 {$ d' \$ w! S  o9 R
end function ! @4 d# ^, k" ^1 s+ M; {
%>
- h5 w3 l8 J" N6 t. p1 u. p# ^===============================================
. g" f; y) ^" w+ J; Z2 n
% O9 p2 i' Y% J" z, E还有一个用于测试这段代码的test.asp
4 y) _/ j: R: _0 K有兴趣的自己搭建个IIS测试下
; n$ Q- l  d8 q. V$ m7 z/ z<!--#INCLUDE FILE="RSA.asp"--> / Y# A7 f: B( ]  _, c! T  c; h
<%" M& N' Z1 a3 Y# ?- Y0 O
function Encryptstr(Message)
3 s) y& E0 ?! G: u# cDim LngKeyE
8 Z2 w0 L$ S% O/ \+ m+ [Dim LngKeyD
: F7 O9 D' F: G- q+ s! X8 NDim LngKeyN
: U' w' h5 T6 |0 ]Dim StrMessage 7 s- b2 V0 E7 ^7 s$ m7 E0 f6 s) E
Dim ObjRSA
) t: L( I. i: nLngKeyE = "32823" % I2 ?2 R3 |4 A
LngKeyD = "20643"
% `- g' S8 i- P" @2 uLngKeyN = "29893"
: @. l, w* d1 b) s$ W* C% R4 ~StrMessage = Message : a9 l" j' x* t0 t& M
Set ObjRSA = New clsRSA
8 o$ F+ q' s  [* M5 _+ LObjRSA.PublicKey = LngKeyE ( Q7 I. N0 U$ d3 s, r% J$ ^
ObjRSA.Modulus = LngKeyN - c* ^5 K  J  u) {0 ?. k
Encryptstr = ObjRSA.Encode(StrMessage)
- Y; o; `* ~% e& K; L: @Set ObjRSA = Nothing
* f2 b3 L3 X( s' _2 t" gend function $ y. T6 k- U: K
function decryptstr(Message) ( |5 ~: Z6 w- p% o7 N3 R# l
Dim LngKeyE
1 E0 `2 h9 U, \7 [( m, I+ u6 ?Dim LngKeyD 7 b* r. f* o: d* P7 s* l% {8 n
Dim LngKeyN & {$ B, D9 l' y. J) L
Dim StrMessage
6 U; d+ u' F$ [. a( J2 S! ^Dim ObjRSA $ Q) f& Q4 W0 z3 s' ?
LngKeyE = "32823"
) R  _+ k. j  V( hLngKeyD = "20643" . S! P+ w, y4 n
LngKeyN = "29893" " p9 x9 E% `4 M2 S9 B' b
StrMessage = Message 1 c% k6 P/ Y' M4 y9 t: @
Set ObjRSA = New clsRSA
- p" W) z4 u) s) DObjRSA.PrivateKey =LngKeyD # p% \& X( ~6 X5 \/ b% I4 C. o
ObjRSA.Modulus=LngKeyN ! d7 T1 Y- p1 F, ]: t) m
decryptstr=ObjRSA.Decode(StrMessage)
% ^6 {" G0 ?$ s" JSet ObjRSA = Nothing
, Y, x+ x% r- D0 ]. I. m0 lend function $ s/ d2 i7 {5 `
dim last,first
  X% J' u  {9 v/ ffirst="!@#$%^&*()" 7 g  J" B( u3 l. j* D
Response.Write "加密前为:"&first 2 @3 |5 E: [. K- Z: M
last=Encryptstr(first)
, `* T4 O3 H/ R. jResponse.Write "加密后为"&last ( d0 E% D0 {- u$ _, w% U, a: z3 E
Response.Write "解密后为" &decryptstr(last) ; f8 S2 X6 ^: W7 s" a  I3 V9 w
%> ==============================================8 V, H2 g, q% V$ g" n+ h
剩下的就是字符的对照表了
1 |5 n* M7 |' A2 u===================字符集================) I; C/ H# D( x. I+ J9 ]+ B2 C2 O# K
1_____6EBB+ ^2 g! B7 r, j" C) O
2_____5C1F
2 s7 T# f5 f4 J) r  V' m3_____4D75- Y& a# p: _; H* ]
4_____26CC! X8 G4 O6 O; [1 h/ b
5_____4F88
) G- X# z  b+ v9 Y1 \6_____3F4E
/ J$ G. J. d1 n) x; e) }- G- m" X. T7_____0A9D
& i  ~1 l; p, i% f2 i8_____1A1C
  y$ N2 I, q4 O5 e' A  S$ ~9_____6D200 n: {, X8 l- `. \& A9 d# M
0_____1089
! R5 C4 ?* a. N9 p- }7 t5 Ea_____0F3E
  N1 g3 H$ ?" F5 C! l0 Z& ab_____3159) F* X, O8 n/ b% k5 e
c_____3517% L( R" h$ ^$ Z* h/ m
d_____419C7 e% W9 A) L+ u% s( k
e_____615C
" Z. F- f% b4 z" lf_____556F1 L) a/ S2 z8 l$ M2 ?# b
g_____2B7F
4 Y! p8 K1 V- c* F; nh_____0F9C: ]: Q7 H& c# L  H) ]# ]+ M7 ?) Q
i_____00FA9 j/ T9 ]# G( @/ v' O/ J& u* r6 @
j_____5A50
$ I- K- a7 a8 t# i) E2 s$ Zk_____2850
( A. t/ R+ c9 h. Kl_____3E7B
$ _: c! C5 d# g* {m_____71C5
- W0 D2 o" T+ i$ Z  W- p0 ]n_____1FC8
9 c6 i9 ]2 h: x6 H: O& A: c% \$ _o_____74C17 b$ L) p7 O! T
p_____5FB8
- e& y0 U$ v8 p' Z2 W1 H  z. yq_____6085% ^& w' M' X& M
r_____3AC47 d/ D7 ?: d( T5 E* [2 r: s) s
s_____2F50
8 q7 I  E8 N6 c; V7 ^5 q7 mt_____36F8
% s) p3 S+ R  N# Z0 B6 g) qu_____7010
* W7 ?% v. q9 v1 B% nv_____0B422 P- x: ~5 Z. D% S
w_____1C7A% F4 D  S1 j: @4 `' ?
x_____16F8" u! Y5 V& v! F, {( B6 u" \
y_____2EE76 Y& A1 T6 H  ?  [% w% N: Z. u. F
z_____5CF36 c+ J9 D* @( Z  s: s$ R
!_____6233
" u; ~7 t: i- O6 I, m@_____3A45) Y2 B7 e& B" h7 h8 b
#_____2291. }* F3 u+ m9 W& P$ n; b6 H
$_____5D5C6 m5 ^8 d  b' P" t
%_____09B9
2 h1 Y5 n1 h9 w2 S) R4 T- _& A^_____43EA
3 X4 l- F* Q# H6 _+ w8 A&_____62B9
5 e1 m- b6 Y% ~. S*_____63015 _6 ]% |- X) p3 M/ I9 H: p7 I& j
(_____4659$ Q' [6 s7 A4 q( p/ D+ _* E
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表