返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
4 Y" ^$ P2 _; M2 ?; }原始出处:http://www.3ast.com.cm% ~( e9 {7 O/ A+ {* d
% J4 d, z, k6 ^6 V9 u3 }
看不懂的直接绕过2 R9 h; V' I: v1 I3 F0 v
加密前为:hwy1234564 O. y& z+ a; C1 N% F4 {  [
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 V! Z2 U: c" g' D. O$ r6 [! V4 h! C7 I+ c0 j+ |$ r" t2 W
============================================& x) J$ [, {+ G7 f& p( c
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
5 u% c9 R- d4 `7 O2 y0 I也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
; U, \/ I' J( i; A3 U7 {( ~以下是RSA算法文件
' B$ T; i- Y  Y* t4 o( h5 l4 b6 M- A1 g7 a) L' c. O
文件名RSA.ASP- G; I7 B$ M" E  X8 L, ^$ ^, g) C0 k
===============================================1 q9 G7 E1 i* Z- {& u
<%
# p7 Y! ^6 Q- P: Y( NClass clsRSA 9 x' o+ C* X7 I, D
Public PrivateKey & J& B- Y6 V/ c8 F, E
Public PublicKey % ^9 O8 Y0 U( `! g! u+ c8 f
Public Modulus
- f9 z. V" ^* x( vPublic Function Crypt(pLngMessage, pLngKey) 1 ~3 X& ~2 S8 }0 h# _
On Error Resume Next
( i0 K+ e' B4 XDim lLngMod
5 B, s, X2 Q8 D0 b) y  a9 ?. EDim lLngResult
! e0 Q" o) [; x7 o+ g$ f1 ~' z8 WDim lLngIndex 4 D% z" Q9 g% m8 x: ~2 Z
If pLngKey Mod 2 = 0 Then
+ {1 P4 P" R$ o; Q' O/ R" `9 LlLngResult = 1 " a: n0 ^6 @! L; r
For lLngIndex = 1 To pLngKey / 2
& i0 p7 \9 D/ T, _9 e5 flLngMod = (pLngMessage ^ 2) Mod Modulus
$ ?7 D+ @6 G. o% y) j' Mod may error on key generation
+ F5 p7 B" j; N) b( K$ blLngResult = (lLngMod * lLngResult) Mod Modulus 3 i; |) x- {7 A( e* }1 s5 u; d
If Err Then Exit Function ( j: J8 X  X; M
Next
4 _( k, n# G5 ~) uElse
" D3 e& \. D* [& {lLngResult = pLngMessage   C: i* C) S9 Q* f4 F
For lLngIndex = 1 To pLngKey / 2 ! z% ?2 d$ C: W2 J! J3 E
lLngMod = (pLngMessage ^ 2) Mod Modulus
# Q& S9 q- o; J, wOn Error Resume Next
1 d$ c, E2 c! O' Mod may error on key generation
; k+ @& ?/ ^0 glLngResult = (lLngMod * lLngResult) Mod Modulus 8 V0 t/ \1 s6 R% f& r1 q5 {
If Err Then Exit Function
# `9 e1 _, I' X  HNext * N# Z2 A6 U1 l+ B5 m+ @
End If - ~4 f$ U9 x  J) h
Crypt = lLngResult
% b% ]; b. V0 E" v6 EEnd Function
7 }% V. {" j& A) Y! Q- ^3 s. \( C' G* ?; b  |8 n& t
Public Function Encode(ByVal pStrMessage) 5 R, u/ A1 a9 L. Q) h
Dim lLngIndex
' \1 s, k  i  A4 z* tDim lLngMaxIndex
1 k1 r/ [- q  @/ E8 ^Dim lBytAscii
  N- A( a: `, D+ T# P/ tDim lLngEncrypted $ V( v+ `; ]( X8 i
lLngMaxIndex = Len(pStrMessage) 8 n# N" W- G/ U
If lLngMaxIndex = 0 Then Exit Function
& |6 O. Q/ I1 E( iFor lLngIndex = 1 To lLngMaxIndex ) `7 X2 o; I7 V+ F
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))   @9 T7 D2 v, O8 c+ H" j
lLngEncrypted = Crypt(lBytAscii, PublicKey) & @4 y9 d! q) h+ F$ ~" A
Encode = Encode & NumberToHex(lLngEncrypted, 4) " c* p% I. U3 D% N% y. D/ E
Next
" X# A& [% b/ K- OEnd Function
0 i' b- j8 q& i9 d) jPublic Function Decode(ByVal pStrMessage) 7 h* ~# J; }" \, M/ d+ i  P' v% Z
Dim lBytAscii , A2 G4 W+ E# R  v
Dim lLngIndex / r. G9 S7 f, x' A9 ?
Dim lLngMaxIndex
$ V+ P. ~) i, L: {4 x; h2 m- }Dim lLngEncryptedData
+ P6 l: B& X' c, EDecode = ""
, r2 d0 S3 R3 Y* I. n5 @% l5 elLngMaxIndex = Len(pStrMessage) 5 z8 z4 y1 t8 A+ G
For lLngIndex = 1 To lLngMaxIndex Step 4
5 g! y' N" H* B2 C3 u+ a( WlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
0 x4 c1 D0 u3 t  c. MlBytAscii = Crypt(lLngEncryptedData, PrivateKey) ( j& R# E9 }. U7 G5 T& M+ R
Decode = Decode & Chr(lBytAscii) ! H3 f7 [( R+ J2 p+ a
Next
3 K" J- h: b  A' m& ]! aEnd Function 5 P2 S3 F% m6 n! J
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) & ?+ g# @" ^7 C. t
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 4 V7 ~1 ^8 {' a! {8 K' W& `+ z
End Function ! [/ L. l+ i! z; \" h( }
Private Function HexToNumber(ByRef pStrHex)
" g, g! W3 t/ Z, b$ [) bHexToNumber = CLng("&h" & pStrHex) " w  w" F2 P6 |1 c' g# ^
End Function
% m7 z7 H: }' t# i2 J+ gEnd Class
4 H3 `1 m3 R! ^) a5 s& C* ufunction Encryptstr(Message)
9 V3 [6 t1 x. RDim LngKeyE
; \  M6 N/ a$ A! c* J8 _Dim LngKeyD
" ]$ M  ]2 t7 t: z. sDim LngKeyN
4 @) z* |1 X6 V" p, F$ GDim StrMessage ! l) `2 O& c2 f8 p. T- z5 o9 B$ U
Dim ObjRSA   |3 G$ Y# h9 j1 N9 @  g
LngKeyE = "32823"
; o& X  L6 I6 N  lLngKeyD = "20643"
; A2 W! v. c2 |0 |. p# s* QLngKeyN = "29893" , u  a* n( o& k
StrMessage = Message
: @& ]# k6 `# s- j( x& L4 PSet ObjRSA = New clsRSA
/ E; D5 u" l7 T4 b3 C9 h2 uObjRSA.PublicKey = LngKeyE
7 Q2 l6 @* f  k/ ^ObjRSA.Modulus = LngKeyN - k  _+ u0 q# D3 C
Encryptstr = ObjRSA.Encode(StrMessage)
7 _4 e6 c6 m1 F% ^* j; _, `Set ObjRSA = Nothing
% }1 _" J9 K: _* ?" a& I! Wend function
/ B' F0 Y# A# Y1 T+ B9 Q6 TFunction Decryptstr(Message) 1 T8 W: s5 i2 ^0 ?) Y0 D; G8 u
Dim LngKeyE
. C1 `. {2 z1 J6 c8 \Dim LngKeyD 2 O: @" O- f' v. K0 S2 V- Y
Dim LngKeyN
, A9 p; Y7 i/ i1 V' JDim StrMessage / u8 }2 a4 v" h9 u
Dim ObjRSA   V& ^& O$ q1 c* d/ b* W
LngKeyE = "32823" / r% t/ s9 V2 H! k& H: k- ^! R
LngKeyD = "20643" + E8 o& g) }1 Q; a. U' z
LngKeyN = "29893"
3 k. p3 ~0 A$ T& N! ?$ J6 PStrMessage = Message
) d" f; G. E% s% gSet ObjRSA = New clsRSA
, d# _9 w2 T! R) l0 K# jObjRSA.PrivateKey =LngKeyD
9 E+ C3 ]. {9 YObjRSA.Modulus=LngKeyN 7 X# q, \  I( W4 G5 p
decryptstr=ObjRSA.Decode(StrMessage)   b% P9 B6 \) \1 [
Set ObjRSA = Nothing 2 j8 p( `' O/ e$ i/ c
end function ) i7 L- f3 n8 r3 c7 H& P
%>- h3 u0 k; W  S; M* w
===============================================
9 O4 F. P) Q! q' ~+ t( @5 O; f7 M
还有一个用于测试这段代码的test.asp
) D) y  N2 J2 G. f5 `/ u/ p有兴趣的自己搭建个IIS测试下
0 Y0 k. X2 r. {5 y/ _0 ?+ j3 K- z% s<!--#INCLUDE FILE="RSA.asp"--> ' V, O3 ^. h& E7 ]- F
<%
7 M8 _9 k& ?. J$ {% r" lfunction Encryptstr(Message)
& g( \; ]' k0 _* U. n5 hDim LngKeyE ) ~% w3 `  ?' `9 l
Dim LngKeyD
& t: }! E5 J; _8 wDim LngKeyN , p! S& T8 Z6 t- c' l$ ?' [
Dim StrMessage
: s" t, n, V( s+ U! j3 q% z# [Dim ObjRSA ( N& T* }3 Q9 F' r7 C
LngKeyE = "32823"
" J2 K$ U) f  D7 P- L/ j0 |/ o# w4 [LngKeyD = "20643"
% I6 Z# y- B3 w4 p4 l* e/ t* R, zLngKeyN = "29893" ( ~* F" X( g4 M% I# ]
StrMessage = Message   o9 B6 e; T* M1 o7 _
Set ObjRSA = New clsRSA & b+ ~+ B: }$ j/ Q) k1 m3 {
ObjRSA.PublicKey = LngKeyE & I7 l" G2 u+ o# o9 @1 {; n
ObjRSA.Modulus = LngKeyN 7 j# Z) \& C& ~# Z
Encryptstr = ObjRSA.Encode(StrMessage)
! S/ ?, }* T+ T, J1 K4 ?1 oSet ObjRSA = Nothing : ^. g5 }7 G- Q, x0 Q  i  S) {
end function
; `. b' r2 `& a, b' _2 J* dfunction decryptstr(Message)
1 `& h) l# M! P" f; F0 k; xDim LngKeyE % }# b& x4 E  F4 z
Dim LngKeyD
4 A8 T* }4 J0 V6 a1 kDim LngKeyN
6 b" ~( v* Q  P% K9 IDim StrMessage - r( z7 I( X. r- L7 H/ S' ~' z0 H0 {# W
Dim ObjRSA
! v% V8 d- i  [- U$ E) `LngKeyE = "32823" . J' S# T0 B4 e1 J) {# S+ B
LngKeyD = "20643"
  R' K3 e/ x3 fLngKeyN = "29893" 9 [2 X- s# m) n" o
StrMessage = Message
+ U$ d2 k; f: T7 `& m+ M. hSet ObjRSA = New clsRSA
# E3 P3 f$ n- IObjRSA.PrivateKey =LngKeyD 3 @4 F' q# o" j' H, l( R) R
ObjRSA.Modulus=LngKeyN * t% i( b- t4 c* ]& i. K
decryptstr=ObjRSA.Decode(StrMessage) " e7 c/ w; V6 t- ]* D0 f3 d
Set ObjRSA = Nothing ' x- b/ e9 ]  u; Q
end function 1 r- e' ]8 M. @
dim last,first # R& h* N: g, t9 ]& P5 y6 T
first="!@#$%^&*()"
- o6 U/ a" Z+ r5 S) ?6 xResponse.Write "加密前为:"&first . \: `+ i4 Q# ?7 G6 H: D
last=Encryptstr(first) - m/ G9 |3 R# W) Z3 O
Response.Write "加密后为"&last
& h7 ^$ v, }8 T; R( E' GResponse.Write "解密后为" &decryptstr(last) . n- c  ?* V1 C! i+ D
%> ==============================================2 r6 m8 v. X2 K! H1 A
剩下的就是字符的对照表了/ Q3 x0 v( S2 V% z
===================字符集================5 `# L9 X9 i0 Z! e/ N# R
1_____6EBB
2 a6 E8 `  o: z; S  ]+ y) Q2_____5C1F
! H1 j% o) x+ x! ^$ `" }3_____4D75
* {0 R' j& q4 a7 k. c5 ^8 A4_____26CC
, H5 [+ B8 ^4 C" ^4 M4 |4 F9 r5_____4F88- O* m3 \( X( s' Y+ N
6_____3F4E) O3 r5 D7 {- g% `3 D
7_____0A9D
: Q2 Q/ x$ N; W8 p1 ]! o4 ^8_____1A1C
8 H  d/ W/ n' ~$ U9_____6D20
, U! ]8 c; k3 f/ V  {( G  `  |0_____1089! D( Q, T, r  l, N3 L
a_____0F3E
" v7 C- _6 B2 ^: N" |5 Ib_____3159
. H5 \6 i0 c4 K6 R5 X8 ec_____3517
; L9 k. l7 w* td_____419C9 P9 _, a% Z# m( _
e_____615C
. t  y  f) M! a  c4 t/ uf_____556F
2 i$ }4 \3 q' R* Ng_____2B7F
* W% r& A6 ~) yh_____0F9C
' X4 a0 Q. N) @4 c, n% {$ ci_____00FA
  Z- N3 B- F% B2 `4 W- J' tj_____5A506 Q& y# M2 Z! [" i
k_____2850
2 L7 M- j6 o: L2 [! x, s8 ul_____3E7B
; Z& O& J3 T4 T. n& bm_____71C5
, I* u& J: H, V  f! Tn_____1FC8; s! Y4 o( h: D$ Y$ a
o_____74C1* G: C' w3 W* Z% `
p_____5FB8
, c2 T+ w1 k4 \" u( X+ D4 o' O% s: Bq_____6085: N6 x7 S& y7 j# i5 s
r_____3AC4! |" `" {2 g( i1 r4 x
s_____2F50) q% I+ |# v6 D
t_____36F84 i$ [/ ]& U; ?6 \
u_____7010
3 {" P: M, M, Y( {2 G9 Hv_____0B42& i5 _1 I! ^$ O* y
w_____1C7A
! r/ k  k% f3 D7 x9 P" lx_____16F89 Z( L) u, a- ]* M3 }' n6 {5 r
y_____2EE7/ M  y) U/ F5 W1 o
z_____5CF3# F% N5 z9 C% Q$ `" K7 w( K
!_____6233
0 b8 D! B% R: Z@_____3A45
8 e/ ?3 }1 t! B' a* s#_____2291
# K) {7 j+ {. A8 P* d0 h3 X! M: w$ F$_____5D5C
# P- A: [- h! x5 ^8 S+ H* J%_____09B9
& V4 u+ d: ?/ E; e7 l^_____43EA3 a5 d( J$ r3 J# P6 S/ i; j
&_____62B95 F/ m/ [4 h6 x9 Y, c9 u+ x. M0 r$ _0 {( g
*_____6301" X( `( Y6 {5 W) L8 \2 ~+ a9 r
(_____4659
: ]: ]. y) {$ G3 d/ K1 R  F0 f)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表