返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
6 r, a$ C3 y5 v/ d# C* P% J4 d原始出处:http://www.3ast.com.cm6 p. A& c9 \  c; ~- n2 @

  U) N9 U2 N6 h" a8 B* [看不懂的直接绕过
3 x" U: b1 c+ r8 Y加密前为:hwy123456
4 b; ^$ x9 g5 |" X' ?加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E3 O7 _1 g( K! U3 q
' x6 R1 R9 W8 \7 S
============================================
9 d) e3 L2 b+ H0 J- |$ u. w; W5 j; q上面是当时自己校内的心情。现在已经解破出来了,分享给大家" h6 j2 w+ S  Z- K! j0 q0 a# M. f# Z
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
0 D% X. F7 l6 N' E8 t以下是RSA算法文件
, i4 y$ J1 M4 l# b$ n/ m  `; _! g( d+ Y( P8 |1 W# c2 U
文件名RSA.ASP) R' V$ R$ o! N
===============================================
5 N5 m2 I) m, J  _* l. w; Y, E<% 3 t- w6 }% G. d3 ~& |* l, D0 f$ f
Class clsRSA
% s( [, C6 n; C9 p  ]. hPublic PrivateKey ! L) o+ c7 L4 L+ v
Public PublicKey
7 N  N- K5 P: A7 F) F7 M' }! `Public Modulus
# p7 k* r# Y6 S9 r" R7 BPublic Function Crypt(pLngMessage, pLngKey)
9 n! `6 I3 ^% N! L3 mOn Error Resume Next
9 Z0 Y% p) b9 O; p, d1 yDim lLngMod
0 n5 P) M- i$ e( g5 D+ BDim lLngResult + V# G$ u- [. U! d
Dim lLngIndex
% T# c- m4 l5 p( n! @) K4 M/ U8 rIf pLngKey Mod 2 = 0 Then 9 T7 T$ _. N3 i/ y3 H
lLngResult = 1
; p* k, b' i& XFor lLngIndex = 1 To pLngKey / 2
8 |7 `7 x/ `9 f: o, J- `lLngMod = (pLngMessage ^ 2) Mod Modulus
* v) m: D6 h" `  r; }" o3 y- n/ Z3 j' Mod may error on key generation
" ~2 P: K7 L6 `7 |5 \lLngResult = (lLngMod * lLngResult) Mod Modulus 1 k8 O7 p/ ~( ~. ]3 y5 v
If Err Then Exit Function 6 e, @: ]" H/ Y" A8 E
Next
: C' d& z  K3 l6 ^2 [Else ) a( J$ `  ?1 I
lLngResult = pLngMessage
3 E* ?' T) k" Z: Z# M2 G, hFor lLngIndex = 1 To pLngKey / 2 + F4 C; L- f2 B% }' ^0 W
lLngMod = (pLngMessage ^ 2) Mod Modulus
6 i0 M( v! n" T8 \- ZOn Error Resume Next
9 E/ w9 R" z, f6 p' Mod may error on key generation
( X' R0 v5 c1 Z! R: Y- ZlLngResult = (lLngMod * lLngResult) Mod Modulus
6 ]. e3 T& b" `9 j1 j5 cIf Err Then Exit Function
5 |( @! b1 E3 H7 Z% _Next   n5 S- v4 A' p' d2 u6 S3 B
End If ) }+ I8 H' ]5 r+ O4 F  g* L2 C
Crypt = lLngResult 6 P! f. q. q! v- @5 G0 D, L& v! q
End Function0 L! I4 Z9 C9 r5 j) r

