返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
& n5 O6 N3 J' u: u原始出处:http://www.3ast.com.cm
$ \6 Z* U9 m9 ?' \/ U) O4 }" \- g0 {6 H4 u3 \8 C  |
看不懂的直接绕过
% q: t) T% g) b9 X7 _加密前为:hwy123456" i9 j5 [) @$ b5 u, l: v
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E+ {) ]( c! r; ]
1 S' f3 m# E* M' G) Z; h
============================================
1 |" |7 o. Z8 {! R% y7 z6 z: c6 G上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 j6 f" g% P7 r$ _& W+ z+ M也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
! F6 X6 _1 q8 I1 M( O以下是RSA算法文件
- Q/ C; o) C4 w, O9 E+ t
3 P* ?# K& m3 m  U文件名RSA.ASP
: E: Y! Y% @" a! R; _. M===============================================
: |: G) P( V  Q% b' o( b<%
! b- H. X5 n! c/ b0 j" DClass clsRSA
; I$ o( R( U0 i& GPublic PrivateKey + W* L+ c2 w, z7 T6 b
Public PublicKey 5 d1 }% L. [7 g1 j" a
Public Modulus
0 M' X4 P7 _/ O4 p& C* d1 \0 GPublic Function Crypt(pLngMessage, pLngKey)
$ f$ W$ C1 r: e  N: COn Error Resume Next
% ?$ V$ p0 J( B: u7 [Dim lLngMod
9 ~6 T3 ]9 X; @! p6 wDim lLngResult 7 P: A7 d3 V  j" _
Dim lLngIndex
9 N( i6 [7 J0 ]* T4 XIf pLngKey Mod 2 = 0 Then
, v3 l; L% C; l/ flLngResult = 1
# T- I7 C. B$ g8 E  AFor lLngIndex = 1 To pLngKey / 2
( B. }9 A2 c6 T- RlLngMod = (pLngMessage ^ 2) Mod Modulus , Z$ a) i/ W$ C2 Y7 e/ Z
' Mod may error on key generation
; T( ]( t* I6 r, e9 I5 _( wlLngResult = (lLngMod * lLngResult) Mod Modulus 2 c4 \( S6 Z2 c& G# J8 U- Z
If Err Then Exit Function 7 f# i0 V# J: {! J
Next
/ W( e7 Q' d7 S( ], E: B" J$ dElse
0 {7 S9 W  k8 a" Y2 nlLngResult = pLngMessage " _1 J6 p# k* Y, a* E! {3 W
For lLngIndex = 1 To pLngKey / 2
& V( D+ d  B8 KlLngMod = (pLngMessage ^ 2) Mod Modulus
1 H# c( B0 Q$ z9 ~: I) jOn Error Resume Next ( x( \" o  |  p
' Mod may error on key generation
) ]- U  P& X4 m( h' ~1 klLngResult = (lLngMod * lLngResult) Mod Modulus ! S% g! F8 L/ Q+ i8 X) h
If Err Then Exit Function
5 R. t) L, R$ |Next # P5 C2 k/ N8 ^7 A5 ^. e
End If % d8 o( e  f& A# k( j4 x# {8 O
Crypt = lLngResult   L) C  E9 P& A- t
End Function
- v4 y2 R9 {( `( }' Z2 x; [. ~. _* s
6 }& }. ?" n( jPublic Function Encode(ByVal pStrMessage)
7 S( P  ?! H. M* wDim lLngIndex / D6 `3 L8 H) G% q8 b
Dim lLngMaxIndex
" O' g. d& ?3 JDim lBytAscii
' y6 p' |, V" \- `4 t$ C  G" D5 n& hDim lLngEncrypted / `1 {! G7 I0 [4 n0 k! t
lLngMaxIndex = Len(pStrMessage) 5 l1 |7 A7 f6 X( @  i8 X
If lLngMaxIndex = 0 Then Exit Function
1 Y% W6 y% A/ ~) cFor lLngIndex = 1 To lLngMaxIndex . ]7 y' v, u3 w
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # r& m8 C  w1 S4 N: C+ E' V9 N
lLngEncrypted = Crypt(lBytAscii, PublicKey)
1 x  B  @' j: H- K' k7 b1 m& [( VEncode = Encode & NumberToHex(lLngEncrypted, 4)
  ?5 E6 h. w* J+ A% ~+ }3 T: Q6 z7 _Next
5 ]* M4 G% J4 T; s% r5 ~! P; aEnd Function
8 O6 `: d! V6 N2 ~1 A5 U2 W4 d% ]Public Function Decode(ByVal pStrMessage) * ]. u4 k, z+ r; Z6 c  q* B
Dim lBytAscii 3 j3 A* c: V" \% C4 N
Dim lLngIndex * @. X, w8 m. U+ O7 \( ^( d
Dim lLngMaxIndex 2 L* L) c7 k. n" w* D& _8 B
Dim lLngEncryptedData
) G5 ~+ N" Z0 v  M# C! `, X0 HDecode = ""
! }# N. `7 `7 l1 A( _lLngMaxIndex = Len(pStrMessage) 1 M6 R0 }$ s" N
For lLngIndex = 1 To lLngMaxIndex Step 4
$ P  i: v: x/ f' n: c1 \lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   m- l7 B' c* j" W6 i
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 3 ?. A& x  W, w
Decode = Decode & Chr(lBytAscii)
& g) U8 ?' n# P0 m& ?$ K$ uNext 0 h- f; `# i- c. ^. C
End Function
; \7 l6 ]( M% t- ~& o9 i9 F' yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) / ~" _( v- I! j% C
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
8 L. j* g' c, p2 k" {: tEnd Function
2 i% C1 g7 `! u7 n2 @Private Function HexToNumber(ByRef pStrHex) " m0 T  ~) K- w+ I2 \
HexToNumber = CLng("&h" & pStrHex) ; p1 a9 Z9 Q% @
End Function . |0 F3 }+ y" r% O; f: [5 Q
End Class
$ g& P- M) L: q  k4 K4 m8 ifunction Encryptstr(Message)
5 U% I1 g0 c0 P, N: i0 gDim LngKeyE
; q( W5 U; W9 wDim LngKeyD ( W! }" j. @: u4 J) Q+ j% p
Dim LngKeyN / k' M! f3 {# V0 z: l' e( l! |
Dim StrMessage . g, Y/ x1 m2 r) q; u; a1 H
Dim ObjRSA
- J( i) Z( G8 OLngKeyE = "32823" & `( Y) `" d. Q& O& P( @2 h
LngKeyD = "20643" + J0 E7 G0 |$ v
LngKeyN = "29893" 5 m0 y8 N% T3 r
StrMessage = Message " r+ H& r! W$ G9 c  @4 m
Set ObjRSA = New clsRSA 0 T) c! v  e( J! q
ObjRSA.PublicKey = LngKeyE
5 D; \4 `2 _) O6 DObjRSA.Modulus = LngKeyN
: y& T: L# ]2 o1 bEncryptstr = ObjRSA.Encode(StrMessage) 1 o; t% u1 M! h' o  K! i
Set ObjRSA = Nothing
/ a( L3 ]2 g) ]8 F) J! send function
+ Z. `6 Z* U) R) J3 X" c: SFunction Decryptstr(Message) 4 i4 N& _% a3 @( I+ S( h
Dim LngKeyE ; U0 a& i8 i" v% t  G& p
Dim LngKeyD ) a; |8 g3 L. ?$ V
Dim LngKeyN
$ Q- D+ C  `0 W4 rDim StrMessage ' l7 ^1 W7 T" z' Q& A
Dim ObjRSA
) ~; x7 _: D/ A( x3 n' v2 \LngKeyE = "32823" + l3 E* w( s6 e2 R  k+ F' [
LngKeyD = "20643" 2 N" \2 W' n7 v* l3 H- F0 I
LngKeyN = "29893"
% e& H/ G$ Q! f3 m+ H) UStrMessage = Message 0 a5 {8 O+ q- {7 w& }: ^( h0 d) l
Set ObjRSA = New clsRSA
9 p) j# x' r8 }ObjRSA.PrivateKey =LngKeyD
6 W: e& e: B8 U; j# T7 }ObjRSA.Modulus=LngKeyN * ^. a0 J$ ?3 x& c
decryptstr=ObjRSA.Decode(StrMessage)   \' L* c2 k3 p  O: }3 i" B: Q
Set ObjRSA = Nothing
- @2 [% u+ P3 W0 [; S" }' \end function
7 j& \8 |4 |+ b8 W%>
4 A  P/ Z- Y9 q+ v1 P+ y===============================================9 n  R+ ~3 I, U/ o9 n
- m+ ^; r' c2 n3 ]1 _6 t
还有一个用于测试这段代码的test.asp0 I3 u" m; G4 s- c0 }5 _
有兴趣的自己搭建个IIS测试下
5 d% s) U* Y5 X  A) i; V9 V1 k<!--#INCLUDE FILE="RSA.asp"--> 0 ~# `2 _; w6 F  v! d9 C
<%
, u: p! h6 F$ afunction Encryptstr(Message)
3 _! p, l: f- n; m# c9 ?Dim LngKeyE
9 [0 j1 b3 o/ \5 LDim LngKeyD
& c; [7 z1 X1 N4 n1 Z0 ZDim LngKeyN 2 r4 f: _* o1 b' W4 N) Y9 g9 ^
Dim StrMessage
# U" ~* G, l, `( lDim ObjRSA 0 q$ U- N. d; }! |
LngKeyE = "32823" $ ?& B9 g4 J- }$ B1 J
LngKeyD = "20643" 9 E5 w. n# @6 B4 ?
LngKeyN = "29893"
2 V- j6 P2 q; I- E  q/ sStrMessage = Message # ?, b; k5 m- M! K
Set ObjRSA = New clsRSA : S% q* U" {9 B* S2 Z1 z( W
ObjRSA.PublicKey = LngKeyE 6 C1 b" y/ u  [1 v, P$ `
ObjRSA.Modulus = LngKeyN
6 ?, n' W) J8 I) D5 bEncryptstr = ObjRSA.Encode(StrMessage)
$ i5 C9 h* ^0 G! wSet ObjRSA = Nothing
! [" G( B( s# E- Fend function
! F2 j$ M7 a, T9 B' X  kfunction decryptstr(Message) % _. c6 R, w; w% X" z
Dim LngKeyE
1 Z5 o( S& g6 ^' l" HDim LngKeyD $ f$ _0 K. i% u: ]6 Q
Dim LngKeyN
/ g, M8 {5 T. R) \# s& [Dim StrMessage 2 P3 R- y; J' e) d% X% g! L, r( X8 [
Dim ObjRSA ; Q* {2 k5 a( |
LngKeyE = "32823" 8 c4 r& Q4 o+ B7 R
LngKeyD = "20643"
; Y  Q. e' D  X9 Q) ?( i9 u8 fLngKeyN = "29893"
4 Z. e8 G' k9 r+ C6 |/ S' d& aStrMessage = Message
, X8 c+ {& _8 n# f1 F" ^( V  xSet ObjRSA = New clsRSA   B4 Y7 l8 c; N8 |, s
ObjRSA.PrivateKey =LngKeyD % T& E) v2 f4 Z9 N# X: ]! m
ObjRSA.Modulus=LngKeyN
1 C. C1 |$ B: k+ ]decryptstr=ObjRSA.Decode(StrMessage) . @; W$ Q# W7 j% W6 e& i
Set ObjRSA = Nothing
" T9 w2 p' n8 v; U! z+ Vend function
% ]9 I9 z3 r2 q* R7 u2 Hdim last,first % G# h3 _5 Z; i1 M0 X
first="!@#$%^&*()" ! p. |, K0 {+ h( v
Response.Write "加密前为:"&first & g# M% ~3 P2 I! @7 W' C  M) q' K
last=Encryptstr(first) % U# ]6 D3 E6 p; A
Response.Write "加密后为"&last ( {- B9 U! C; ^
Response.Write "解密后为" &decryptstr(last) # F4 L$ E& q$ ~- t0 H. {# L
%> ==============================================2 I2 |9 X/ `6 U7 y2 b
剩下的就是字符的对照表了
! `" {8 o+ I; d===================字符集================5 p7 f. N. X$ r% d' N
1_____6EBB
  u" P1 y, T2 H% P; L7 ]2_____5C1F
" S! ~7 a+ G5 b% x! N/ O: y" |3_____4D75& X6 o, Y( J, T$ {& @
4_____26CC* {$ ^9 ?4 z5 W2 j$ ~$ Z6 R
5_____4F88
; n; s# q" ^: p+ @8 a+ u6_____3F4E) a( G& o+ ]8 {1 s
7_____0A9D
0 c) A1 K0 m9 i& [/ d2 W6 [5 T; T% |8_____1A1C( K1 F) c( V$ U, M  D! D: ^
9_____6D208 E) o) }( Z7 N
0_____1089- G7 S% V, g6 s$ F1 h: ^" ^6 Q
a_____0F3E
, T4 `; I7 p+ S- g- F+ O0 Ub_____3159
/ X& x3 |$ T# Q7 s+ c" D) A) Ec_____3517
' B$ T/ U# F! n. @7 k" Pd_____419C
, j7 U1 J" R# a* k% a! N$ qe_____615C& t/ Y5 g/ R7 O* v6 N3 j# o
f_____556F
- C8 X* s8 r( [g_____2B7F! i# `% j$ F9 J6 k' c! T- J! r0 e
h_____0F9C
. ]1 y# v$ S3 h# z* n# i8 E" G. Yi_____00FA
9 `' D% K# y, E  k# S6 n3 i8 [j_____5A50  ~0 ]. q: ~' {) N% l4 f" |! {
k_____2850! @% p; k% \  z1 r
l_____3E7B
& Z$ H! ~0 X0 n% G5 xm_____71C5
0 m( T: p& y& kn_____1FC8
" I1 T: p7 i( R6 p4 _5 a6 ^2 co_____74C17 E2 b4 c' H& Z5 J
p_____5FB8
7 o; u% T5 p6 ~7 \) L' z5 Oq_____60858 ^$ \7 P" P& \5 W- @3 B+ c" S# s/ r
r_____3AC4. }# V( M/ t/ J
s_____2F50! T* J$ E# I& p& Q
t_____36F82 W7 W7 v- a. c  m& i* C2 x. o
u_____7010
  @3 T- i, ?: Pv_____0B42
# `0 ]8 `2 v, J0 I. _& P% @w_____1C7A
0 O7 X: [4 w' d: H8 n" Xx_____16F8
8 U/ l* w. L) E& t0 [y_____2EE7
' }7 [* N! D6 |  V. M5 s6 |1 w, cz_____5CF31 f% g6 H9 i2 |
!_____6233) D+ e' X% j7 V5 ]  v
@_____3A458 I+ X2 B" a6 a& u) A. n# T
#_____2291
" J6 u; E% j) y$_____5D5C
) ^- Z0 M2 Z6 W8 `%_____09B9
8 ~& g: k+ M% w7 O! W2 a( V/ I^_____43EA0 H% L; g) j* g8 D4 M+ i
&_____62B9
% B6 R' E, v# |/ ^: W' }% _/ ]5 |: [*_____63014 H: m6 A% B/ J+ W" E# e8 N
(_____4659
$ g8 O# \' V8 [+ R+ h)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表