返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm# h  V4 C- p. `
原始出处:http://www.3ast.com.cm4 {! I: @* d/ s6 e/ w; i

' x$ x2 o# K/ o* s* u看不懂的直接绕过
+ ?4 `0 A, t# E加密前为:hwy1234563 R1 n& d* f4 N" q
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E- Y  F! d2 k, f; A' W$ q5 H) G% M

) k% s6 `! U5 F3 k' |( \. d============================================
/ B- s1 F; n4 V7 Z上面是当时自己校内的心情。现在已经解破出来了,分享给大家
9 m# V2 T" ~! o( U7 L, Q; s" F也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
* o9 \+ }" H  d4 k8 F以下是RSA算法文件
) d7 r' h7 m6 V3 g( S/ e* f9 `- m6 K& @# P7 K
文件名RSA.ASP
4 k0 o( c0 s& |4 Q===============================================/ p- i. {" r* i/ N4 g
<%
4 V% [. I% v# [7 d% M; RClass clsRSA
( m: I* e2 T4 G0 V0 G* JPublic PrivateKey
6 n. i. i; N" M% g: K( Q0 E% ]Public PublicKey
# M: N2 E3 D4 V  P2 U3 NPublic Modulus
0 M8 R$ M7 q5 K! D) A% v" pPublic Function Crypt(pLngMessage, pLngKey)
+ v  x# u$ Q' }" g6 Z& ^! COn Error Resume Next 2 {. ]6 p% b9 S( f8 @
Dim lLngMod
8 M3 U1 p5 D; M5 x* M. }+ SDim lLngResult
5 g* j4 l9 X# ~6 l' ]Dim lLngIndex 6 l( b, v6 L( m& Y* X& s
If pLngKey Mod 2 = 0 Then : n' N/ R* S* P& a
lLngResult = 1 ; r4 p1 E( B2 h0 U9 f: W: Y7 C
For lLngIndex = 1 To pLngKey / 2
0 V4 p( O2 w/ A9 j& r0 G8 X. O6 W7 K2 [lLngMod = (pLngMessage ^ 2) Mod Modulus
+ i# h3 p; r1 M( H  N( n6 F' Mod may error on key generation $ x$ v3 V. {2 h+ o) w; [
lLngResult = (lLngMod * lLngResult) Mod Modulus " u3 Y" t6 \$ ~
If Err Then Exit Function
4 F" B( z, p1 O. B5 _Next
- t" {9 {9 b& e/ _8 ?Else
9 r3 B2 Z, `' R: {1 {lLngResult = pLngMessage
: }* G* W+ Z( h* z4 s& n# J: |For lLngIndex = 1 To pLngKey / 2 0 V& |9 y# E1 l0 \
lLngMod = (pLngMessage ^ 2) Mod Modulus
. {. }9 L+ B0 G  @6 [; Y- M# ROn Error Resume Next
) Q; t9 m6 n* ^' Mod may error on key generation 8 k# p4 @" A* r$ R
lLngResult = (lLngMod * lLngResult) Mod Modulus : S5 U) ^  `% Y
If Err Then Exit Function   E: V* W: k1 Y) i! J. f
Next # t# }2 S2 T1 @- {/ Y3 W6 M" p5 I
End If % q, L- \) i0 L" ?% j
Crypt = lLngResult : j7 C, S9 J. a* H; A8 c
End Function
% l* r3 `# q3 H- B9 }3 Z+ P5 [0 O, }8 U
Public Function Encode(ByVal pStrMessage)
( e. n0 L: c# D, f2 A3 N' Y( G* d& ~Dim lLngIndex
8 }" d% a. r4 m: C/ yDim lLngMaxIndex 8 V0 T; Y* m6 }  L. z% @, u
Dim lBytAscii
( K' r- r4 ?& l3 V8 [) _4 mDim lLngEncrypted
/ }$ g. |' g7 M9 FlLngMaxIndex = Len(pStrMessage)
9 w/ f1 u' f! Z# |& uIf lLngMaxIndex = 0 Then Exit Function 4 T( R1 y; o+ A) s
For lLngIndex = 1 To lLngMaxIndex ; G4 p1 j: K, t% A, D- f% S+ d" ~
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
9 d# w- _1 p4 c: d& @" w: D0 hlLngEncrypted = Crypt(lBytAscii, PublicKey) 0 E9 J8 ?! V  j6 Z% N
Encode = Encode & NumberToHex(lLngEncrypted, 4) 1 S( Y# F2 c' H; l# p
Next . ]& s* E3 k  p5 s, V8 g& m
End Function 4 B: F' j+ r6 }" s& P
Public Function Decode(ByVal pStrMessage)
& R( k8 @& h$ Z" `% MDim lBytAscii
( |8 h3 \( p' c/ TDim lLngIndex 1 S+ P& L, p- W: d0 y2 N* ]3 B
Dim lLngMaxIndex $ H0 K( u1 B$ U/ ]: w6 j* c
Dim lLngEncryptedData , h( w5 \8 r* q% {3 k
Decode = "" ' E. T3 W+ L; [; Z) Q  Y
lLngMaxIndex = Len(pStrMessage) , ]5 i6 v5 U) ?& x% d7 v
For lLngIndex = 1 To lLngMaxIndex Step 4
2 b* q! e. l4 Z/ U; j) WlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 [; B" A! x7 d8 i7 |
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 4 n$ T. C8 R, H3 o8 q
Decode = Decode & Chr(lBytAscii) 6 O1 t; c! t# ?( m
Next 5 u* S$ K- W8 j5 F1 x
End Function ! Y7 Q" |2 Y+ F( x6 I' D
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
, O, ?9 p, w  _6 C5 Q; dNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
9 g6 L- H& B; M7 i* m( z8 REnd Function $ d  K, m% |) E0 d: \1 d
Private Function HexToNumber(ByRef pStrHex) 0 v8 s5 B2 z0 g9 ]2 g9 j. r
HexToNumber = CLng("&h" & pStrHex)
' Z+ [) h+ s8 o; d0 N9 sEnd Function
6 Z5 O! T$ o1 {- k1 g: k8 i1 PEnd Class
( Z. Y; y2 g' j% n9 w, Zfunction Encryptstr(Message) + D# K0 {8 ]4 T# w: R
Dim LngKeyE
) d& d3 Q( {4 |5 e1 dDim LngKeyD
$ N9 ]  C0 m' H7 ZDim LngKeyN
' T) p7 e- G' s% `$ _  j$ _7 xDim StrMessage
+ {( H2 {3 b* h- u  ADim ObjRSA
! d! C1 q! f9 @, p! wLngKeyE = "32823" 1 a8 _1 s1 P# `3 i
LngKeyD = "20643" $ g/ x" n  T' E' m
LngKeyN = "29893"
0 [$ j+ k  a% lStrMessage = Message 6 ]8 S9 R) L1 O3 ~: |5 g
Set ObjRSA = New clsRSA
, h3 A' f8 T3 b9 d0 i& e; [ObjRSA.PublicKey = LngKeyE + U' j7 g+ V2 `5 K0 w
ObjRSA.Modulus = LngKeyN 6 K/ t* M% R# a# A3 u8 p! A
Encryptstr = ObjRSA.Encode(StrMessage)
' |+ r7 ]1 l. C& o! BSet ObjRSA = Nothing
$ B( ]/ T" K6 E& r4 ^end function
6 q9 o& }. q) ZFunction Decryptstr(Message) ; U8 W1 `  H  x/ a2 Q' @
Dim LngKeyE
0 u/ e, I" `9 [Dim LngKeyD 8 S# v, d0 v) H7 s
Dim LngKeyN
/ d2 c. @: }1 MDim StrMessage - z- [. W0 j  A) G
Dim ObjRSA . ]$ D. b; u9 w( ^% b! `# N
LngKeyE = "32823"
; n$ _1 w% ?9 y6 vLngKeyD = "20643"
: g5 P: @6 j$ s1 I: s8 sLngKeyN = "29893"
/ S. C; V( z- X& [5 fStrMessage = Message
/ d/ }2 A8 Z4 B7 J9 j* u% qSet ObjRSA = New clsRSA % Q2 ?% y  O. t/ c
ObjRSA.PrivateKey =LngKeyD 7 s& k: o+ K& U. O
ObjRSA.Modulus=LngKeyN ' ^; h, I& n" v5 N
decryptstr=ObjRSA.Decode(StrMessage) % e0 j7 c) ~7 U9 T3 n
Set ObjRSA = Nothing 5 [* K5 i& x2 }2 g3 H* Z; E8 l6 y
end function
8 f* s& V6 d3 ~- ?%>0 W: i2 I% h. k1 A- O) N. m
===============================================
5 J3 W, }  q. P) J
- s$ N( c& g( k7 h还有一个用于测试这段代码的test.asp
  q9 J% }  O" _" r$ t2 j" `有兴趣的自己搭建个IIS测试下
  u1 X0 j4 e0 x- `<!--#INCLUDE FILE="RSA.asp"-->
) M2 u2 t) T1 {9 t<%
+ v/ V5 @$ k$ c& p8 n* Kfunction Encryptstr(Message) ' s$ h2 Y: r  _0 `: P- E4 v
Dim LngKeyE
: N* j- J2 P' o- R$ _Dim LngKeyD 8 Q. D  E' u/ ^7 s8 m
Dim LngKeyN % H8 h# Q5 ]( k* U
Dim StrMessage ; S1 M' C6 ^' j6 W1 t8 H
Dim ObjRSA 1 |: d4 H9 k) Z
LngKeyE = "32823"
9 \; p3 w2 E( h  o% iLngKeyD = "20643"
6 q! U$ d& A) S" b1 y: F0 L- v  ALngKeyN = "29893" 4 H4 ^; F, S5 O* b
StrMessage = Message
* H! @$ k* `# C5 c- o: A% Z2 ~5 |Set ObjRSA = New clsRSA
3 v9 I( K( u0 oObjRSA.PublicKey = LngKeyE
% W% w6 {% W, m2 CObjRSA.Modulus = LngKeyN ( s2 J/ ], Y2 O! T( j3 F
Encryptstr = ObjRSA.Encode(StrMessage)
7 \0 E% n& |+ }Set ObjRSA = Nothing 7 r1 c3 b- i$ R% g5 Q
end function 2 \; u1 j7 w9 S% a- y0 X
function decryptstr(Message)
3 |1 {  l/ ?) o6 Z/ n  l$ ?# ZDim LngKeyE
% N/ k* Q1 y# }! [( Z' f1 UDim LngKeyD
- u) Z+ J; a% O" H0 l+ CDim LngKeyN 4 y2 A; q, s% \7 k: Z5 U
Dim StrMessage % B, |2 D0 o# x5 k6 M  l
Dim ObjRSA . u/ ^  z( S/ ~' h; w
LngKeyE = "32823"
6 ?% C* |, t) p7 SLngKeyD = "20643"
. |" x! @, i# h& vLngKeyN = "29893" & }1 K% g2 O9 e2 \3 J
StrMessage = Message
1 ~* H! B, `: p* U, DSet ObjRSA = New clsRSA & _5 l2 L9 B. D3 ~4 y
ObjRSA.PrivateKey =LngKeyD
4 r2 H/ F( y9 y' ^ObjRSA.Modulus=LngKeyN
4 \1 a9 q# h% m& ?0 u8 sdecryptstr=ObjRSA.Decode(StrMessage) 2 [, Q6 R: q* p6 Z. L; p
Set ObjRSA = Nothing , ?8 u/ O4 F, m/ ~. y, ?
end function 4 J6 V* U" k8 v8 l7 Q4 [
dim last,first , C) f0 A2 [4 Z3 P, X4 U
first="!@#$%^&*()" 2 S' B# H& ]9 f! S; ~+ C0 m
Response.Write "加密前为:"&first
% D' B# Z4 R+ B+ [1 L; k2 ]# Xlast=Encryptstr(first) 4 v2 v! Q' B9 h* J% U3 F& W, F) p
Response.Write "加密后为"&last 9 \& \- J$ Q6 l& o" j, d# Z# G* C" L
Response.Write "解密后为" &decryptstr(last) 0 a' M. x7 C) u4 e2 V  L* V9 z
%> ==============================================1 i7 b  |3 O6 R# M8 m
剩下的就是字符的对照表了
+ F; n4 n/ U7 B/ \- r- j/ d===================字符集================0 i+ c) m- z2 ?( \  Q2 y+ j
1_____6EBB: q8 y% a1 |9 o5 i
2_____5C1F0 o- V9 B' d) z4 M0 d$ T
3_____4D75
9 T/ V! Q* }( `1 I! S4_____26CC
: \# X; y2 E( `5_____4F88
3 ~( {1 E, U6 A0 E; w- \6 p+ h3 ]6 ^6_____3F4E
# V# ^, Z& b9 U; B7_____0A9D) G* q/ w1 k, T  x0 ~* ]5 E6 K, G
8_____1A1C' E2 y' h7 K5 b. t
9_____6D20
) t2 X& v$ J8 a4 A# l0_____1089& O$ E2 j5 I: r9 z0 I6 [
a_____0F3E
" H* `9 G$ B. @! a/ Ob_____3159
. ^, A" N5 @. {3 T! V0 P7 Y$ Jc_____3517: j% a: [1 V% Z
d_____419C6 e1 T1 L, P3 m( U/ U* }
e_____615C/ p( Z/ p2 B0 N
f_____556F
) U% u' r2 z% F0 o4 l, n: H7 ^( m& _# Sg_____2B7F1 [) L4 n2 z2 u3 g4 y: n6 s
h_____0F9C
/ u: h9 X9 E; {i_____00FA
) {  v- ^3 t2 ?& ej_____5A50
; b  i0 Z# l7 c5 L5 Pk_____2850
; R/ |7 q3 @! v5 D% u4 ol_____3E7B1 l" }+ i2 k9 z1 G" `" g1 s
m_____71C5
) R' g9 n" O: F& O/ s8 R! T* En_____1FC8" l3 `% ]0 K: T# A$ Z8 Y
o_____74C1
2 `5 G" ?8 B( t9 B4 @p_____5FB8
3 Q8 J. {' S5 k/ s+ O2 A. @6 yq_____6085$ ]$ v2 m* m& M% B3 L
r_____3AC4
2 J; x% k% F" }- Is_____2F50
; F7 L  o3 ^$ h( l( A3 d$ o/ R0 X0 z  et_____36F8
- g$ {9 Z" V3 ?9 Q4 _/ iu_____7010
* t! \7 [5 g8 Q. i- x' `% C  F; {4 ^v_____0B42
/ s% A1 }: T- C+ T$ Y# s: Gw_____1C7A
" m8 B& Z9 Q$ L; D2 p1 ]( Rx_____16F8' q/ I: U/ b( H% o9 X2 s
y_____2EE7( P4 f* W  d. M; |3 k# e
z_____5CF3+ ^) y- m- e7 J2 H; z
!_____6233  M( Z: B& P  R1 z, A
@_____3A45
. @" S7 ^; {9 t4 Z( t1 ^#_____2291
: o4 u5 U! l# k1 K$ {; H' p6 m4 Z$_____5D5C3 T. M( J& [( s5 E# {
%_____09B90 X7 C( G2 Q# A, M0 t" C
^_____43EA
' J1 Z" L  z. u; f7 R3 n&_____62B96 L8 n, L0 E" K8 f
*_____6301
1 u: U' L3 X0 y, B3 K' L(_____4659
" m( Z8 y* i' g9 j; l1 l0 r- ]  J$ d)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表