* \0 b: {7 v9 V4 N% e; p: @- lPublic Function Encode(ByVal pStrMessage)
2 [' [' K- d6 E8 m6 tDim lLngIndex . i. u. t! i2 S  F2 ^+ h
Dim lLngMaxIndex
8 ~% H/ j- w, s( S% }# qDim lBytAscii ( q0 o; m& `9 ?6 p9 W
Dim lLngEncrypted # b& r& W: f: B5 N+ R% F  N% v
lLngMaxIndex = Len(pStrMessage)
* W5 v% ~' V  ~# e* b( }! S! ZIf lLngMaxIndex = 0 Then Exit Function + b  @6 a7 v: O# X5 I  \
For lLngIndex = 1 To lLngMaxIndex
! l$ l' G/ G9 k( a+ R+ W8 G# ZlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) , Y/ S! _+ w6 z
lLngEncrypted = Crypt(lBytAscii, PublicKey) ! ?7 A+ q1 z# o6 N4 w# z' |
Encode = Encode & NumberToHex(lLngEncrypted, 4) 1 W, z4 \- F5 U5 F6 ?7 O0 P  L
Next
& W& H. L- Z1 ]End Function
" Y! j' b" l% w  W! U7 K) hPublic Function Decode(ByVal pStrMessage)
) c) c1 F* ~; D5 V- \* O1 i9 o" aDim lBytAscii & E) _6 v2 D; x# z7 Z8 o
Dim lLngIndex 1 \" I" `0 \3 j" n
Dim lLngMaxIndex
0 j0 f( N5 |0 e) ZDim lLngEncryptedData 5 M( A8 w: `% m" m
Decode = "" ) Z, N3 k/ d0 \( ]: N
lLngMaxIndex = Len(pStrMessage) ' D  z) M8 l+ v" B* |
For lLngIndex = 1 To lLngMaxIndex Step 4 - Y: _3 v/ K! V8 e1 R5 K* O
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   A: B; w& L& F, K4 |
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) / ~6 s+ J& k! v$ {
Decode = Decode & Chr(lBytAscii) 0 g  e8 R9 Z, P/ f
Next
1 G: h; ^' n+ {1 ]% xEnd Function
# {! ~. z& F2 k% WPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
. n, |* w7 g8 v: a  A& |3 J+ `. ZNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   V( |3 B! w8 J/ g# y- U
End Function 9 f. ^% Z) Z8 u+ U
Private Function HexToNumber(ByRef pStrHex)
* N9 a7 K! Z) r6 EHexToNumber = CLng("&h" & pStrHex) # K+ N5 h$ ]) b% u4 i
End Function
; I; j/ w- }/ a9 AEnd Class & G( z- L' L& Z7 k# x
function Encryptstr(Message) / w) u' T. b1 Z6 f2 O
Dim LngKeyE
2 l% B  U7 Z' ]Dim LngKeyD
( z8 K* H% v% u7 _Dim LngKeyN
* H$ t; x: ]6 X& R) k! K  c0 yDim StrMessage
: t8 u, p' |( g3 V6 B2 A( g& TDim ObjRSA
6 i8 @- I( I0 }4 |8 @$ qLngKeyE = "32823" . A" ^2 V+ t# n! j
LngKeyD = "20643" , n  Q# \2 ]- ~; y- k$ }% i
LngKeyN = "29893" % e1 o+ r+ ]/ L& u/ F' X& {4 }
StrMessage = Message 3 L" x) b/ J! K. L
Set ObjRSA = New clsRSA
% K! r" A) [  ?; y' ^+ A1 ?ObjRSA.PublicKey = LngKeyE
& Y- y, a- `- y. j( eObjRSA.Modulus = LngKeyN ! Q- e$ l% j$ a& y8 x0 X
Encryptstr = ObjRSA.Encode(StrMessage) . M1 k0 H9 d/ G) U
Set ObjRSA = Nothing
9 {) f. Q# f4 D$ ^( z; V$ Kend function
- `% g; y2 {7 b" L' ~, FFunction Decryptstr(Message) : _* E8 r- y( u
Dim LngKeyE + U0 o6 U* i8 @+ k. K
Dim LngKeyD
4 {1 q+ s3 f. c; l9 N7 P1 ?Dim LngKeyN
: C* F* v1 L" D. E  L$ T! `3 L, qDim StrMessage
' v  m! m! A) t5 a" x) ~Dim ObjRSA
* \# k9 T  v- n0 _LngKeyE = "32823"
% W6 A% @2 k! j1 @% q3 Y: y" SLngKeyD = "20643"
+ a5 Y( o% F4 K0 K$ I4 ULngKeyN = "29893" ) Y- i0 \; C! T  T
StrMessage = Message
, B  J& f" g6 A. d! @1 r+ _Set ObjRSA = New clsRSA 9 k$ H8 o# n' a8 N6 X
ObjRSA.PrivateKey =LngKeyD
" W% q9 b; F# e' ]ObjRSA.Modulus=LngKeyN
8 v8 U5 P# a+ n: r  Pdecryptstr=ObjRSA.Decode(StrMessage)
' e0 W2 ^2 r% VSet ObjRSA = Nothing   h% r/ d- O' I; m, o
end function 1 \: F( q% `  a4 a* [
%>: H8 i5 ~6 _6 [' v
===============================================5 x1 n1 v/ ^' T1 R0 C& A
3 m$ }+ ~9 H( |, D; r+ A
还有一个用于测试这段代码的test.asp7 @/ k' ?1 K' |  O+ f! ?
有兴趣的自己搭建个IIS测试下, f$ \& O! W& @3 v# z  {! ?5 w
<!--#INCLUDE FILE="RSA.asp"--> % [3 H+ C. Z8 r& E" w6 L% `9 p: |
<%, g9 P; A2 a8 \+ t
function Encryptstr(Message) % v# F4 N1 v6 N: }$ @3 U1 Y& L
Dim LngKeyE
" p( ]1 B7 T7 B6 S; f1 t6 G% H; tDim LngKeyD
! o9 T7 E. g. L/ B0 F0 wDim LngKeyN
( p( |& r3 e% G$ S8 _! d' O# GDim StrMessage ! b$ e' f5 H# }( |# v. H0 F
Dim ObjRSA
) N2 p5 M5 E7 i6 o' wLngKeyE = "32823" 5 S3 o( l4 w' u' d; D- y/ B
LngKeyD = "20643" , u* d4 I/ v8 q3 m% w! w: A/ ~. M
LngKeyN = "29893" 8 `5 \* B7 o. i: E# I( D
StrMessage = Message
8 {5 \% ^9 y# o& w7 USet ObjRSA = New clsRSA ! [; r* v( k- K# S
ObjRSA.PublicKey = LngKeyE & M% [* Z2 c; t) m
ObjRSA.Modulus = LngKeyN
. O- M) i- v5 @) {Encryptstr = ObjRSA.Encode(StrMessage) 3 i2 _) W7 h3 {) u0 g  Q9 g8 ~
Set ObjRSA = Nothing
  h( J, Q0 B3 yend function
% Y8 m$ S3 i7 k# Yfunction decryptstr(Message) 4 f" |! U' s7 ]$ ]. \
Dim LngKeyE - H1 L+ G$ r# E3 j0 D, e4 L
Dim LngKeyD
  t7 r. i& ^1 N2 D5 y8 L2 gDim LngKeyN . O5 ^# }# X0 l+ ~- m# O
Dim StrMessage
+ I. q% f1 ?& U6 C9 b8 M* F, g8 q& JDim ObjRSA
* N4 ^2 q7 c: y# yLngKeyE = "32823"
( v0 M1 o% \  G( pLngKeyD = "20643"
. c, }# D' V: g5 R- P- B6 a% RLngKeyN = "29893"
8 e9 u# t# s; p4 Z6 _0 AStrMessage = Message 0 J$ s* Q0 s. ]4 k
Set ObjRSA = New clsRSA
% I3 |4 K* F! ZObjRSA.PrivateKey =LngKeyD
2 {; l- Q% _* r/ s+ W% SObjRSA.Modulus=LngKeyN , y- v  u3 q2 N
decryptstr=ObjRSA.Decode(StrMessage)   D$ n8 x; d5 }: P; Q
Set ObjRSA = Nothing " w% c% M2 A1 B6 [, H+ x6 p# A  }
end function
8 X/ ~% r4 N4 C) s5 G6 j& pdim last,first
0 h9 N9 o/ T; @1 l2 O7 g& n7 r4 jfirst="!@#$%^&*()" % [, k8 `, f" t
Response.Write "加密前为:"&first 6 r2 _* J! V+ `% C
last=Encryptstr(first) - H2 x1 B! J: Z) X7 w
Response.Write "加密后为"&last
) S4 `% c# G2 `Response.Write "解密后为" &decryptstr(last) ( w- U" Q, L  o$ g
%> ==============================================
5 n0 ~6 \2 H! c1 h3 F剩下的就是字符的对照表了
. J: {6 E; Q) y8 c" k/ V' d===================字符集================
2 D% m2 Z" @6 D; |' u8 ^! c1_____6EBB  E. a2 T1 d1 W7 h, e" ~
2_____5C1F
) e* P3 P- l3 n8 r- |3_____4D754 D; q4 |. o: w% s8 M  d8 p
4_____26CC* s, ?$ a2 ^. F/ _) w  s
5_____4F88
% z: D" d+ m; X6_____3F4E1 N) x7 u, R- L- q2 S
7_____0A9D3 F0 j+ {9 J8 C% a' O9 |1 [
8_____1A1C- D/ H) d$ i: Q7 Q
9_____6D20
/ x. E, _2 D4 i0_____1089/ N, H# V  s9 V& n- [
a_____0F3E, H4 f3 `5 D  k( ~5 S& P6 K
b_____3159
% I0 F  H6 t/ U4 r$ {c_____3517
. t- D1 f  P6 J# {. ud_____419C# D( f: ~& @3 }/ j9 y% L) ]; L3 \/ ?
e_____615C( O) U' J: N9 n1 W7 F* B" G! I
f_____556F
, S" m5 j  _) E/ @- Rg_____2B7F
3 X2 W% B# q- \1 Hh_____0F9C3 V5 v0 l' a$ f5 B7 j' E% O" K$ w5 K
i_____00FA
, v+ g' ~6 x5 p# d! j% jj_____5A504 N5 ?1 b  O0 m8 w
k_____28502 z6 f4 l4 `  T* @4 `. F' r
l_____3E7B
& U! H) V& \& m7 ]$ K1 i8 }" pm_____71C5
/ o& C* |4 @1 q+ b8 A2 Jn_____1FC8
! V4 g; E: g* r" x. |1 go_____74C1
9 z) n) R. `- }% v% J' I2 _p_____5FB8
# d9 W$ O0 |( Y, Pq_____6085
- P& @# r4 S( r$ Ur_____3AC41 q" n3 v$ C) z' J0 ~6 x
s_____2F50' L1 B* o' L& R$ P4 d
t_____36F8
  ~& K( ]# p( |' b1 D2 m3 Z7 ^u_____7010
, ?& T; x' Z8 r! {" V0 ]v_____0B42
0 A8 A' L! h& x9 a6 iw_____1C7A/ u( j3 T  B" M9 b
x_____16F8
( b0 h, }, v) p( I" G3 ^" H; Cy_____2EE7$ |! `  L  o/ K6 s9 I
z_____5CF3
4 X, l' T* b! n9 c!_____6233
) c2 Y& N/ T4 R, C$ J@_____3A45
* n' q" _- m+ [$ x$ E5 _8 C* }4 F#_____2291" n9 d8 ?; `6 ^2 j$ v. I
$_____5D5C4 H8 y- x. v; N: ?
%_____09B9% Z% T. I+ B7 d* k2 K) M- m( @
^_____43EA* p2 J1 A8 \% A% ^/ L) n
&_____62B9. V+ |$ j! X- o
*_____6301& t5 I: `- }( I9 `  d7 i; `7 a( m
(_____4659: d, j/ x4 O& z9 I) _. l" U" ^2 J2 Y$ a
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表