返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
- v  g8 k9 E9 m* n原始出处:http://www.3ast.com.cm
* E" z" U2 g7 o; M* F0 _6 L; q$ u; h- ?; r: S' I" A) h0 h! b
看不懂的直接绕过- N4 ]5 f1 T, k* M0 C
加密前为:hwy123456
2 H2 g! Y$ M) z7 Q加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E4 @' j9 Z* a+ l# p: x
& X0 E' [, K& Y' e! _
============================================" j5 f; a3 t$ D1 B6 q, G
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
: r( c7 g  }& I! e4 P2 c& _也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
: k0 T) E2 e$ X( u# ?. j1 s6 h以下是RSA算法文件$ V0 |8 i# ~1 H
( y' F7 H- t% i
文件名RSA.ASP+ c, C' v! G, L( E; ^0 Q
===============================================
7 ~- E" \& v' P7 D# @9 S' X<% ( h5 R- F: m: R# p
Class clsRSA 6 n- X+ q% F3 O2 T% q! I
Public PrivateKey : C: B: i+ O* Q1 S% b2 o
Public PublicKey
) `& L+ z) F/ jPublic Modulus
( Y( G) B' A: o4 jPublic Function Crypt(pLngMessage, pLngKey)
! {5 W; u# i+ s4 ]$ Y' JOn Error Resume Next
6 w( T% @! n$ w% P5 d# dDim lLngMod ( i# ^7 Q, s6 F2 x" u2 n7 f
Dim lLngResult ! i$ w" Z: Z5 }" A9 ^$ i
Dim lLngIndex # D( A6 T$ F9 \! S
If pLngKey Mod 2 = 0 Then . R3 }0 k. v/ u7 [- ?
lLngResult = 1 1 d( G3 n8 k' o  d1 Z* z3 U
For lLngIndex = 1 To pLngKey / 2 ! r! ]: H4 o- Z2 F
lLngMod = (pLngMessage ^ 2) Mod Modulus ! N  I% \& O# a( o7 R/ x1 V
' Mod may error on key generation + Z: u, ]* T2 B! G1 B4 S2 B
lLngResult = (lLngMod * lLngResult) Mod Modulus
: B' \& ]; {3 @! HIf Err Then Exit Function 6 ~( ^9 R" ]$ ]( a
Next " e8 `# ~$ k8 z) u
Else 2 v( E+ v8 R7 \* D
lLngResult = pLngMessage
- i3 d# b( M  }: ~& b! KFor lLngIndex = 1 To pLngKey / 2
$ c& e! _& z9 A4 m( ?lLngMod = (pLngMessage ^ 2) Mod Modulus
0 H0 }2 p: b9 Z. s5 K/ ~+ F/ lOn Error Resume Next
) K( B- m0 H& w1 a8 G0 b, z' Mod may error on key generation + f3 j$ ~7 A! J1 X
lLngResult = (lLngMod * lLngResult) Mod Modulus
8 O4 O5 h- ]9 s  `/ u+ MIf Err Then Exit Function
5 n1 X, x' h2 {3 |, ?Next
* W2 k* b: l* K/ S1 F+ eEnd If , g% J7 W5 f& ~
Crypt = lLngResult   p) d# I$ f8 {! Q1 A/ c& ]
End Function
% q9 T/ y: ~6 J' ]( _4 f0 D
, K% ]/ x; d. s( O' ^Public Function Encode(ByVal pStrMessage) , i2 M3 N' Q, K+ I' [6 p
Dim lLngIndex ( O$ p) v- T+ g/ d# N" H+ s( k9 J4 s; M
Dim lLngMaxIndex 3 d) y# [7 _" w( M* R
Dim lBytAscii ; w" @& ?" T+ V' t6 A5 i6 n
Dim lLngEncrypted
6 G: f% u5 a- |% d6 H7 JlLngMaxIndex = Len(pStrMessage) 4 ^0 D, D0 X# o$ Z; |
If lLngMaxIndex = 0 Then Exit Function
& _/ y0 D1 r* vFor lLngIndex = 1 To lLngMaxIndex 7 G+ @0 p( c& y5 Y# a/ X# M  F# H7 V4 W
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
% X) w- v, D! I! R" z4 jlLngEncrypted = Crypt(lBytAscii, PublicKey)
4 t+ @3 t9 }1 \  ?2 nEncode = Encode & NumberToHex(lLngEncrypted, 4)
6 j' O4 }. S: F6 u/ f6 Y% d( dNext
* h2 I9 P! F/ G1 E$ L% aEnd Function ' {) r3 z' s% t& c3 D+ Q2 f
Public Function Decode(ByVal pStrMessage) / C; y5 a+ |% @
Dim lBytAscii & O, j' w8 P) w# h3 I+ S9 J
Dim lLngIndex
& r* R* }4 ^0 \Dim lLngMaxIndex
# c! E0 M- s4 B2 d  c* p( q# ]& `Dim lLngEncryptedData
$ |" Y( q7 d) r( i1 g% i  KDecode = ""
; L+ H, P5 f" [; clLngMaxIndex = Len(pStrMessage) 2 h" L* t* O2 V5 O
For lLngIndex = 1 To lLngMaxIndex Step 4 : f3 O$ Z" U5 _& n
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
7 V3 ~# o% ]9 [; P5 [/ glBytAscii = Crypt(lLngEncryptedData, PrivateKey) 2 [$ B1 ~. I+ m' X
Decode = Decode & Chr(lBytAscii) . J7 f, I; h% h+ }3 s$ k
Next ' M" ?& L; y" m8 n& x. I- O. O0 U4 H
End Function
/ k5 a/ z! s; }0 uPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
% b& J( O6 z+ ~/ D8 gNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) & w7 W/ r0 V1 R+ g/ d8 Y
End Function
; i& g% C: k7 y9 iPrivate Function HexToNumber(ByRef pStrHex)
9 h5 n1 K1 Q! KHexToNumber = CLng("&h" & pStrHex) 5 D$ @6 p+ F) x/ G' I/ R
End Function
* p$ d, B" P( y$ K; CEnd Class ( U  g. D1 N: I$ l  Y5 t  h
function Encryptstr(Message)
3 z. ~4 }6 C% e8 q+ c+ R5 @Dim LngKeyE 4 p: |# D8 d% x
Dim LngKeyD
2 y, a: D7 D4 G+ ], F$ pDim LngKeyN
* M. @$ M& ]2 F" s% BDim StrMessage
! V) `6 n) `6 Q) h7 D" D6 uDim ObjRSA 9 }7 x+ W: c* j0 r/ |
LngKeyE = "32823" 2 a$ g7 I; C4 B' J6 [9 A
LngKeyD = "20643" 5 _: G7 }3 P  x% d5 z8 Z. W9 n
LngKeyN = "29893"
& W* P! }/ _: S5 P9 A' `; fStrMessage = Message " u2 T2 {; L3 B5 N  @6 Z
Set ObjRSA = New clsRSA
0 r, H/ \$ f4 i' f$ @+ _! D' ~ObjRSA.PublicKey = LngKeyE
5 ^- ^2 D* M& q4 \. qObjRSA.Modulus = LngKeyN 7 ?) e: T3 ~  m& e2 r& p
Encryptstr = ObjRSA.Encode(StrMessage)
. }6 m+ A# p, s# TSet ObjRSA = Nothing 3 s: M2 |" i- O5 |4 j1 V
end function- `: }7 k* F% z9 V1 |% Y6 X$ @
Function Decryptstr(Message)
$ }: w5 Y/ Z0 y6 {' X4 WDim LngKeyE
% y; O1 s" u) W/ ~' e6 wDim LngKeyD ( c$ U% L/ S8 H4 c, M
Dim LngKeyN
4 O$ T) v4 r/ ]. n  n; u. |Dim StrMessage - I4 f3 ^+ ~2 h: b& Z6 j$ U2 w
Dim ObjRSA : h/ ?/ z0 w: O6 l4 `9 N
LngKeyE = "32823" ! e! t+ ~( A5 C, c- _" m2 T  T; T
LngKeyD = "20643" + x0 t/ J, w# O. O/ q
LngKeyN = "29893"
5 R9 R$ h5 v  ~# _% g# s0 R2 {$ i2 VStrMessage = Message
4 Z6 `1 Q* h% _5 {, RSet ObjRSA = New clsRSA 3 v: d0 F. M% ?5 f/ z
ObjRSA.PrivateKey =LngKeyD 7 v! M* A4 {: N
ObjRSA.Modulus=LngKeyN . F+ D! S# F6 j8 R0 R+ ]& ^+ o
decryptstr=ObjRSA.Decode(StrMessage) 2 E" _" M  `0 H' x2 l3 n3 s# C
Set ObjRSA = Nothing 7 A9 z) j' G. z6 a. D
end function
9 S- C# ^, f0 z8 z9 v0 E%>
- N0 V# R' ?) ^===============================================
0 ~3 J# Y2 k2 l- s8 g  E$ Z! b+ E* _, |; z: [' C
还有一个用于测试这段代码的test.asp
, G# S6 f1 @( [有兴趣的自己搭建个IIS测试下( s; S+ G. u7 ]& X, e8 V
<!--#INCLUDE FILE="RSA.asp"--> 1 I5 u, v9 j% C
<%
/ T# Q' ]8 b# @function Encryptstr(Message) $ Z7 h: T4 d9 w
Dim LngKeyE
4 {# S% A* y1 O% ]Dim LngKeyD $ l. U- _, b6 B$ D0 R' u) U/ \
Dim LngKeyN # V& S4 \6 \( v1 C6 A
Dim StrMessage & u; S: x- B6 k8 h
Dim ObjRSA
5 a. H- V! h& @+ F& ?1 nLngKeyE = "32823"
. [( w! I! e- ?0 `LngKeyD = "20643" ) C8 g" [9 y8 {* E# Y8 l
LngKeyN = "29893"
& ]9 {9 r+ K) J* @StrMessage = Message % ^, W5 e) Y# H
Set ObjRSA = New clsRSA
) Q9 d5 C6 P- X: }ObjRSA.PublicKey = LngKeyE
4 U) l1 o7 [, }1 ]ObjRSA.Modulus = LngKeyN ; r! P4 h4 O7 S4 J
Encryptstr = ObjRSA.Encode(StrMessage)
  W: K% i( |2 SSet ObjRSA = Nothing & T, G7 m/ l8 T( X2 E
end function ) e  b1 G' V5 M1 c
function decryptstr(Message) ; k" D1 d, c) i. k9 T& y' t+ D
Dim LngKeyE
, j9 }% z( ^- a5 v6 k2 TDim LngKeyD
0 s( y1 G) f' n9 ]Dim LngKeyN 0 U! }8 t! x" e6 g! J
Dim StrMessage # Z% y1 W/ l- a$ R
Dim ObjRSA
/ P: E% p7 X* oLngKeyE = "32823"
0 X3 P: a4 y' o0 Z# I' ?$ \' _LngKeyD = "20643"
8 A$ @$ c( D% `1 i8 F& C6 vLngKeyN = "29893" . U1 C7 m: M6 o' b  L
StrMessage = Message - f! Y  z; C" d; E* {- r
Set ObjRSA = New clsRSA
- u8 C2 W1 ?( _8 X+ o; ^7 mObjRSA.PrivateKey =LngKeyD 8 B; O. \, w4 t; a" d  _
ObjRSA.Modulus=LngKeyN
& Y7 V0 z5 W- ]# x% S0 n' g( Gdecryptstr=ObjRSA.Decode(StrMessage) $ m" ]$ u; U' h' Y2 N5 U$ A1 y$ R
Set ObjRSA = Nothing - X( U; }7 z9 E1 C3 @1 K
end function / o+ H. a. b- f6 E. T
dim last,first # C, _' ?9 k& ^0 X
first="!@#$%^&*()"
" x" J' S: z& s* b( \  c  AResponse.Write "加密前为:"&first
$ h$ [0 K7 `' Mlast=Encryptstr(first)
: b: o* Y% b: P) q# DResponse.Write "加密后为"&last
4 Y' m: s6 m* _0 [& {. HResponse.Write "解密后为" &decryptstr(last) ' m2 n+ D0 v& F6 \# `& x
%> ==============================================
' v9 w) e; n8 O+ b4 `) m6 X, z; e剩下的就是字符的对照表了
7 L8 o0 ]% s# D0 I1 a4 `===================字符集================
3 Z# H8 s6 Q; Y" {( u  Q1_____6EBB
0 ~' R( [' o* X0 a( c" f: Y2_____5C1F
3 y3 ~* w2 L& F8 |# E3_____4D75
  w5 |0 a3 H6 X# i  ?4_____26CC
5 f: F4 s/ K) l1 o8 J0 b0 r5_____4F88' u4 P% V8 R9 O* G2 ?$ a' ~
6_____3F4E, G/ _3 q+ v- ~8 V
7_____0A9D
9 }  ~$ L+ f- z2 ^+ W% o8_____1A1C
6 e! }8 h. q0 c% i0 j5 ]9 k" a6 r- b" e. L9_____6D20
  y& N1 o) Z5 S9 `4 m; v: m. ~- f0_____1089: C; j5 A. V" j6 U+ I. b
a_____0F3E
$ Y# q( \( w# i6 r4 }* e  Vb_____3159& T  W- ^" ^( p
c_____3517
0 _4 U1 J  |7 X" yd_____419C1 @; T0 t3 T* T  i0 y+ A) G
e_____615C
$ l( h; k" K3 L: Yf_____556F
$ M* z  ?# I  g: pg_____2B7F
# x( x0 @7 i! `0 s& kh_____0F9C
/ t$ f5 s( |6 ]( v! ji_____00FA
( ~  v6 `5 B( A6 Aj_____5A50
1 l  J0 j! y" d6 u: ]k_____2850
! C- _+ K4 X5 i8 Pl_____3E7B
6 j$ W5 P' s  L3 F' S6 lm_____71C50 L" K- a: }! V! B0 h: E9 A
n_____1FC8
. Y) \  v  R9 F7 T- lo_____74C1/ \4 {- k5 W; l+ x
p_____5FB8
2 u" m; V7 s0 X6 A9 L% }. s9 I2 {- |q_____6085& g+ [0 W% ^9 [  i) @- \; I
r_____3AC4/ G+ m. @6 s$ v2 C, I# x
s_____2F50( \3 s3 z- B' b$ d# t( w, p9 O$ }
t_____36F8! d( n% V6 H0 c  q
u_____7010
( W" E! X& E  V+ \# W& R; F2 ]9 Jv_____0B42& w2 l% e+ U# A! b9 n# ?* V
w_____1C7A
3 S( a$ k0 X' d# r  Q, ax_____16F8* j% F+ H# t$ \" L3 G
y_____2EE7
. F1 r7 V- N8 `5 {- i7 O/ Qz_____5CF3& r" D) ], G& T! Q; Y
!_____6233
9 ?5 k6 a$ N& N/ E  i- J3 |@_____3A453 W* t  J$ u) w6 B- l
#_____2291
7 Z/ m2 _- T9 ?9 C$_____5D5C
: A! m3 D9 P, {%_____09B9
" {- V" [/ f, g4 l2 o& D^_____43EA
) t3 E& P- p* c( X$ l0 W&_____62B9' V* K" y. i! q. o- ~  Q9 p! j8 K
*_____6301) T4 i7 |, ]2 k* r
(_____4659
- ^8 [1 {% c! l& l1 j)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表