返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm* l2 d3 P+ Z6 o! Z
原始出处:http://www.3ast.com.cm0 I/ \. C7 ?1 K
- o  Z; W& j' ~
看不懂的直接绕过  l' o, P* E# F, g3 K6 N2 [: @/ K8 R
加密前为:hwy123456' l; a; [  n8 w  m
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E- G- [9 M  q# [$ a4 N) e/ {( D& L- R
/ W- H0 D5 M, U! {. C9 y. N
============================================
- }* _2 n1 c5 ?9 T& U上面是当时自己校内的心情。现在已经解破出来了,分享给大家
* O! V% W2 p0 E- d% b也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
9 [% t8 h3 A) E以下是RSA算法文件7 Y# b; k- ?, g/ l
7 c5 y! B: x6 k+ d% ^
文件名RSA.ASP
/ `7 B3 Y. M5 }* U===============================================
+ [9 }0 M; O: I0 h  k! a<% 3 {4 I$ @7 |0 t$ \6 {5 Y
Class clsRSA + r, a6 T& N! E
Public PrivateKey + m4 t$ |( o' |, m' a
Public PublicKey
1 K& G. E1 P1 VPublic Modulus ( V2 C: P* Z% F
Public Function Crypt(pLngMessage, pLngKey)
; x0 `( V" \% q+ b! ]On Error Resume Next
6 j" @8 P! g. p2 R2 pDim lLngMod
! s3 Q6 g9 D; x6 x% BDim lLngResult
& l% f# z5 n. |: f; t% x9 u3 b1 BDim lLngIndex 1 S4 l. p! Z  K9 I* @* q  k3 ]
If pLngKey Mod 2 = 0 Then 4 B+ A& c: ]. L7 Y1 y
lLngResult = 1
2 i* P$ S5 ]- i7 [5 l6 aFor lLngIndex = 1 To pLngKey / 2
; i3 p7 |( J) ?8 s' NlLngMod = (pLngMessage ^ 2) Mod Modulus   {0 S$ }& q1 i. e
' Mod may error on key generation & }) F. a& ^% n
lLngResult = (lLngMod * lLngResult) Mod Modulus ' g5 `! ^& X! b& i; S2 h
If Err Then Exit Function 5 z+ {9 g  P% G/ Z8 A. G
Next & Z2 j& s0 ?8 {/ h0 ?
Else
7 D1 I$ {: W2 X/ {( K( V: klLngResult = pLngMessage 8 f+ P* y# `4 S* x/ o6 L
For lLngIndex = 1 To pLngKey / 2
1 d5 ~/ ]# v* v/ A' K- V8 b5 i( WlLngMod = (pLngMessage ^ 2) Mod Modulus
. m3 Y- P8 E/ ?. C9 D' X; cOn Error Resume Next
! F5 P  A7 s, _' Mod may error on key generation
( H8 y4 X* U' x; q; slLngResult = (lLngMod * lLngResult) Mod Modulus ; X5 D3 K. H3 G; y( b9 G
If Err Then Exit Function
6 r# a8 `  B0 z" p! T8 z" cNext ; s, w5 t  u. d. n# O! u
End If 5 P% c9 R* r% j4 C0 u+ s
Crypt = lLngResult
7 J! L6 [) K, TEnd Function
1 G3 w$ V' g* |1 o: d1 `1 K& v4 B8 A' f7 n( ]4 t7 q4 R( X# g
Public Function Encode(ByVal pStrMessage)
. `9 A9 Q* D& O, _' W: P" ODim lLngIndex 6 G$ z% E1 N5 c; x% X: o
Dim lLngMaxIndex ' I) Y8 _/ E, m$ H
Dim lBytAscii
* Q% Q5 f$ Y1 O4 @7 v/ ?: HDim lLngEncrypted
# N: [0 X: ~* x0 C8 \lLngMaxIndex = Len(pStrMessage) 6 r, f# `9 [6 a8 z; G8 f
If lLngMaxIndex = 0 Then Exit Function
  Y0 `5 U* Z$ K$ W: q/ @: i3 |For lLngIndex = 1 To lLngMaxIndex , {- b! ?& H+ ^8 f
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) . E. L( j3 T' p8 x% i! {" ]3 K
lLngEncrypted = Crypt(lBytAscii, PublicKey) 7 _3 H, L, }+ D6 ]+ q' D
Encode = Encode & NumberToHex(lLngEncrypted, 4)
! O5 ]. ?3 g7 ^: E% }/ mNext
% y. s$ ~. S3 F4 `End Function
0 A& }/ n9 @$ K, `! pPublic Function Decode(ByVal pStrMessage) 2 ?4 s6 r- W  ^; f2 {9 J( U2 `
Dim lBytAscii
% Q+ K0 J2 o; s3 G2 zDim lLngIndex % u$ ]- w3 z! d7 u2 _
Dim lLngMaxIndex 2 X+ Y7 `/ G& w
Dim lLngEncryptedData
% r  c8 E& Z- PDecode = ""
+ j8 D- O- U  Q: B' @/ Q' I: T8 NlLngMaxIndex = Len(pStrMessage)
9 _; X- ?+ Y/ F+ b/ T& t6 @0 {; }For lLngIndex = 1 To lLngMaxIndex Step 4 2 W4 w) L. a! [& G( Z
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   q! b  ^: \. z) e& C! J; @; W
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) & o% u9 S4 @% T$ h
Decode = Decode & Chr(lBytAscii)
6 O6 I6 h& l- h( n) @- J! s$ aNext ; c  M: D8 ~7 n( `" x7 r8 W' E
End Function
. p# p% c8 p) F% ^Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
1 X; X/ m6 o3 PNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
1 h/ w0 Y3 T: mEnd Function
/ n, ~2 n- a" gPrivate Function HexToNumber(ByRef pStrHex) 7 v/ r9 s. o( O; i4 y* ~% R
HexToNumber = CLng("&h" & pStrHex) ; b$ B( [: K% G. e  u$ W
End Function
, N+ N) M  {$ q$ u! zEnd Class $ Y) ^$ i$ ^5 `9 D' b
function Encryptstr(Message) % a, m6 e3 O/ F+ x$ _& k! x9 e' s- g: `
Dim LngKeyE ; ?* _: l3 H' C$ y6 g+ G+ v
Dim LngKeyD
& k. u3 p5 ^. FDim LngKeyN
* T; K/ G. |" u+ m* `" BDim StrMessage ! Z1 Z; E6 o6 Y0 C5 i* A' L
Dim ObjRSA
9 d, u: Q% a5 S, t7 R: y5 ZLngKeyE = "32823" 7 T# j3 `  G7 y/ b
LngKeyD = "20643"   K# c% A4 f2 G- F
LngKeyN = "29893" 1 q% f2 i' O, {0 B
StrMessage = Message $ q$ r. \2 j3 Q) ^2 J' G
Set ObjRSA = New clsRSA 9 Z0 V2 a/ ^3 y+ Q
ObjRSA.PublicKey = LngKeyE 2 B2 W, _1 {) m4 k! {: }: e
ObjRSA.Modulus = LngKeyN
- Q# @+ A8 `2 l; ?" QEncryptstr = ObjRSA.Encode(StrMessage) 6 _  q; _# ~: C( i
Set ObjRSA = Nothing + I: ~/ E! U. b' h$ U& D6 _
end function
1 D; Z3 _0 ~  y7 ^$ n/ V. z0 n; xFunction Decryptstr(Message)
: L$ b4 R( K# c* d# mDim LngKeyE ) V' F% U' k! ]( l6 m
Dim LngKeyD
3 w6 J9 U: h6 Q8 S' S' t! QDim LngKeyN
* P* H( a9 @* N, h: SDim StrMessage * p! }# n4 q, a3 k, P; r$ }5 G
Dim ObjRSA
/ `2 ?" `6 k$ N( S8 x& Q! [9 J- y' ZLngKeyE = "32823" 7 [+ Z1 _" J. z* Z8 i% u) ?; r- V" A
LngKeyD = "20643" * [$ V3 w1 ?4 t7 j# h4 F: g
LngKeyN = "29893" ( Q% B, ]. H$ N. z, y
StrMessage = Message
: F( a; x/ \: m& ASet ObjRSA = New clsRSA
5 v& \. `0 P- z) @ObjRSA.PrivateKey =LngKeyD 6 Z, L: o# |3 i# b: X/ |$ ~0 Q
ObjRSA.Modulus=LngKeyN
# y5 Q7 e# t# k5 V* ]decryptstr=ObjRSA.Decode(StrMessage)
8 K* Q7 t) N! Y! I/ c/ HSet ObjRSA = Nothing
9 ]8 i" v& @" Y  h6 p; i2 Yend function
8 y; @7 {9 P) M- F* x+ N%>9 |6 O2 a+ f: t, j
===============================================
$ v; r6 K1 m  Z& }8 z- }+ t6 g; B+ u4 k9 G) o0 L
还有一个用于测试这段代码的test.asp* i4 ~6 Z  b6 _/ `/ `5 A) J
有兴趣的自己搭建个IIS测试下
6 @# j* m) m* y7 k' @<!--#INCLUDE FILE="RSA.asp"--> & Y4 h! K2 s1 Z2 d
<%
$ y0 _, a* N- r9 r5 B7 W  {% U% t1 Wfunction Encryptstr(Message)
; c! F4 f2 Z$ L- YDim LngKeyE " q' S$ j  U- `2 H# f) P7 p- X9 F
Dim LngKeyD ; b+ y& W% {' c1 V. o  d
Dim LngKeyN
% |8 f0 R, K6 A- |1 |. j6 _5 M- [Dim StrMessage ) q7 p# g: p! _  f3 Z1 {$ @
Dim ObjRSA
- l7 N2 Y, ~! dLngKeyE = "32823" 6 t( }: i0 u5 J, u4 g- g& H+ U/ K
LngKeyD = "20643"
0 P! N: c/ N# D; |, I) |LngKeyN = "29893"
6 E; ?% N$ T  P( W- I5 r& dStrMessage = Message
+ D  W  ]/ C7 p9 kSet ObjRSA = New clsRSA
. G( L) i3 `6 i/ y% z- F: \4 MObjRSA.PublicKey = LngKeyE
3 _+ @* q8 q5 l: QObjRSA.Modulus = LngKeyN & n: H6 Z+ M1 ?3 m( V+ m
Encryptstr = ObjRSA.Encode(StrMessage) $ X, H: D8 d7 D: |7 U9 K/ ?& Z( Q; p
Set ObjRSA = Nothing 7 O0 T6 y7 J. j6 b
end function
* W5 ^" K) `+ ffunction decryptstr(Message)
7 b; V, d# }3 w# }Dim LngKeyE
8 o3 j: |4 v2 HDim LngKeyD - h! A0 F" }2 g0 {! S5 E
Dim LngKeyN
0 w0 x; w. Q0 \. rDim StrMessage
( R# v; i. B) m2 @: M) }) zDim ObjRSA
& q2 \  v) D8 t$ W& a( m! T1 ?4 KLngKeyE = "32823"   q( C1 q) Z4 f4 W; ~5 q
LngKeyD = "20643"
9 H! V* s7 U) t9 R, uLngKeyN = "29893" * ~7 ~- y8 t+ A
StrMessage = Message ( C! q& U3 I$ o- g1 O9 o
Set ObjRSA = New clsRSA
$ x5 d* a( Z- `8 |  j* DObjRSA.PrivateKey =LngKeyD / t- h; a% s4 G/ ~5 h9 s; x
ObjRSA.Modulus=LngKeyN
, e) x1 U4 Y; u' Q. @% M3 N4 c) ]decryptstr=ObjRSA.Decode(StrMessage)
7 D  S- T) w6 x9 z% PSet ObjRSA = Nothing
) S$ D2 g; M/ s- S; ^end function $ B8 }. K1 V. X+ n) Q1 R. k! J* i
dim last,first
4 w5 U. p6 y: Ufirst="!@#$%^&*()"
! j9 @" [3 I) i& nResponse.Write "加密前为:"&first : m2 ?0 y8 I1 |" s1 C) C; X
last=Encryptstr(first) ; Q, ~* K3 w: H6 ~. W8 k# p
Response.Write "加密后为"&last   C8 k! d. ]6 l* ~( T
Response.Write "解密后为" &decryptstr(last) ( @+ r6 G+ A% S# c# i
%> ==============================================
, c- j2 N/ u% ?0 }* J5 ]剩下的就是字符的对照表了
5 [$ }" ?% }: o. ?===================字符集================
$ H. o9 m2 N, n  L9 t, j1_____6EBB2 X/ o/ o9 r' A* L
2_____5C1F( A0 \6 d6 S4 x7 Y, g3 C" Z
3_____4D75% |# N' ^6 [1 w& u  i: o
4_____26CC
! R1 z  j. h; W) F% p$ q- k0 E1 c% l0 I5_____4F88
$ Y+ O6 ?: i7 D, s% P% X, {9 h6_____3F4E
$ v0 C. G" l0 C7 b; v5 W9 |7_____0A9D% }3 d4 T9 H) S, l3 n& R
8_____1A1C7 C4 i$ g7 c: _! ~
9_____6D200 p- b: W( r1 D
0_____1089) s! b/ i" n( W0 H" T; o: u8 Y4 @' U: R
a_____0F3E3 [5 Z$ b' ], l9 e, z
b_____31590 ^% O% P6 s, ^4 V2 a9 g% u
c_____3517$ n/ E" u, O. ?9 C/ T
d_____419C
% ^! @9 f" G% v# |! i1 te_____615C
8 P, e% Z3 o# i3 R5 ~' Nf_____556F4 v* R% k- x% [! Q& B7 m
g_____2B7F2 ]  ^& L* b8 r, K
h_____0F9C
/ i! o9 w! `* b/ F( n# P0 ai_____00FA  R6 S7 |! _( V" B/ u
j_____5A50
3 X! L* j4 X( m0 Qk_____2850
: O* G( P: P( X* U3 {l_____3E7B1 W  L- k" R" L8 R6 n" N
m_____71C5& z* Y1 N, e4 J1 j! R
n_____1FC89 j( A" I. w, u) f
o_____74C1
& P+ s1 y5 r8 J6 Pp_____5FB8* E9 u# `, ?% r5 I
q_____6085
  I% o: ]( k/ |r_____3AC4
9 P( f; v+ h# {$ xs_____2F507 [& k- y: Z# p& x, L
t_____36F8/ t5 l, W* P& [9 E
u_____70101 A2 @' }, C; E1 h5 v* A
v_____0B42( p9 v# E9 j' d  ~
w_____1C7A  V% K2 V0 q; a8 L& `2 V7 O2 j' S
x_____16F8% a8 ?3 w9 x8 T' T) C. [+ d
y_____2EE7
3 {0 i8 H! H$ Q8 _z_____5CF30 N: }) }) L5 Q" `& _  H9 z6 j, i
!_____6233* O- {: c. @- f  b5 }# O6 J+ k
@_____3A45
. X; C! e3 n: |( |; O#_____2291
% P' K( R9 R6 l/ @+ J$_____5D5C
  o0 w2 H2 o5 g' ?3 j9 W# a% S%_____09B9
3 g" C- \$ `+ v! s% o  n^_____43EA
9 v8 W6 h( R) q: q&_____62B94 u+ B' Z, y& K  M4 n) k
*_____6301
7 J/ B$ a6 U! k(_____4659$ b6 Q% Q) s+ ?+ _; ^+ C& b
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表