返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm; B: \% p' a# ^5 s
原始出处:http://www.3ast.com.cm
$ U' U+ y' E; L0 V6 t! c! W; n+ E( Q2 M8 J
看不懂的直接绕过
- v( x' E1 p7 R; m加密前为:hwy123456, l$ G$ l( N7 \; l: x( m! F
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
6 O# g/ }0 }4 T3 ]1 S" W  f# I! |  q0 Y# e2 Z/ p6 A" l' Q. M1 c
============================================
. V9 q1 X" |3 K' @" o1 F1 ?上面是当时自己校内的心情。现在已经解破出来了,分享给大家
6 v. I+ ?, B1 D) x- `1 A也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
2 ~  A% C3 P0 a! M4 X$ Z以下是RSA算法文件: f. K# R% d4 s6 y6 v0 Y3 U

2 B( {1 ]3 M+ V文件名RSA.ASP
( D# f* c3 L7 T: S; X===============================================/ C* a# o( [1 I- _! O8 e! z
<%
- h6 o2 E+ a3 ?9 VClass clsRSA
* S' {8 x1 |' g. o/ gPublic PrivateKey ; R  C0 c4 m* J/ H% F: F9 G
Public PublicKey 7 E+ j3 k3 m- i' z. |9 {
Public Modulus $ w( U0 @3 M; u1 ~8 _  \" i+ p
Public Function Crypt(pLngMessage, pLngKey) 8 g- n6 M* [0 M2 @* E
On Error Resume Next
4 f8 g) \: f6 }/ _% w4 K0 c6 |Dim lLngMod + J& r8 L% V* E: {- k  a
Dim lLngResult
2 t2 O' f( M) Y$ {0 l  cDim lLngIndex 0 ~  @' Q5 X' \" v  g. }
If pLngKey Mod 2 = 0 Then & f1 |. A; k7 B
lLngResult = 1
% [* s. j. G  e+ yFor lLngIndex = 1 To pLngKey / 2
1 I+ N* `  p: m8 rlLngMod = (pLngMessage ^ 2) Mod Modulus ! k6 D  J$ g& f$ I) ]9 p; X8 a1 `
' Mod may error on key generation
8 E0 v" j3 O, x; FlLngResult = (lLngMod * lLngResult) Mod Modulus   h4 S' T9 R2 n8 j+ |
If Err Then Exit Function 0 l- R# S9 E* Q8 J3 f* z
Next : K( f  r, A: c4 g& M
Else   L9 b& D  r3 _4 C2 D4 k
lLngResult = pLngMessage
% z4 M6 v* X% {5 h+ x6 Y* ?For lLngIndex = 1 To pLngKey / 2 2 h5 z* ?" ~! i: i2 m# I
lLngMod = (pLngMessage ^ 2) Mod Modulus 1 ]# T3 }9 ]" D3 D
On Error Resume Next
/ p1 W9 P3 R+ Z) @! k' Mod may error on key generation 1 L- O6 i5 H9 I+ `
lLngResult = (lLngMod * lLngResult) Mod Modulus 9 ]4 j; N7 T- l
If Err Then Exit Function
6 {1 V( c! h$ K8 N* sNext
* h. X/ l% ]" N4 ?2 p' iEnd If
( C& ^) _+ X, O$ \& x9 ICrypt = lLngResult ( n7 S- N  `* Y! n2 @5 l
End Function
) U& t% G8 `& t: g  @: ^) g! e. ?6 L4 B" |  Z$ ?' c
Public Function Encode(ByVal pStrMessage)
% D- c. p  b) c3 T; o" q" q! RDim lLngIndex ' F. Q* B9 R9 k: x; M
Dim lLngMaxIndex
/ W2 |0 e* d2 m- iDim lBytAscii
% q! R3 j  s, u; u. xDim lLngEncrypted $ G0 P  y1 v# _+ |$ u" u
lLngMaxIndex = Len(pStrMessage) & w0 w0 G# J) R* F
If lLngMaxIndex = 0 Then Exit Function
7 i* C9 v% ^% t: HFor lLngIndex = 1 To lLngMaxIndex
' y. y5 t. E: a. s* @lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
( n- p3 e3 K# j% V/ h( W7 }lLngEncrypted = Crypt(lBytAscii, PublicKey) ' J# W9 o! o' C& {7 o
Encode = Encode & NumberToHex(lLngEncrypted, 4)
  F" Y  l3 ?" h/ G( M) C. S/ qNext 4 k! j# E; p/ j& C- z! z0 o
End Function
4 y: @  Y; X/ V" P) h3 z$ qPublic Function Decode(ByVal pStrMessage) 1 \8 \' t6 J/ h3 y. p  M( X6 }' f
Dim lBytAscii
% a+ P# T1 U) r, F! j- bDim lLngIndex 4 Z3 n' y6 k+ `4 s' w! J
Dim lLngMaxIndex / v7 I3 N, K' I
Dim lLngEncryptedData
! v" Z, ]7 @) z2 F, {Decode = ""
/ ^' w) S  H3 [, ClLngMaxIndex = Len(pStrMessage)
0 Z6 ?8 ], A: YFor lLngIndex = 1 To lLngMaxIndex Step 4 5 d0 v( R5 F3 Y6 y! R
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 9 I% c* `, c7 V
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) - F' c/ k, H! g9 K. h8 V1 y
Decode = Decode & Chr(lBytAscii) 1 A) T# x. ]! [: s7 E4 S7 [* A
Next , N( K( L1 g# x# n
End Function
3 \; t1 {# p3 h1 ^! CPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 6 W6 j+ V. @1 f7 t6 r
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) : T- e+ G1 O! ~% Z9 U$ _1 \/ w
End Function * R5 n2 E4 B8 ?4 I, [  |4 I
Private Function HexToNumber(ByRef pStrHex) ' Y/ M5 u+ Q( l2 D
HexToNumber = CLng("&h" & pStrHex) 9 E& f+ X2 i0 j& B
End Function / }$ `9 O1 n' ]2 g& {
End Class
, m6 z- N2 {5 w+ p' vfunction Encryptstr(Message) ) f) S0 e  T9 e* E- [
Dim LngKeyE * ?" w4 S, e# n5 l) Q
Dim LngKeyD 3 Y9 F9 z2 ~2 w5 b( |
Dim LngKeyN
) o) o) n5 O, \5 {" H) b7 E/ PDim StrMessage
6 W' e5 h6 v0 S! O" BDim ObjRSA   v8 n8 w' V- W1 y
LngKeyE = "32823"
) l# f' L5 ~* S6 g; XLngKeyD = "20643" / l6 A. ~7 k" o: R- t
LngKeyN = "29893" ! S0 a, f8 z7 I+ x5 }
StrMessage = Message
* W, D  ?3 S5 D' N) XSet ObjRSA = New clsRSA : X$ t1 U- X$ d8 m) ^
ObjRSA.PublicKey = LngKeyE
) V5 a- W4 Y# vObjRSA.Modulus = LngKeyN 2 l9 i, M. n5 U
Encryptstr = ObjRSA.Encode(StrMessage)
* u7 q, p6 P9 P1 m1 b4 eSet ObjRSA = Nothing
, ?3 v. q/ Z. d0 i: u& y% z# oend function
% W0 b4 R4 R, n- n/ vFunction Decryptstr(Message)
7 ^: j2 |' |# z) _3 |Dim LngKeyE
: U( U& p3 |7 d7 D! R. jDim LngKeyD
" n6 ?) b* o; ^- Q( x' z! ^% e. pDim LngKeyN 0 u* z$ x" {" C
Dim StrMessage
6 Z6 z; w( f! }, t' C2 BDim ObjRSA % b: w3 q7 z( s6 O+ _
LngKeyE = "32823"
' q+ K. T1 L1 _6 A- p# f9 kLngKeyD = "20643"
- t8 S& m' F6 R9 P, ^LngKeyN = "29893"
2 h1 q, f' o& I( n, s* {* |" w9 D* YStrMessage = Message
0 I# q1 ?: F, D, o' A# Z8 vSet ObjRSA = New clsRSA
8 y! o7 ?$ y$ j4 MObjRSA.PrivateKey =LngKeyD
5 t2 A7 S1 d  ]$ |  ?" NObjRSA.Modulus=LngKeyN / t4 t4 F7 W, N
decryptstr=ObjRSA.Decode(StrMessage) ! P2 d  h! x8 [% u8 O
Set ObjRSA = Nothing " K" e! v6 ]4 Z
end function
" |$ v2 t# z; H8 }%>
% W; y+ A8 n5 P5 t! b+ j3 X===============================================
' H! K* ]9 S- ~0 s$ Z' W- e  E, g5 i! C: \
还有一个用于测试这段代码的test.asp
& l1 j) I! b& Q: T0 v9 q  B有兴趣的自己搭建个IIS测试下
/ W7 |3 C/ Z9 E. W. o! ?: l6 j<!--#INCLUDE FILE="RSA.asp"-->
: E$ _+ X3 |* x4 A<%5 [6 a5 I% J, E/ @
function Encryptstr(Message) : N8 M; o: O; a0 ^! S; n+ X% j0 v- J
Dim LngKeyE , }) a1 J8 P6 H: m, t! I
Dim LngKeyD ' ]$ [8 E0 |& }+ d. N" P' @& R
Dim LngKeyN
& r$ d- k# b+ o# x1 t$ s$ @- Y- GDim StrMessage ; B4 Q+ Z0 Q0 i2 S5 N& k
Dim ObjRSA / ?4 G# h3 L4 M7 y
LngKeyE = "32823"
( T. T# U" ~6 Y5 s: TLngKeyD = "20643"
0 J8 V$ _  q4 ^. W+ h" RLngKeyN = "29893" 0 X" Q6 q9 X0 U9 S* \$ c3 z
StrMessage = Message
( J+ X2 X, Y2 h6 ~Set ObjRSA = New clsRSA   \4 K# z4 q+ J9 i8 [$ r: _
ObjRSA.PublicKey = LngKeyE
+ A) D8 u1 e  QObjRSA.Modulus = LngKeyN
6 c; a$ ]# n7 h: a& J" X/ w$ zEncryptstr = ObjRSA.Encode(StrMessage) $ N& W  ~# @7 q: t) K1 a
Set ObjRSA = Nothing
1 d9 N0 P7 {& b, K# W# \6 pend function 1 M! G8 [, I( U1 v- i* r
function decryptstr(Message) 0 ?; A1 j7 [, k# {
Dim LngKeyE 2 `0 [* I5 J' y- g4 @7 b. Q
Dim LngKeyD
6 F$ M, I. }+ h4 f# FDim LngKeyN
! j7 C8 x8 Q7 ODim StrMessage
9 h0 Y3 z4 i1 L4 P/ s% P$ u6 t7 r; N5 oDim ObjRSA
  |3 W6 u% y- {LngKeyE = "32823" / B) e# w  O* k  S- y8 a7 k. d
LngKeyD = "20643"
; o8 N- m5 l5 S1 XLngKeyN = "29893"
$ r( ?/ i: h4 a( Z* B) Q3 ~8 z! eStrMessage = Message
$ t$ l! M$ ^1 j3 A: JSet ObjRSA = New clsRSA 6 f$ `8 |% \% x$ {0 z5 p
ObjRSA.PrivateKey =LngKeyD 8 O8 e- j( {$ m' Y& i# I
ObjRSA.Modulus=LngKeyN
8 O1 [3 o- @2 Q" Fdecryptstr=ObjRSA.Decode(StrMessage) + |& L1 A( g. ~, B$ b: r+ ?
Set ObjRSA = Nothing
8 W, m& w. k4 s( L$ f0 [$ U$ X& _end function 4 |6 o5 H/ P% D2 Y
dim last,first & Z4 }4 \- ?; ]- a' x& |, D
first="!@#$%^&*()" 6 Z6 x+ Z% d3 r2 A, m3 A% J
Response.Write "加密前为:"&first 4 j# U9 T) ]+ t0 I* Q  {% T0 O
last=Encryptstr(first) 3 m0 V4 I8 Y' }  a  ^% F
Response.Write "加密后为"&last
7 W0 ~) J# }& P. S- I. b& @  oResponse.Write "解密后为" &decryptstr(last) 5 o% Y) o6 E% g! ?  {
%> ==============================================# y! g% Y7 ~4 t5 r7 F5 L
剩下的就是字符的对照表了
5 f& X# a# T& f, Q+ W* u9 K. _===================字符集================" j5 a6 W1 G0 M; f
1_____6EBB
$ w7 H: H$ M" t, k. U- j2_____5C1F; V: g4 h) c+ d' v
3_____4D75# E4 Z4 L) [0 n
4_____26CC
6 }& Z* g' l; x  W" C* v! }7 F1 @5_____4F88' r# p$ h9 I$ }# m& k
6_____3F4E1 |1 u9 G, A; S+ n8 S
7_____0A9D3 L; B$ c! t, w; K2 d
8_____1A1C) i7 O5 N7 n  L! o2 m
9_____6D205 q- R' p* i  l8 P+ f* ?% F
0_____1089
2 f8 r+ ~  u# M5 o' G/ da_____0F3E
1 h% N8 f$ K# bb_____3159+ `! @( @) `1 \
c_____3517; I0 n' R* w7 Z/ Z* q
d_____419C) [% g* r3 N! w, l0 }# w
e_____615C
" x) |, P; Y% c. D, W& h# g( uf_____556F3 u) L8 o$ b1 Z' N- n8 C, @
g_____2B7F( I7 V- K  a. o. v/ Q
h_____0F9C
3 {- w6 _  _* ^' @' y5 y1 D. pi_____00FA
2 |! B, C& J% m; l+ n2 Xj_____5A50
4 |, H' ?7 l" l* K1 o  dk_____2850  z# |7 o0 e) J0 n
l_____3E7B' t5 [; l5 s, E7 {$ S4 R
m_____71C5
2 G1 Z( @9 p9 R* D$ P1 |( Xn_____1FC8
( [# E* N- n! @9 A* g8 Qo_____74C1, S7 q" g1 c% K5 v4 Y5 D
p_____5FB8. b5 v+ r3 @, Q& M
q_____60856 B# F2 [. [1 m$ p* J
r_____3AC48 p# H/ J; g. Q  `. _, T4 H7 J
s_____2F50# ~. g! H  \# ^. X
t_____36F8
5 ?2 c* G9 N4 @- C/ L- Lu_____7010
5 c( K( ?* k  x1 E( a  @+ x! ]v_____0B42! H6 O! z/ \0 K% G
w_____1C7A3 y2 X6 S2 V/ a2 M: C$ i# d( \- P4 c4 ]
x_____16F8+ k4 t1 G8 q' o8 P8 W
y_____2EE7/ G- k/ m" V8 j* x# h! b# p: O
z_____5CF3; H2 V4 S8 }" J* `0 T- A& v
!_____6233( D) d! q: _. f( c! e3 }
@_____3A45% f% O- L! E" \6 y9 D, N
#_____2291
4 P/ m6 r; H1 ~$_____5D5C
( F# Q) q/ ]+ |% F( j: p%_____09B9- p4 U5 t  h0 P8 Z4 Y: N7 @
^_____43EA9 `5 ~% K3 g$ v: R7 D# P9 ~) L' D
&_____62B9
1 l( b, a) V( N5 v/ y" T*_____6301
5 y8 E, y! n" t& C(_____4659
6 W, n3 U0 `  _- s% d: o) Z)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表