返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
, g* I3 t1 `5 F! S+ {原始出处:http://www.3ast.com.cm3 S* P, ?" {4 g2 p8 K
3 m/ Z6 X/ Q2 `* |
看不懂的直接绕过( @- F. `' J) H% i- G# o
加密前为:hwy1234561 B' v1 |2 B0 Y5 B$ w
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E0 T' y9 ]) r& f' }/ i& X- ]
& h6 ^6 F' U  ]" V) \# P
============================================& q$ w- ^9 e: _$ }8 c
上面是当时自己校内的心情。现在已经解破出来了,分享给大家% b3 C- l2 H) e+ X
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法# X+ f+ M* J$ j: z9 i
以下是RSA算法文件
- B+ V+ n) c! D7 [7 J
2 y! ~, Z: W9 g4 B) R. n* l6 \文件名RSA.ASP: v  X. Q) q+ v, K' |7 y
===============================================% l2 A" j% f7 E; e+ D9 I3 }% w
<% ' \& M! U' Z6 E" U+ B
Class clsRSA 6 W; S8 ^: ?* u5 I, ~
Public PrivateKey ! O5 G& b6 y+ e/ G. i7 g; D, ?
Public PublicKey
) x. \+ `* `+ k5 t- X$ lPublic Modulus 5 D  G8 P2 z$ I: Z$ f
Public Function Crypt(pLngMessage, pLngKey)
* w1 r1 Y$ G7 K) ?On Error Resume Next
4 p: ?+ n& d8 c- [2 XDim lLngMod & P8 J9 ?( c" F
Dim lLngResult
! j  `' B% q( ^. FDim lLngIndex
, [6 w3 B1 q, U6 h% i; aIf pLngKey Mod 2 = 0 Then
; x7 N7 z' I. W* BlLngResult = 1
0 m+ Z- r- z2 [$ Y5 qFor lLngIndex = 1 To pLngKey / 2
2 Z; k) H, s3 o8 BlLngMod = (pLngMessage ^ 2) Mod Modulus
( E- O1 n% j7 y' Mod may error on key generation
; F/ {) R- H" QlLngResult = (lLngMod * lLngResult) Mod Modulus
9 e2 s0 E3 p; LIf Err Then Exit Function
+ _1 e1 `0 a3 l4 zNext
1 W1 S5 w2 W, V, V, W- F, \5 tElse
6 U5 z; f; H9 G# }3 }) s9 _! }9 glLngResult = pLngMessage 9 Q0 t% H+ T$ R+ g! b! W0 q
For lLngIndex = 1 To pLngKey / 2
$ `! Q' B0 k$ N4 F3 @' WlLngMod = (pLngMessage ^ 2) Mod Modulus 5 e- i# h6 }' a( ~, G3 S6 i
On Error Resume Next   ~/ B* p' O* G; D
' Mod may error on key generation
# M% Z$ [2 S! G( MlLngResult = (lLngMod * lLngResult) Mod Modulus $ ^/ D5 H3 m  o) t; \
If Err Then Exit Function ) N& S% u3 n; m2 o
Next ( F8 G( y4 I1 {: H% X/ ~
End If - w# C5 ~+ F$ t+ y: {
Crypt = lLngResult
( ^  {8 v7 V. B7 A/ j0 M4 t! O, ?End Function" h( d4 O+ o. v/ C( O: B; P/ s

  W. h: b6 @$ i! mPublic Function Encode(ByVal pStrMessage) 1 V" v, K; t* c9 u% {8 m
Dim lLngIndex " S! _2 }4 k5 ^* G: V$ g4 Q
Dim lLngMaxIndex
* U. {4 p8 [* I& @& x7 uDim lBytAscii 6 i3 d! w) @- d/ a! G2 g4 N
Dim lLngEncrypted
3 Q6 k$ Z/ K6 slLngMaxIndex = Len(pStrMessage) 5 ~4 A% M/ t$ |2 W% R3 e
If lLngMaxIndex = 0 Then Exit Function
" e. |% A5 X2 _0 Y' ~3 Q# d0 X, CFor lLngIndex = 1 To lLngMaxIndex . H! P! a* m! b$ e2 Q" q) a: m
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
) {9 j* {1 V5 G. T/ nlLngEncrypted = Crypt(lBytAscii, PublicKey) & V+ c; V; E& e- G: Q  B7 d& t
Encode = Encode & NumberToHex(lLngEncrypted, 4)   ^# D7 K4 _& }5 ]* |' |8 B. \
Next 1 Y, G: h5 g  X! r+ {( L
End Function " G: w* A( `, S, M1 D
Public Function Decode(ByVal pStrMessage) 8 [& H. c4 |' v1 M
Dim lBytAscii
8 ?0 L5 ^: t0 k% P, }7 ^5 W* eDim lLngIndex 1 f7 b2 _1 W+ J& A% n
Dim lLngMaxIndex
9 J( S/ M* k: h8 `7 jDim lLngEncryptedData
" u$ x3 [' V& U6 QDecode = "" 7 d$ Q( o6 x2 z6 d- Q* \
lLngMaxIndex = Len(pStrMessage) - s6 g: A2 k  J* c+ F2 L# ~1 ~% G3 k
For lLngIndex = 1 To lLngMaxIndex Step 4 5 ~) b" ~2 [! _$ A4 x
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
- G8 ]8 L0 y: W: [# F" ^lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 0 F6 M( O! }# j, L4 p# r& l5 @
Decode = Decode & Chr(lBytAscii) 5 \' U8 ^1 \9 [
Next
3 ~, G1 Q0 d2 q, W1 AEnd Function # w: }* F9 r* G% C( l# M5 ]6 N
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
4 y) h0 C7 e% B6 iNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) + q* j  \# o6 l
End Function & P# Z; O$ N; y& E7 f0 \3 l. p$ t
Private Function HexToNumber(ByRef pStrHex)   L$ I( J% o% [7 a
HexToNumber = CLng("&h" & pStrHex) ' f& u' V4 z- O; E: Q0 Z; q( v" P
End Function 1 U2 q: b$ T" a* Y/ Z6 [
End Class ) |+ b' K) b2 K3 |) Y  Z2 r: c5 Z
function Encryptstr(Message)
$ e  m" S, f6 \; x1 W# EDim LngKeyE
- W- K8 d1 N, \2 kDim LngKeyD
* }/ O+ X8 K+ d5 g2 ZDim LngKeyN 7 y* T: J9 ]) O' l# I! d& k) }
Dim StrMessage
6 a" I9 F* y& s. e- l: x$ |Dim ObjRSA ; d$ c' `8 W; b3 ^4 U$ U
LngKeyE = "32823" 5 A, o8 j# g" X
LngKeyD = "20643" 3 S) s- x( F% e- K; v
LngKeyN = "29893"
0 @$ `. P3 s  I/ @% }4 F9 f- aStrMessage = Message 4 H" V7 u  P( k: m& L
Set ObjRSA = New clsRSA
; c7 B4 ~0 g, }, U' a6 j1 y6 Z5 FObjRSA.PublicKey = LngKeyE % o9 k, Q8 H' {% r8 G9 _2 }! t$ g" c" \
ObjRSA.Modulus = LngKeyN * a) I1 T7 }  `& W$ M+ H/ A
Encryptstr = ObjRSA.Encode(StrMessage)
- K& Y, t& z( H. J. C+ W8 YSet ObjRSA = Nothing : r# r4 W8 \7 Y7 y6 D
end function; @: L% \4 s. |3 w6 L+ Y/ }" V% P
Function Decryptstr(Message) ) ^4 I- j$ _0 r* e9 m( J; s
Dim LngKeyE 3 J# U& h. h# T$ _2 ?: T  ?; E4 J
Dim LngKeyD 2 Y" r1 _3 O) \0 `+ Z3 X4 i
Dim LngKeyN
( N6 N6 S( ~& {+ S& y; \# oDim StrMessage
( V1 R' u* A- H4 V3 W) EDim ObjRSA
0 x7 R, _" `$ _& q. f, _LngKeyE = "32823" 1 z! r; w  c7 j- Y1 v& \" C: [
LngKeyD = "20643" # q6 `5 Y3 R/ r; I9 b0 {
LngKeyN = "29893"
5 Z$ M, f, z$ @# NStrMessage = Message
% v3 m! i) Z4 S& TSet ObjRSA = New clsRSA 0 v9 z5 ?* p) \  Y0 |
ObjRSA.PrivateKey =LngKeyD - V: Y+ Q. z5 F8 h/ ^
ObjRSA.Modulus=LngKeyN 1 H3 E6 G2 E) {0 D( O$ C! [3 ?0 B
decryptstr=ObjRSA.Decode(StrMessage) , C. ]1 [' n, M1 G' W% }. V
Set ObjRSA = Nothing
- r3 |9 Z' C9 ^1 Send function 6 x- F1 u- a) b" T) Y
%>
0 `( P* T  c5 k; J% @' H===============================================
  S3 L( n/ M4 X0 d. E6 \/ O( G. x2 I- |+ a, E/ }
还有一个用于测试这段代码的test.asp
( d' s6 v, P3 J# W有兴趣的自己搭建个IIS测试下
4 P! V2 B/ t" i& i$ p1 o<!--#INCLUDE FILE="RSA.asp"--> 4 L0 u) |" t$ K4 B
<%- x% R: O- j% T! t5 w5 m$ S
function Encryptstr(Message) : H5 h$ l9 I8 E# t5 V8 x+ F. }, n
Dim LngKeyE   I3 l* e# T! E8 |' _; p
Dim LngKeyD
( S, W2 Y" }. ^2 nDim LngKeyN
/ S. h& n7 w: s2 c2 Z4 d# Z9 wDim StrMessage
3 Z- b! ^5 n2 @8 H4 K# EDim ObjRSA
! c: Y2 L: {( DLngKeyE = "32823"
$ W  j1 Y' a0 F) [LngKeyD = "20643" & a" [9 u7 q; s+ F; l8 ~
LngKeyN = "29893"
7 C8 w- Y0 ]$ H& j  ~# ^# Y& E8 vStrMessage = Message
$ a2 F1 S4 a; _" ^Set ObjRSA = New clsRSA 9 _: A2 n0 Z9 p1 F4 j
ObjRSA.PublicKey = LngKeyE 1 q+ l* Q2 O* }# H% I6 d
ObjRSA.Modulus = LngKeyN
. m9 X1 `" G3 k& \5 A. C/ P8 ZEncryptstr = ObjRSA.Encode(StrMessage)
! [; N+ R2 t2 h0 C) T! f& w9 dSet ObjRSA = Nothing
. k7 {/ }7 b4 @' z$ Xend function 7 [! ?' J8 @7 C7 g
function decryptstr(Message) / Z2 \7 Y( \4 D  D! ~) f
Dim LngKeyE 3 g, i* R; D9 k
Dim LngKeyD
* B8 A2 a; u: A: k2 q2 oDim LngKeyN
( [/ C1 _8 }- U+ |' gDim StrMessage ) t4 g5 `2 W' _# \5 y' |
Dim ObjRSA
2 \. f9 }  J' q1 f! }& ^  f( fLngKeyE = "32823" , F4 r4 N6 z" I1 ]' A
LngKeyD = "20643" ) B+ q" F4 R" x) F5 A' `0 @& S% ]5 x
LngKeyN = "29893"
, W$ c! `. q3 u5 C' wStrMessage = Message 8 P) F) A! D& [: H
Set ObjRSA = New clsRSA
, Y& h7 n3 K! _, w) rObjRSA.PrivateKey =LngKeyD / O# N$ s4 N8 N1 F" g" u' U+ Z  H
ObjRSA.Modulus=LngKeyN ) u: \8 `6 C* H
decryptstr=ObjRSA.Decode(StrMessage) ( t7 S; f" |# v
Set ObjRSA = Nothing
) P) m8 y" Q/ U6 f- f3 `: ~% I& d% Dend function 6 ^( Q3 b6 \; O) V0 c/ V
dim last,first
/ Q5 J. ^+ F9 ufirst="!@#$%^&*()"
9 a/ `8 m/ J3 I0 I: p  C; HResponse.Write "加密前为:"&first
3 e6 p8 F1 h+ S  D' x+ }4 Llast=Encryptstr(first) 4 N4 v; D2 I' q1 U
Response.Write "加密后为"&last
0 E8 G6 u' _2 L* H' WResponse.Write "解密后为" &decryptstr(last) ; c3 K: v/ J  @; ~& v
%> ==============================================' _6 F/ I% t- R5 B6 V1 P: p
剩下的就是字符的对照表了
+ i& V5 o7 Y) H. ^) S; G===================字符集================% c) i8 j8 S+ _  ~
1_____6EBB/ W4 |0 ~* T* c) h/ x9 D/ K6 N# d
2_____5C1F( F0 l0 r8 q) E% `# o: c
3_____4D75; N) d5 h- Q6 }
4_____26CC6 U1 ]( C5 u" i# ?
5_____4F882 S! p( I- d7 h: }5 M# d, b+ d- P/ C
6_____3F4E
; P% q. ^: X8 I( R  b7_____0A9D
8 _, h4 b: ^6 D- p! N9 z9 S$ e8_____1A1C" B, l! p; o' T8 h9 a# [# {
9_____6D20
5 g6 V7 f+ J0 b6 }0 w$ }: _% y0_____1089# M, g( Y* H% v1 l8 z
a_____0F3E6 M% [& ~/ m7 h6 o, r' d; \0 S
b_____3159) W  ~$ Q' g/ M0 p$ _, q
c_____3517. e$ e9 }" o2 s+ E9 S
d_____419C
5 d) {% f- s" a; Ye_____615C
' T+ u" V2 A1 d! E" v0 I' n: E+ Lf_____556F7 e- M  m2 u% ~7 T8 w, I# N
g_____2B7F
( L, f, V% N  d* r8 I; F0 ih_____0F9C0 A9 ^8 ^0 q6 K) C
i_____00FA
5 ~  L( {7 c, E) }1 Hj_____5A501 I: c1 y$ p0 u* }- `$ J
k_____28502 e1 ]% I! F6 H) @& b; j& d3 C
l_____3E7B
- H6 R! N7 w- P4 q* h0 L. km_____71C59 Z  q: z8 f5 P% p6 w0 t; m
n_____1FC8
% L/ w6 L: ^! Q3 k# @o_____74C1. j/ n1 W: G3 e- L2 ?! g
p_____5FB8
2 F+ T3 C5 n! A! L' jq_____6085
+ m5 p  i8 e9 @; d) or_____3AC41 J  G6 z- p; Z- W
s_____2F50
9 U! _7 Q7 k$ b* ]t_____36F8, o% ^# x8 S9 a6 `! a" i( T
u_____7010" J# E" v  w8 Q3 N% e% e
v_____0B42/ o& W  W/ N/ Y0 K% d% ^& \
w_____1C7A
( A' l* [  J9 @3 Q! J% T3 q% Wx_____16F8- @! m! r  q4 O# i5 s, U% }( @" M
y_____2EE7
$ p+ p6 h# M: j. F" m3 _& Ez_____5CF30 V" n6 a5 v  A! S; H: L
!_____6233, L/ x% `; f$ i# r: e2 R$ [
@_____3A45
* }! D% u0 d+ H5 E2 [4 H#_____2291
6 {# D" Q+ T& k. D( g$_____5D5C, u* U0 n/ o4 l* `
%_____09B9
5 V8 e( b1 R0 r; \^_____43EA% g) P9 x! u9 P( q' f1 Y' C. D
&_____62B9$ [2 U3 `5 ^1 l; [! G
*_____6301
- g& F* A" Y8 N" e) t5 g(_____4659
) g3 ^" D6 |1 O" C)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表