返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm6 }( k0 T: o& d$ e/ w' v
原始出处:http://www.3ast.com.cm
3 b4 v# M( n5 d+ W
( T! B8 T# Y( ~! R; r看不懂的直接绕过# A4 x5 v. a; T+ d7 T
加密前为:hwy123456
8 A9 V5 w: d+ J" l8 x7 g7 G4 ]加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
* |# R5 W9 g! h0 i/ U4 c
3 ?/ i" b' x8 x; @8 `# P============================================7 y; f( g# F' Q# @, @" V3 _
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
: l4 n8 c/ ~/ d% M, c7 ]  B& V0 g也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法! B* p  C7 X! y# Y7 y; x/ A' E  i
以下是RSA算法文件5 Z1 C2 v/ R0 r

# S8 H, n8 ~6 y- m; t7 i- R文件名RSA.ASP
) R6 `* K; I* h/ q===============================================8 B8 r& ]  {* i0 }8 u; I
<%
; |1 v4 \. v$ o, NClass clsRSA ) M5 ^+ U7 S2 D# b! @& `
Public PrivateKey
, H+ N5 k5 [! z( tPublic PublicKey
3 e0 t7 Z! x) c% V2 Q* HPublic Modulus ; _3 w/ f. _: j
Public Function Crypt(pLngMessage, pLngKey)
4 L2 f1 i5 j7 ?4 ]- cOn Error Resume Next
# \! Q, S3 k: P' FDim lLngMod - w) y. v1 V! s) @/ G. M! E" a
Dim lLngResult
9 }- x% v2 }$ IDim lLngIndex
5 K! L0 K: ^0 v# f3 wIf pLngKey Mod 2 = 0 Then 0 Y$ z0 N3 v3 S& o; b
lLngResult = 1 / l1 ]( G; F' l8 E9 ]
For lLngIndex = 1 To pLngKey / 2 . p8 D6 F+ {6 I: Y
lLngMod = (pLngMessage ^ 2) Mod Modulus
( D. b6 ]3 ~1 B0 b/ ?& j1 ?' Mod may error on key generation
; U* E, Z1 {8 \! ~lLngResult = (lLngMod * lLngResult) Mod Modulus : }9 Q$ `' t. K
If Err Then Exit Function " i5 `% ^/ }" K2 w$ S# g4 a
Next
' e& d5 y: N! m3 y/ d7 N, @Else
: _! c2 T9 r$ a& _/ K, y6 hlLngResult = pLngMessage 3 h. y3 u% M4 y/ n& u# q( p
For lLngIndex = 1 To pLngKey / 2
* z3 e! p( s. ~; E& [lLngMod = (pLngMessage ^ 2) Mod Modulus . n  Q8 H  Z/ p: l$ f0 t2 S2 v$ o
On Error Resume Next 0 V9 \6 t0 [. |2 f  t
' Mod may error on key generation
8 G9 X. g$ X: YlLngResult = (lLngMod * lLngResult) Mod Modulus 6 S: [+ R  A# i" ]3 M
If Err Then Exit Function ; v- m8 l. y. _- H4 Q* v- _+ ~
Next
2 ^5 ]5 {; f3 w. `. ^End If
5 j3 Q* u2 g  ?0 B' p  y2 t: QCrypt = lLngResult
  t+ E* G2 S3 c5 c2 n  _* tEnd Function/ ?' m4 R$ ?, T
) e, O! e* b, n- `6 ~  p( t! s
Public Function Encode(ByVal pStrMessage)
: @; z  T% V7 X' J2 d' z, q- uDim lLngIndex 8 C, l) c( h4 a
Dim lLngMaxIndex
. e; Z; E- S# d" }7 WDim lBytAscii
- e3 I0 v0 z' ZDim lLngEncrypted % _9 B& B: A) K- \, E, f( A3 O5 c! g
lLngMaxIndex = Len(pStrMessage) . t% i$ m0 {) g
If lLngMaxIndex = 0 Then Exit Function 4 z5 \# W; t* N* l
For lLngIndex = 1 To lLngMaxIndex
4 W' J* A6 |7 e7 x! q+ nlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
6 E% d2 T1 D) l" a- U) @/ blLngEncrypted = Crypt(lBytAscii, PublicKey)
; Z3 t2 a4 a7 k8 g! m$ N6 Q: lEncode = Encode & NumberToHex(lLngEncrypted, 4)
( K$ m! p/ r2 A1 mNext   t, A5 Q" U7 u! u1 {  T
End Function
7 w; T2 T0 w  w8 G' N* ~. PPublic Function Decode(ByVal pStrMessage) 6 O; G" t1 Y" X8 w5 T5 ]
Dim lBytAscii
& _1 {  l! i; r2 G: Y! NDim lLngIndex * F4 o, ~( |  x7 _$ q3 o4 U
Dim lLngMaxIndex + h, _# a( a6 ~6 ^1 V5 a* O( j  _# v
Dim lLngEncryptedData
5 p6 t3 ~5 I; i* g' A& @( R1 n( ZDecode = "" $ |0 k' c- R* q1 l
lLngMaxIndex = Len(pStrMessage) . r2 U6 k) @% T& h. P9 @
For lLngIndex = 1 To lLngMaxIndex Step 4
/ o6 i3 z+ t  Q( `! \lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) # B0 y$ o. h) b) \
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) $ e: d+ M! B- k+ \5 f  e$ x
Decode = Decode & Chr(lBytAscii) 9 ]) ^5 a* \; ]
Next
7 p- g( [5 B2 Y  ~9 uEnd Function
* \+ y1 a9 J% g/ kPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 A# a" _9 u. U8 MNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) * {: i; T8 q6 q' O3 e  p+ \
End Function
9 Z4 e1 B6 ~) Q7 S5 `2 U+ _Private Function HexToNumber(ByRef pStrHex) , z' s" k  N' a$ J, B3 W- T* e/ |/ Q" O
HexToNumber = CLng("&h" & pStrHex)
; B( ~! J" }. w! _End Function
1 {6 ]7 \- G1 I3 ^3 _: e8 ^# \1 qEnd Class " l$ q3 Z, C" S0 ]) y- x
function Encryptstr(Message)
  s+ R* B0 @. \5 L$ q) E3 ]Dim LngKeyE
$ J* `4 Z# @* yDim LngKeyD
% ^* m: p' [  A, k* j! l1 [Dim LngKeyN # v, R: p: s0 c( {- \. A6 c3 e
Dim StrMessage
; f$ t3 f; D" E2 H8 l3 e7 |Dim ObjRSA
, N8 Y( c4 n. M$ BLngKeyE = "32823" ' u, p- X- w1 ^5 ~. T/ F
LngKeyD = "20643"
+ [7 a2 ]) q0 {; v; U) S0 cLngKeyN = "29893" ( M, }" m$ M( [6 X
StrMessage = Message ) u/ E0 d) C8 s3 v& G2 L
Set ObjRSA = New clsRSA 6 ^( G1 B8 c1 L. v1 e. W" \; S
ObjRSA.PublicKey = LngKeyE
5 F2 V$ h+ h; T+ ^/ i7 ]" w0 T) A8 a5 Y! {ObjRSA.Modulus = LngKeyN : h$ Z' a: _% G  W+ O! m
Encryptstr = ObjRSA.Encode(StrMessage)
/ M! ^# d2 m, J% x7 a- ]Set ObjRSA = Nothing
: B" E: t  t$ f( y% @+ Lend function3 J: ~6 y, g& \: Z1 D
Function Decryptstr(Message) / d. O' n7 A' I# k* g
Dim LngKeyE
0 U3 ]( ]4 v! w- p( [, nDim LngKeyD 6 Z. p! A3 {. a" t% ?6 m$ L
Dim LngKeyN * ^8 L5 P# |4 s1 E" M2 ^% s# [! D0 k
Dim StrMessage 7 c3 E7 J0 a# J. u1 ]) c5 {
Dim ObjRSA
' f3 y8 ?. z. z) ALngKeyE = "32823"
- K/ J  t% K: R4 W2 u& t% }LngKeyD = "20643" 4 m6 x, t/ p" d, K9 D# u2 S
LngKeyN = "29893" ! j, O  p, n; @+ i2 ]9 v, o
StrMessage = Message 9 D; y* k9 w# x2 }7 o2 _$ ]
Set ObjRSA = New clsRSA
( Q7 F, M6 `  c, D: ZObjRSA.PrivateKey =LngKeyD $ B9 b2 x" h9 O% \$ k' d4 V
ObjRSA.Modulus=LngKeyN
5 Z* T7 q( @4 Q# D, s4 ~  V9 i8 ?decryptstr=ObjRSA.Decode(StrMessage)
4 z) q3 M, p9 nSet ObjRSA = Nothing $ f/ r0 a8 D' M
end function   P2 K2 i+ p1 k3 E  f7 M5 @+ R4 n6 G
%>
+ s5 V& {# ?/ g, t0 V===============================================9 ?  H  {  i3 c+ J: f+ V
2 V* G  H5 Q' ]2 ]
还有一个用于测试这段代码的test.asp
  Y; U' F' A& y有兴趣的自己搭建个IIS测试下  O* }# O4 U; o$ N0 L3 k+ Z# v
<!--#INCLUDE FILE="RSA.asp"--> / @  ^* P! v  D; y
<%* u5 |* T8 |% H- N
function Encryptstr(Message) 0 K& B# ~$ k# o/ w4 v
Dim LngKeyE 4 d5 D2 V9 `8 j( F& v6 X
Dim LngKeyD 7 N/ W' C2 O" \: M  e
Dim LngKeyN 1 x% b' G2 N' D
Dim StrMessage ) t6 U! P1 C* w: x
Dim ObjRSA 8 t& \$ L2 T: e" N5 G( U
LngKeyE = "32823" : b. x) x/ c# Z* D+ a$ Q
LngKeyD = "20643" $ J3 M' J7 i/ ~' y- `% C5 i3 {
LngKeyN = "29893"
# y4 a% ]  \5 ]7 q" q; vStrMessage = Message
2 G& R% o) J% m& i' f' S1 u. Q/ LSet ObjRSA = New clsRSA
- Q+ p4 T# b2 W! O9 H+ SObjRSA.PublicKey = LngKeyE
9 d2 S$ `: L6 O  k0 b& FObjRSA.Modulus = LngKeyN   i. n, m) w; W0 n5 U$ I7 o5 [
Encryptstr = ObjRSA.Encode(StrMessage) # @/ h2 k) u/ j( H
Set ObjRSA = Nothing 0 T: r/ C1 c; E
end function , a* |; g; u% x% X/ o2 V& Q
function decryptstr(Message) ) d6 k8 ?8 h$ J8 v/ n
Dim LngKeyE 3 M! ^0 T; s0 k  G
Dim LngKeyD
9 C; W( Z+ U$ g% _8 @Dim LngKeyN
% o# Z$ ~+ b* v1 dDim StrMessage 8 T/ U5 p6 w2 C7 d/ X7 w* o) y
Dim ObjRSA & Q2 @8 P3 r( b& P9 Y2 ]
LngKeyE = "32823"
% p; z* @  X5 e7 r' u0 RLngKeyD = "20643" 5 S% Q$ t4 \* T. O2 W* A# n, i3 C
LngKeyN = "29893"
7 \2 E) a' v- q$ L8 a  j$ QStrMessage = Message
  B" q( H1 M; k" USet ObjRSA = New clsRSA
" T) \( C& ]  g$ u- EObjRSA.PrivateKey =LngKeyD 9 t# c6 w1 S7 t7 q- ^2 H3 C
ObjRSA.Modulus=LngKeyN
: c& b; t9 y5 wdecryptstr=ObjRSA.Decode(StrMessage)
; g6 d' K4 K0 R1 T2 j3 nSet ObjRSA = Nothing
/ P9 C0 x4 Q4 y0 P! Xend function ! |/ ]1 F  F! T' M2 O3 ]
dim last,first * [* a% x$ Z( O5 J* Q
first="!@#$%^&*()"
) }( {# D  N: G3 v. U' XResponse.Write "加密前为:"&first : J5 F) l( T% P6 _+ j" |, @% j
last=Encryptstr(first) * a" I0 ?3 ]* @  e
Response.Write "加密后为"&last
* q# y2 c- @0 k3 c) r8 i* M$ @Response.Write "解密后为" &decryptstr(last) 2 i8 Z$ k* N3 F+ S5 t) K* N* g
%> ==============================================
5 a5 {- @, E. t! J/ ]剩下的就是字符的对照表了! m8 l+ h# s/ B" p( Q1 B' I
===================字符集================
+ x* s2 p# r  n% K6 F1_____6EBB
  ]! k' O* ?  }+ ]) d- }! x3 S2_____5C1F. J$ E# K8 U4 a" C! X4 Z4 Q: q
3_____4D750 w9 u' R: w9 Y
4_____26CC
: T3 k! Q* U0 X4 \) }5_____4F88) @; Y. j2 f& V+ a
6_____3F4E, {" r# _7 B7 ?# s) t- _  b
7_____0A9D. z, B$ m: O3 f' a, T5 ]
8_____1A1C
: g. ]) x- v$ r- d( |2 c: f9_____6D202 c( P! }2 X. ]- c- D: @
0_____1089
7 U( m( q: R5 r% j" Y$ b1 w0 Ca_____0F3E
; g1 l$ ]2 P7 `, e! ub_____3159
! K% q2 O, `+ y1 Qc_____3517
- h. N- E+ Q6 t) M, Fd_____419C
1 C/ t) V4 j/ t2 n3 \e_____615C
( v: l0 ]9 {8 K+ k9 p* hf_____556F
- N' n$ h3 _' Zg_____2B7F; ?# x" K+ C4 {' [
h_____0F9C1 w0 A0 V! T* o# }* z7 A
i_____00FA% p5 ?3 |  Q. o
j_____5A503 E! W# g8 E* a2 H, p# {
k_____2850, f( `* u5 G+ p0 u$ C9 o# l# {
l_____3E7B+ b8 N# u& \9 `( E1 G
m_____71C5
0 o+ |9 q: g1 d" _, d2 ?n_____1FC82 ?3 T- D4 n6 D9 C- e" a' z( q
o_____74C1+ z! O( B  j$ R% }+ \) r3 N
p_____5FB89 W. Q$ `/ _- [7 r% A& w% w$ p
q_____6085* t1 X- c+ t8 P6 z7 f9 g
r_____3AC4$ O% @4 b; G3 n( f  M, L
s_____2F50
7 r/ A- p( x2 P" V, v# pt_____36F84 u! p" G/ Y5 Y/ |, r$ A
u_____7010  u* \; q" C+ }* Q5 I
v_____0B42; n% n* l% B) |, o' W5 ^# y
w_____1C7A
. v) D8 l- L1 u/ _+ o3 C' mx_____16F8
+ m& M# [( _' m7 `y_____2EE7
$ j/ H" \1 k$ C; M# d8 ^5 Xz_____5CF3
7 W& `* `+ s& S: }* Z1 y!_____62336 A  v. Z# I9 |
@_____3A452 O1 x$ _) U: N8 ^5 C1 w
#_____2291
& O% i) f3 B* k8 u6 d6 s0 d1 P$_____5D5C
1 ~+ z, R+ \) \$ ~" F0 \6 B%_____09B9
" L" ]3 h. o+ C# Z^_____43EA8 i) t& [/ c  I4 L+ `# ]  q5 C
&_____62B9
# i- L: y4 S' N2 @; i; t+ F% \+ t1 ]*_____6301# G: D! ^4 V6 |& i7 m
(_____4659( v$ o" I2 N; i0 }
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表