返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
& v# W) x: [/ T6 \' ?4 [* _原始出处:http://www.3ast.com.cm* J2 R, x0 t. f1 d( J/ K% X( R
, ?& b6 X9 O) p& k. d+ I! T4 H
看不懂的直接绕过" U( u$ J7 Q( k; q( x) u, Z
加密前为:hwy123456
0 w) v8 T7 v$ A/ k加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
6 f. b0 j) O7 C% M/ U# \) B4 ^5 M8 \- g! f+ ?! M% \( ~
============================================
( M' g2 e, ^9 ^* [/ b$ p) T5 R上面是当时自己校内的心情。现在已经解破出来了,分享给大家& L1 \3 B3 f: Y# u
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
8 u! Z( r2 w" W. a0 C以下是RSA算法文件: o; C) A, X6 H7 \
4 u  d$ `# M8 o* e. y% P+ H
文件名RSA.ASP
; W* ^" e+ B8 i+ R2 h/ V) N===============================================, F$ G3 Z: Z9 Y" i
<%
  F5 a( q: S) A! j( F8 v8 VClass clsRSA " d9 |9 Q$ }# I' o) @& e/ G
Public PrivateKey / l* m7 y' r; e+ O* Z  l2 x( R: N
Public PublicKey
6 v8 E+ P$ B* V  P' R7 S0 O2 wPublic Modulus
! I0 a  U9 g  \2 n# Q8 D/ J. l! u0 t9 g+ M0 DPublic Function Crypt(pLngMessage, pLngKey) & G' n- o- V6 Y2 g( x8 |" t
On Error Resume Next
" p! K% f" ]5 `0 U  iDim lLngMod & Y6 u2 I& C* S) p: X
Dim lLngResult
9 o, B5 d; f( G, x& G% R5 b% ^8 SDim lLngIndex . e+ B$ b! g; |, l2 U5 ]
If pLngKey Mod 2 = 0 Then
& S7 _$ j$ Z# X  _lLngResult = 1 ( k) `( Y; n4 |8 S9 G
For lLngIndex = 1 To pLngKey / 2 8 l: R# U3 ^9 g, F" V2 Q) R# G. G
lLngMod = (pLngMessage ^ 2) Mod Modulus + u: o$ i9 ]+ a  Z
' Mod may error on key generation # i% D* b, q& A7 k
lLngResult = (lLngMod * lLngResult) Mod Modulus   {8 B5 O' c# Y2 I  d5 C* k0 z; h3 Z# @0 i
If Err Then Exit Function
+ H: N: h: [7 R( d3 L- ZNext
. V7 a4 A' J1 U9 Q2 B4 `8 G9 sElse
5 b7 q* I$ z/ e4 s; a* |1 ClLngResult = pLngMessage
; r# _: Z* d6 Q3 I" r9 D  }- }For lLngIndex = 1 To pLngKey / 2
! b& S0 d) A0 r4 e  ulLngMod = (pLngMessage ^ 2) Mod Modulus
2 o+ O1 D; @$ ~4 eOn Error Resume Next 0 N, W/ f, F4 _: T$ }2 E" w
' Mod may error on key generation * e0 \' D  _: G1 R! T
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 K; Z- f" H7 h0 d: s
If Err Then Exit Function " |! r  A/ f3 B7 l
Next ( c. r7 j5 j* ]* {9 W$ \2 g
End If " ]4 f6 v  @( @+ x1 N
Crypt = lLngResult % e! E# W( V6 C, q1 j
End Function
* r: }' _( E8 w
( K" g. c* X  m; E, kPublic Function Encode(ByVal pStrMessage)
% ]  r6 k2 Z% N( ?% A. WDim lLngIndex 8 j8 W2 M4 n* `) @! [3 e/ z
Dim lLngMaxIndex
* [" b# a# b' q- {. k4 C' _; o- [Dim lBytAscii " c4 d9 [* ~% a
Dim lLngEncrypted 9 I3 D  F2 M& [9 P7 W# C( v
lLngMaxIndex = Len(pStrMessage)
4 g9 [: `7 q5 n: N% EIf lLngMaxIndex = 0 Then Exit Function ' D6 k3 s+ T& [. ~
For lLngIndex = 1 To lLngMaxIndex $ I( n- [( y. |3 e
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
1 j& _4 O' }8 n* ~: P+ y6 \lLngEncrypted = Crypt(lBytAscii, PublicKey)   U: Q  W: E  J- |
Encode = Encode & NumberToHex(lLngEncrypted, 4) - O! o9 R& d$ Z: c6 l/ i
Next 2 d# U' `! ~& i. ^3 }' `. I
End Function
- t7 W7 ^; u" N7 p: e9 L' LPublic Function Decode(ByVal pStrMessage) . m9 I" H( V* j0 Q) m9 f' e6 T
Dim lBytAscii ( w+ k& l( m! R
Dim lLngIndex
5 m9 n! [9 b8 u$ C# F2 s7 ^Dim lLngMaxIndex % i: [5 d; ^! \- b1 c3 A) n* w
Dim lLngEncryptedData ) e8 G5 |4 j& _( l7 ?) T+ s7 R% {
Decode = ""
! V' \7 J  Q& A5 t( `5 _lLngMaxIndex = Len(pStrMessage) ; Q% z) B+ ?  V* z
For lLngIndex = 1 To lLngMaxIndex Step 4
# q7 b) n$ D0 q5 _5 OlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
) T# V; R6 s: v" q; R8 a! B5 w6 E+ \lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
9 b& E2 K0 Y6 \3 t: B6 I* `- n& @* kDecode = Decode & Chr(lBytAscii) # V2 I3 o) _! d+ T
Next 4 _( t" f% f, y  G
End Function
. {4 `/ P3 A7 i* {Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
8 [' G& x+ J  l1 n, XNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
7 G7 n8 X+ ?, B. C9 F8 lEnd Function
" h; q; O/ J8 }  {$ U% {' ^" MPrivate Function HexToNumber(ByRef pStrHex)
' K3 E& {' O! ^; J, p( t- UHexToNumber = CLng("&h" & pStrHex)
, H2 d4 ]9 p# S8 p$ c7 F* _+ ~End Function
4 w. V. H9 O- |9 k* I) DEnd Class 5 n& m  U9 N6 C- g. k) }
function Encryptstr(Message) ( D/ Z$ Q2 H6 D; b( e7 E3 S# J$ t3 Y, k
Dim LngKeyE 8 f" |' ~$ m4 U# j; D: p
Dim LngKeyD
. \8 w* N% J; z4 P6 w& X2 `Dim LngKeyN 7 y! P6 J( m% \+ e
Dim StrMessage   N1 ~( f' @7 ~
Dim ObjRSA
! y+ F# ~) |! Q8 I2 A9 ?' {' I- [LngKeyE = "32823" 3 i. a( Q& a. ^
LngKeyD = "20643" ! U# D7 i2 Z. p$ r
LngKeyN = "29893" ! b* u% ~4 x4 N# E- t
StrMessage = Message 0 A- Y* E. Q$ l7 @2 F  h6 R) o6 j
Set ObjRSA = New clsRSA 7 d+ P5 L& ~* m5 N
ObjRSA.PublicKey = LngKeyE
: Y% v: W: K" ]# V4 p# dObjRSA.Modulus = LngKeyN ( b4 r/ h7 a+ ~  y
Encryptstr = ObjRSA.Encode(StrMessage)
6 M3 \. u* W' iSet ObjRSA = Nothing
: N$ C  G: `( Xend function  ?5 c3 C, `) Z* ^" h+ @
Function Decryptstr(Message)
/ N' A9 D- d( |- Q2 G% L* H2 qDim LngKeyE
% h( o5 ~: H& j& K% NDim LngKeyD . d( \; j/ \+ o5 v0 E1 C; \
Dim LngKeyN
5 R" Y( O* j& d6 N7 ^8 J& iDim StrMessage # X: @2 ]8 Z; N& _2 _: V
Dim ObjRSA ; X+ }. J( g" S' a5 Y
LngKeyE = "32823"
) ?" M1 @* F1 m, R- H( r8 u; Z6 Z" |LngKeyD = "20643" ) u: o: w# Z; }' \. n: R  v
LngKeyN = "29893"
* K6 i% z) X' ~8 ]# G/ F$ rStrMessage = Message ( n" W6 ?3 J+ O- i$ v
Set ObjRSA = New clsRSA
% G! l% [* p- I+ G$ [ObjRSA.PrivateKey =LngKeyD
/ W+ x- o4 @/ n9 p1 h  s) @ObjRSA.Modulus=LngKeyN
3 p, L6 w/ H6 P$ C9 I& b( |decryptstr=ObjRSA.Decode(StrMessage) $ W5 p- _! ]- t* D( m5 L0 `9 _9 w4 T
Set ObjRSA = Nothing / x& X9 R& }; ?& P0 a/ |
end function % D0 [6 O1 {4 O+ j0 h3 f  K
%>- [# F6 i. f  u3 C4 Y2 V
===============================================" c$ W+ ~/ ?8 w$ }% z

. R1 o! `+ }3 Y还有一个用于测试这段代码的test.asp
2 h$ M9 Q% G6 g有兴趣的自己搭建个IIS测试下
! G* C- |2 L& V& v$ w  w4 _; x<!--#INCLUDE FILE="RSA.asp"-->
6 i' w; c2 T# W/ ?<%
) `# b* H4 U" i% M% R- M# Ofunction Encryptstr(Message)
+ \7 {4 Q5 D& a5 O5 p1 f% [Dim LngKeyE   U2 u/ r  ^2 s3 b, r- ]
Dim LngKeyD 8 d# w0 L2 \! z0 t; A
Dim LngKeyN
6 b; ?+ E! }! _6 t7 GDim StrMessage   L; {5 f8 _: U0 N' C( {
Dim ObjRSA $ K7 ~; S( P/ i: |; y9 b
LngKeyE = "32823" " x& n8 U- x  {4 I  r1 H
LngKeyD = "20643"
( h* h7 u8 g7 b7 sLngKeyN = "29893" 9 j5 I- F- c" F5 P
StrMessage = Message " r% l! S7 t, ~3 Z9 l
Set ObjRSA = New clsRSA $ I! y" e& n7 r- b0 b# V' T' O
ObjRSA.PublicKey = LngKeyE
) v9 `% N3 o# u6 ^# IObjRSA.Modulus = LngKeyN ' l$ l& x" c7 k- [# e1 a1 Q" T
Encryptstr = ObjRSA.Encode(StrMessage)
! \: |7 r& O- f* i  iSet ObjRSA = Nothing 7 t2 r, c, M9 e5 P
end function : w7 _2 i4 c" b& g
function decryptstr(Message)
0 _. n. i- M1 @/ R. ^! o+ y; kDim LngKeyE
5 H/ b; w8 |* n9 o  p! u1 y5 S+ sDim LngKeyD 7 z7 `! V! {3 c! L
Dim LngKeyN $ b( o& G4 @% |2 r" x3 {
Dim StrMessage 2 Z" y% _5 ^. E& e- T' r0 B
Dim ObjRSA
+ D' v4 G/ S! k1 V. [8 w* ?LngKeyE = "32823"
/ t- q5 \9 _3 l. tLngKeyD = "20643" 8 A! x# J: a% Z% F- h7 H) D
LngKeyN = "29893" ' I9 y% u5 ^, K% i5 F
StrMessage = Message
  Q* R  V& H) ySet ObjRSA = New clsRSA
  ]# r( L5 [$ k! g7 y9 j8 JObjRSA.PrivateKey =LngKeyD
/ P* ~6 f4 `# }+ @+ y0 mObjRSA.Modulus=LngKeyN / I5 }4 ?/ M- U4 Z1 p2 e
decryptstr=ObjRSA.Decode(StrMessage) : I" x1 p. Q2 b
Set ObjRSA = Nothing
  z9 A5 W' u2 |1 }* ?+ ~end function ! U! b+ P5 t( h& |& F. q# H, z/ E
dim last,first 5 P. t# [& [0 a- f  A2 J
first="!@#$%^&*()" 8 c6 b# W2 F( B" _! ?2 r
Response.Write "加密前为:"&first 6 @0 k2 g4 G' f; k1 t# Z
last=Encryptstr(first)   c, p& C) k/ `( M/ E
Response.Write "加密后为"&last * S+ e  y, Z# q* @2 F. f/ I, T
Response.Write "解密后为" &decryptstr(last)
4 I2 l9 j+ {8 v: A6 p2 H7 j%> ==============================================& q' s/ P: I; i' s9 B: v. U2 V
剩下的就是字符的对照表了2 V. y  }" t3 n; D* n# W) v
===================字符集================
: Z; l6 }# U% z3 `  c1 B5 o9 F/ Z1_____6EBB
9 Z& x8 v& ?  y( K2_____5C1F  W4 I$ R, F7 e1 c2 A
3_____4D75
& O3 w, V+ H( D4 D* s4_____26CC/ g) U5 I- a5 i% l
5_____4F88
4 ?: [- H7 d" L( V6 `9 }7 ~, W6_____3F4E& k2 Z* n5 h* t9 u$ b
7_____0A9D
2 U8 n: h9 d6 b5 F- H7 Z5 z* j: I8_____1A1C
+ m9 _5 V) x& W& [/ U4 J" F9_____6D20$ I6 s* |) C; @
0_____1089" n$ L' s( {0 r% B
a_____0F3E
0 f. g6 O5 x9 S0 ~3 C, d+ y$ T7 ^b_____31592 A1 [) E& U$ J9 P' V) h
c_____3517
* O/ n! e' U- m% s# r: Hd_____419C+ Y1 j! Q1 A# w7 K
e_____615C0 j5 F" q. W" X, n6 [7 Z
f_____556F+ ^" M' S5 m: B; y* ^) t
g_____2B7F- ]  N0 h, M. _& ^; W) \
h_____0F9C% }$ W. G4 p" P8 j$ ~9 t/ W0 z
i_____00FA
/ O: a4 M& E" m8 R3 h1 J. aj_____5A50! d, o/ m+ g6 t, r
k_____2850
- z  y  W" ]1 P$ `7 k, Ql_____3E7B
) b1 f' r. B: z, l: Km_____71C5
! O; c2 y1 f4 O, r: Q2 C2 A% Sn_____1FC8/ O4 M+ u  e5 m7 }1 s
o_____74C1
, e7 M9 p2 J# r% u. z/ N2 _& Np_____5FB8
7 E' K. X  ^& N5 e% \% fq_____6085
4 K8 \% l6 Q$ R: z5 h6 or_____3AC4
0 M1 e& `4 j0 O: y- Ws_____2F50! I+ d" |: W! n  q
t_____36F8: k2 G& {7 R/ ^. t# J# s
u_____7010" J6 ?0 X: F; G. M$ V% i% i
v_____0B42
- s) e" r2 M+ F& P% |w_____1C7A# W0 D! ^$ a& ?
x_____16F8/ l; ~3 y4 A3 N
y_____2EE7
0 V* A; c# U8 b9 c1 |! w; iz_____5CF3
7 j8 f, y# j" m!_____6233. C9 L# |/ A, @/ F6 G1 E
@_____3A456 p- H5 q. E& x+ \. f0 t5 l  T
#_____2291
! H1 r' O2 [7 b$_____5D5C
& k- F7 [7 U) h+ K+ O/ o/ }%_____09B9" z% L& d# j8 ~4 X4 B0 s
^_____43EA
0 P, G0 _( d+ q: y&_____62B9
/ P3 o8 z$ e( _! s6 @7 i% }*_____6301
  ~1 m) \4 y5 J$ g% C' k1 v(_____4659
: x/ ^: G: L3 ~6 A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表