返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm7 x4 P: {3 o: k  b( Q
原始出处:http://www.3ast.com.cm
8 I* y; M$ ~+ X. d' W" v) r. d( {
看不懂的直接绕过$ [: _! q" y) a5 p+ h
加密前为:hwy1234564 j3 w1 b' o3 X
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
" o+ M9 q1 Z$ K* h( R8 S' ~  D. G, R0 m  g, |! X
============================================; A1 D" D2 U4 {: ?% D& b3 ~
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
. c. p( _) V: L' B0 o. z# Y& M也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
( t; d* r  Z! i. q& Q) o以下是RSA算法文件, n! [' B; l  r: b/ _4 K/ `

# S0 `8 l* Q. Z0 L: \文件名RSA.ASP
+ R0 ^+ C. v8 w* Q===============================================
# q2 O/ K* {% E2 C3 k<% ( s, A, l; F. o
Class clsRSA ) D* P. E6 |. x1 s
Public PrivateKey
% W/ I$ V/ o9 L$ vPublic PublicKey 1 A- o, Q' w1 Z) J
Public Modulus ( o) J" u# V7 ~. ~: }) s6 `
Public Function Crypt(pLngMessage, pLngKey) 7 V9 M) M. W; f
On Error Resume Next & i% t  }  L& }+ D1 g
Dim lLngMod ( S" @! w4 @! C( d( [; r( J3 ^
Dim lLngResult
3 ^0 m" ]3 O8 j, g; gDim lLngIndex
6 u9 W0 J+ F. e1 x6 j5 b2 [If pLngKey Mod 2 = 0 Then * q0 l2 X5 [4 s2 Z% _
lLngResult = 1
) a9 I( g" E/ C- sFor lLngIndex = 1 To pLngKey / 2
" E" O7 i' z" R' V8 E% alLngMod = (pLngMessage ^ 2) Mod Modulus + S+ W5 T7 _: m, P( D' Y4 r
' Mod may error on key generation 1 X3 H" j! \" Q  M
lLngResult = (lLngMod * lLngResult) Mod Modulus % V# J4 w! X7 @  M* W) [7 `
If Err Then Exit Function
+ [+ d+ D' D* r* x! U# MNext ) p/ P3 O7 ^, }8 k: Y
Else
, H( ~9 b! W+ x/ N7 UlLngResult = pLngMessage   p& |4 a& w$ \) Q5 Y8 c
For lLngIndex = 1 To pLngKey / 2
7 K0 c9 y4 U- N9 X  b8 g( zlLngMod = (pLngMessage ^ 2) Mod Modulus
* {8 i" A4 c3 S. }2 ~7 kOn Error Resume Next
6 T" ~0 g# R; z1 `' Mod may error on key generation
$ e/ `8 N' ?# q1 I/ YlLngResult = (lLngMod * lLngResult) Mod Modulus % A3 [2 ?# u- q# i% U3 v
If Err Then Exit Function - j; P* ]# c5 I2 {# W% S
Next ' o+ H6 w% `2 d3 A- w3 V1 J, ]2 j
End If
$ j$ V- |! [6 {2 b, FCrypt = lLngResult
  \* @& ~, d7 CEnd Function" u, P: U( F% Y

6 R2 W) o- B  c4 x+ u) iPublic Function Encode(ByVal pStrMessage) ( R3 K# p0 A& l) F
Dim lLngIndex 1 g# m6 i  g  O' M/ _. u
Dim lLngMaxIndex ) H6 S) X- \: Q' v; [1 T7 F
Dim lBytAscii 4 t& Z  I* F- I* k8 K4 n) W9 ?
Dim lLngEncrypted
4 U9 N4 M, x5 ~/ O1 P% X- |# A% `lLngMaxIndex = Len(pStrMessage) $ S2 a  }" {" m
If lLngMaxIndex = 0 Then Exit Function
, \7 p& v% {; @% Z: w+ xFor lLngIndex = 1 To lLngMaxIndex
2 `" y8 Z) q; S9 M) \8 C! elBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
6 O' ?" v1 @! i" }) ?% H7 m8 x& VlLngEncrypted = Crypt(lBytAscii, PublicKey) ! }9 x+ t. A" d) F4 I7 h- e
Encode = Encode & NumberToHex(lLngEncrypted, 4)
' b2 U+ }" k, a# ONext
' z6 a8 \0 \% b6 e/ H+ e7 N) vEnd Function / N- }! o& A( U7 u$ X0 X( E
Public Function Decode(ByVal pStrMessage) 9 X; {& Z; Z3 F8 G8 K, ?
Dim lBytAscii
5 ^: m. Z  r* y" HDim lLngIndex
/ f. ]. \5 k0 [) k" oDim lLngMaxIndex
0 D# x" T2 J7 Z" {; v* HDim lLngEncryptedData
  [# C. @2 s7 uDecode = "" + V% F9 H- f# A9 ^. }7 d1 f
lLngMaxIndex = Len(pStrMessage)
5 ^3 Z% L7 H8 ]4 m/ {- AFor lLngIndex = 1 To lLngMaxIndex Step 4 0 m; \- Y* T+ n2 ?. E0 A8 M
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) " j8 F6 B! x/ r' X
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
) l; j% _6 F3 a# S) ZDecode = Decode & Chr(lBytAscii)
: f5 v5 S+ m% @1 W+ BNext , L  }) m: o# P  G  x+ V6 j* X
End Function , X$ V$ D3 e4 f: C( P  ]  R
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
7 P: H' ~, k' SNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) # C0 E8 ], o. i, |* T
End Function $ c" m8 Y/ A3 G
Private Function HexToNumber(ByRef pStrHex)
! D7 c& R2 ?' J9 J8 r  [$ j+ ~HexToNumber = CLng("&h" & pStrHex) # \% T/ {8 p  O  g8 X1 v
End Function
% D( _( K; S# k9 P% MEnd Class ; o( G7 w7 ?; G7 c  Q' T) N0 s
function Encryptstr(Message)
1 Z3 w) z# _7 z9 @* m# N) l$ B, p7 e  sDim LngKeyE
+ N( R& T; s3 ~+ SDim LngKeyD
/ z& s! ~6 ?: \+ R+ ?6 Q% eDim LngKeyN # ]1 D9 _. {+ H8 V- J! \% @
Dim StrMessage
' K& e$ p8 u+ A' C7 dDim ObjRSA
, L! @  w$ `2 }& l3 S2 gLngKeyE = "32823" 3 }9 E# w+ I' F
LngKeyD = "20643" ' _3 G# H5 p- |9 G) e* v) w6 E- N' f9 p5 L2 v
LngKeyN = "29893" * ^% ?) r1 h+ x- Y- b! j, r
StrMessage = Message
+ D; x5 L1 P; @8 KSet ObjRSA = New clsRSA
: u' {+ P, Z' U) w0 ^7 ^; P! H& DObjRSA.PublicKey = LngKeyE   O0 X+ T* X+ \9 W
ObjRSA.Modulus = LngKeyN , P9 W5 A' K$ I
Encryptstr = ObjRSA.Encode(StrMessage) / Z1 m; c! _$ ]
Set ObjRSA = Nothing 3 s6 z6 W/ r4 W
end function
# X: F' Y0 C, E9 A7 yFunction Decryptstr(Message)
3 V+ V; \( p& I# \Dim LngKeyE 0 K$ c# a7 K$ y
Dim LngKeyD
+ _/ u# m) Y! FDim LngKeyN 0 \( Q' t4 c5 r% T8 c
Dim StrMessage
. f( F# F2 c/ k. {0 I5 D* CDim ObjRSA 5 d% C0 v% C; V6 B* F0 s
LngKeyE = "32823" 0 z2 a- C6 X( |) x$ E0 M
LngKeyD = "20643" " `3 ~5 P1 t5 k+ Q- _
LngKeyN = "29893" 6 }( W0 k0 M4 S' J# @: N
StrMessage = Message
3 c0 p: U7 _" f- _4 o5 tSet ObjRSA = New clsRSA
3 \7 ?7 J, P4 E2 q. m1 _6 VObjRSA.PrivateKey =LngKeyD
2 f: @, ]- u8 ?1 LObjRSA.Modulus=LngKeyN , N7 M$ J, ?; _# U+ r
decryptstr=ObjRSA.Decode(StrMessage) , ^& t! R+ T! r' i' i
Set ObjRSA = Nothing
. Z* v2 f! ^- c5 i. ^3 gend function
' h, I) Y& z6 Y  l+ J( N  K- {%>
7 o, i5 c3 p- Y6 Z( t+ I===============================================
* l- q: m; D8 Q2 j" h) D
3 |3 H: K( J/ }8 U; x* L8 _' {. h还有一个用于测试这段代码的test.asp9 z0 x' O8 y6 f# d8 j( Y+ L( x2 f" G
有兴趣的自己搭建个IIS测试下- E* F2 S7 p1 A* ^. I
<!--#INCLUDE FILE="RSA.asp"-->
6 Y% Z- V* A$ {* A; H<%$ M3 I  Q  ~5 d' H& `
function Encryptstr(Message) $ V% }4 w) x( e  F# c: B4 q
Dim LngKeyE
" K; e2 A6 p% n, o" }6 G+ {# Y) sDim LngKeyD
9 h8 b( A  l+ D8 ], B" Y) g: hDim LngKeyN
4 d8 n2 _# X1 ODim StrMessage * j# |. m+ ?  K: `+ j
Dim ObjRSA
3 h5 C2 E* I) ]0 n" Y: hLngKeyE = "32823" : U) t9 x+ u- ^. [& t* U3 `
LngKeyD = "20643" 3 s7 T" A# R4 B3 H+ F9 s4 y
LngKeyN = "29893" 1 P2 C/ K  ?" o, u
StrMessage = Message
# d9 ?7 [) d/ `' z1 X" i! ?$ a9 }Set ObjRSA = New clsRSA 3 Y9 ], h, l( o2 m
ObjRSA.PublicKey = LngKeyE ; O5 e, U/ {9 Q! ~6 @2 U/ S% `
ObjRSA.Modulus = LngKeyN
  M* W8 G8 d! e( q7 c) bEncryptstr = ObjRSA.Encode(StrMessage)
5 {( W7 |- c$ n, x$ l1 eSet ObjRSA = Nothing
$ @% b; @# X9 {" s; e4 ^0 zend function 2 S! c9 W. H8 q8 @  w+ o4 \1 w6 E
function decryptstr(Message) ) b& A. z: I7 I, R
Dim LngKeyE
( G; E3 l- w1 k% A: @& jDim LngKeyD
# d* K/ |2 h( o  r( a& XDim LngKeyN 6 P9 r- G3 O, I! `$ m/ Y
Dim StrMessage / M5 h; j- J( i% q1 H. F
Dim ObjRSA % ]: X# ?. y; r  \7 n. y
LngKeyE = "32823"
4 J! O3 H- s1 PLngKeyD = "20643"
( K  \# S; W8 y  S* ]3 b. GLngKeyN = "29893" 8 ]; F$ W- O; c3 K  X" j
StrMessage = Message 1 M, G- R( G& Q& B8 \' @1 ^
Set ObjRSA = New clsRSA
+ h- Q: a# Z: P8 ]( oObjRSA.PrivateKey =LngKeyD
; ^' A4 f5 @2 s' B9 Y0 K$ D/ p1 A" LObjRSA.Modulus=LngKeyN
3 i8 B0 F3 b* H3 ~) M$ ^decryptstr=ObjRSA.Decode(StrMessage) ; {7 H: Y8 r8 E6 d& t
Set ObjRSA = Nothing
2 O' \: J9 I. u5 J$ Iend function 7 k% U  c1 D- l3 D# {
dim last,first 1 r& y8 U6 W# r1 z( v8 v
first="!@#$%^&*()" ! f$ N& Z" ^. q' p1 b
Response.Write "加密前为:"&first
) I# @0 T9 |" [& y1 Elast=Encryptstr(first) % _+ G0 \+ w9 \/ }. `
Response.Write "加密后为"&last
' n8 F3 k) \; g! p" R& GResponse.Write "解密后为" &decryptstr(last)
' G$ B; D9 }# @% {* d%> ==============================================
% R2 r/ Y+ O6 b剩下的就是字符的对照表了/ y) B/ ~! P1 e4 \6 g% p% t
===================字符集================
, _' r4 ^4 P% j; a% H4 E5 ?8 S1_____6EBB/ n4 A4 t3 Z/ f; f; Y& }: w
2_____5C1F: X' s. u& S1 p3 f0 z
3_____4D756 y9 ^  |, [! X5 b1 N% v* W
4_____26CC4 n8 i0 A3 T! s9 o5 k+ N: Q5 y- f& I
5_____4F88/ N( W, e9 H: ?
6_____3F4E
0 o* P% S6 O3 J8 W7_____0A9D( s7 j' t" h8 q- ]* S4 a" P! }
8_____1A1C
. R: g& k- z# w/ V: w# z1 y7 R$ r9_____6D20" N- T- ~; B% o7 P. \% ?
0_____10897 r# Y+ e6 E$ y4 \
a_____0F3E
; {6 r! o$ [6 hb_____31598 z$ r0 X% y: x9 r* l; Y
c_____35173 l) B; W$ u! A! e6 Z
d_____419C7 Z7 g4 R9 i; W
e_____615C0 N4 o2 v: a: w
f_____556F$ `/ O; x# G- w- x$ `
g_____2B7F- u5 {: [& v' r  N) [- G/ k
h_____0F9C
8 p  B2 o8 H6 }9 i7 ?i_____00FA- x- W: W1 ]/ \- S
j_____5A50$ t: n0 w; N. h2 d6 C" B& R  A6 {9 ^
k_____2850+ A. ~# y! a" \4 l+ p
l_____3E7B$ Q( Z) Z0 J4 M, x. ?+ z
m_____71C5! ~! r1 Q' Z# V7 L' n1 q, O
n_____1FC8
* \1 t9 [- O7 n4 ^+ L! wo_____74C1; o: u! G  D  H+ g. u! t  {# E
p_____5FB8
; g% f6 i, h6 m$ R( }q_____6085
9 I0 P6 Y+ \$ z& i! h) ir_____3AC4" m$ v- _2 q* r0 ]9 c% O/ i
s_____2F50
& `4 v! K/ e  A' Ht_____36F8
# d: [! Q* r1 a( [u_____7010
2 s2 p5 o) c* {2 M# k# ]- a6 qv_____0B42
9 R$ U0 h$ F( \7 m: q  d# k, vw_____1C7A
5 q5 ^! v* b$ K/ q+ S9 i6 \x_____16F8
+ [: _4 I' a2 j6 l1 Hy_____2EE7
, d0 A9 Z1 O% P2 Y9 n% X0 n, y7 _z_____5CF3: u1 G. @( ]9 p  D# t9 `/ s4 T
!_____62332 a: r, k7 |8 x2 X
@_____3A452 `, N8 @; K  r  D7 ]( S- ?9 I) T0 p
#_____2291% T0 q4 G3 G% X
$_____5D5C8 b1 {4 J7 E. I* H
%_____09B9+ ]9 k# M7 [& m4 M3 t, |* C
^_____43EA. ~& X; s3 p# {) T" C' e; }
&_____62B9& }6 s/ h0 X, w7 r8 T; C
*_____6301
$ `: A- T4 Y- q1 D) N" ?(_____4659
: Z& g0 U. P5 z. j)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表