返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 {. T: T# S7 Y, N
原始出处:http://www.3ast.com.cm% K2 P/ S( T: W7 a3 L
/ s6 R0 ~. S% F
看不懂的直接绕过
) T4 e2 |* T. I/ H5 K加密前为:hwy123456! X8 U; w5 A1 X) V" A- V
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E+ P. b8 P, _4 i9 E; `: }* S# X
5 O3 r+ w9 J% _: p% v0 G
============================================
8 ?: x  M8 O/ Z# J  z% c上面是当时自己校内的心情。现在已经解破出来了,分享给大家
+ s! U$ V8 b& W也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法8 A2 W+ S4 T7 N
以下是RSA算法文件
- q( F, K! }. @3 W9 @" S  G1 l# W5 v1 c! d# |9 S- e+ |
文件名RSA.ASP" o. E9 U+ l. V/ a( V: R2 ^
===============================================2 B; ^# K. U% {3 ~. l- V% x
<%
. m% ^0 ?7 _( g2 k% qClass clsRSA
0 t! F7 G. ~  J5 i2 p0 HPublic PrivateKey # h4 Q/ U7 o0 f5 G
Public PublicKey / c* h0 {, h$ x" \/ v* ^! N- S
Public Modulus 1 E: ~+ {( F6 {8 f  [3 E: P7 ]
Public Function Crypt(pLngMessage, pLngKey) ' v0 ]6 S8 ?! o9 J
On Error Resume Next + d* D) N7 z# x1 w8 Z
Dim lLngMod
# [4 \9 U7 X1 ^/ ]4 ?3 {& z% b% _Dim lLngResult + L9 Q' a. a7 c7 u
Dim lLngIndex % c! g1 A) e, n9 \; J; N
If pLngKey Mod 2 = 0 Then
4 _8 Z7 P4 v: c3 v- E0 y- `0 }lLngResult = 1
9 O  j9 o( ~; |2 V: w% X. f' }For lLngIndex = 1 To pLngKey / 2 / C- Z. s* Y9 s7 t5 y
lLngMod = (pLngMessage ^ 2) Mod Modulus
* {8 a8 q$ H- _8 j& U9 D$ R' Mod may error on key generation 4 S# D0 k. q/ w* Q1 O4 w
lLngResult = (lLngMod * lLngResult) Mod Modulus & s1 Z& l( l% X! R) j5 ~; k9 g
If Err Then Exit Function
( ]$ Q; {9 r$ A! K0 mNext
; n1 s2 P  w% ?, R' [$ l) O* B6 m' eElse + }! Y- @% ?# s2 ]
lLngResult = pLngMessage
& X% D& a  {" f1 B, W: i* CFor lLngIndex = 1 To pLngKey / 2 # D: V5 y4 u* [- j# r6 T
lLngMod = (pLngMessage ^ 2) Mod Modulus
8 z- s+ B0 i7 m" q7 G2 i4 L' j% tOn Error Resume Next 4 {$ J/ j5 W# N- G4 |3 l* Z( j/ \
' Mod may error on key generation
$ A" T) P" b: a* v. n! D; b9 n! ]/ _" T# BlLngResult = (lLngMod * lLngResult) Mod Modulus 7 t8 @  I1 I7 ~* f0 C+ u
If Err Then Exit Function
! F3 {# R6 h6 ~# GNext
! s! |* ^! l$ t, U. U; A& ?End If
2 O2 z0 I! g8 q6 V% K* S% {2 a2 RCrypt = lLngResult , C2 e/ z- z# A3 V- s
End Function) o( t' B: ?5 ]& U! i4 G1 q

! V8 r& L% @$ y8 y; M( |/ KPublic Function Encode(ByVal pStrMessage) . ?4 w" t6 Q5 P2 k( n
Dim lLngIndex % |0 I& Q# G, G. H
Dim lLngMaxIndex
' s0 k: [8 |4 uDim lBytAscii ! O+ N* N  C. X
Dim lLngEncrypted 2 R# _1 R0 J1 x8 L5 a
lLngMaxIndex = Len(pStrMessage)
* S! }6 T9 c2 w8 b6 r& A' _7 d+ ZIf lLngMaxIndex = 0 Then Exit Function
% H, I9 k9 C6 Y7 ~' FFor lLngIndex = 1 To lLngMaxIndex ) D# O$ y5 q$ r# ^
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
7 V3 e; V# s, x: y; j/ L$ _lLngEncrypted = Crypt(lBytAscii, PublicKey)
: l0 H: m- S+ k& J: {Encode = Encode & NumberToHex(lLngEncrypted, 4) # U. a, _! {! o" G. w) A. m
Next " y$ T9 v) l/ [  O% G
End Function   z$ y  o# f$ @: S- L
Public Function Decode(ByVal pStrMessage)
3 s4 t( e( P6 G3 C, g( z. kDim lBytAscii 9 E0 ^% Q3 F& S0 `; D
Dim lLngIndex , i/ H8 X7 U+ ]4 m0 m. l
Dim lLngMaxIndex * P" ^! E" E! n" S
Dim lLngEncryptedData % t( y0 ^9 L1 q; H8 N! J0 l
Decode = ""
: B/ ^- z3 v) a, ~; VlLngMaxIndex = Len(pStrMessage)
& ^9 h" l, W; d: x( _For lLngIndex = 1 To lLngMaxIndex Step 4
% k3 i4 l5 O* ]. n7 IlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
2 l$ n) Z  n' mlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ ?- K  a' i* c  g) y$ `' o9 `Decode = Decode & Chr(lBytAscii)
. Y5 b& L  a$ Y* LNext
; s" H; t+ a0 A7 b: g( dEnd Function
# y& r9 B+ F: r7 U! GPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
, V3 [7 |" x0 L# t5 H( |NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) / Y* e) }. z' T+ w8 ?8 x
End Function & z5 L" y" e* j9 h! J8 ], _
Private Function HexToNumber(ByRef pStrHex)
4 R5 h: V. p0 R  d* GHexToNumber = CLng("&h" & pStrHex)
5 W( B/ A7 O4 X% v) L0 LEnd Function : r; ]- ?, p$ z3 p- M* b: d# w4 |
End Class
5 Q7 ^; x) Z# I* Mfunction Encryptstr(Message)
* k5 z/ l& q9 U9 L. KDim LngKeyE 6 X. C7 b/ _! k& r
Dim LngKeyD $ z6 J4 k' H% V5 ~. A( x7 R. y/ f
Dim LngKeyN
) V5 o. M" e( i8 w) h/ f7 Q6 g7 kDim StrMessage
, m' z/ N' ~6 z2 z; FDim ObjRSA
- O: t, V# }+ n% K: ]" h- v* S2 lLngKeyE = "32823" + v$ N, N7 s9 K2 q- s8 D4 b
LngKeyD = "20643"
3 f8 a& a  [8 ?3 h' S- K& mLngKeyN = "29893"
# \- k6 m: j, I: ^! SStrMessage = Message
# l) u' ?; Z3 r* V- ^Set ObjRSA = New clsRSA
: c( P- \5 t3 Z: ]1 ^$ YObjRSA.PublicKey = LngKeyE ) M8 C. @7 C* f; i, b5 K2 {
ObjRSA.Modulus = LngKeyN 1 C9 H. a% F: q, N1 c! i( i
Encryptstr = ObjRSA.Encode(StrMessage)
6 F; F# U8 t  x6 TSet ObjRSA = Nothing * S6 r) a, Z, t% P7 ~: j1 r3 x
end function, {  f8 F/ P) ?# n& w% Q
Function Decryptstr(Message)   x" ]1 ?3 I$ j5 y* x9 x; ~. y
Dim LngKeyE 6 X$ ?8 }- O2 I9 E& J
Dim LngKeyD
4 ]( z2 P9 I  y$ X, R: p) M' zDim LngKeyN $ p$ o' _$ T) A3 |% @! |6 b. r- {
Dim StrMessage
2 Q' P+ u: g; q* G0 tDim ObjRSA
2 W: p/ W4 a5 p! jLngKeyE = "32823"
% }9 t1 }. P% ^6 @LngKeyD = "20643" " F# V' ?" R- r/ L- s! t) H. u
LngKeyN = "29893"
! `2 u6 }1 S7 rStrMessage = Message . S/ \! I5 J# o1 O3 [3 J
Set ObjRSA = New clsRSA
% H/ s' n) L/ RObjRSA.PrivateKey =LngKeyD # ?, ?6 y  e# K+ l7 m3 L: \& u
ObjRSA.Modulus=LngKeyN
1 S  p2 e- m3 W$ z/ Jdecryptstr=ObjRSA.Decode(StrMessage)
' A% g* c+ B+ W" \! ^Set ObjRSA = Nothing + `3 P2 `" U  V# R* E7 E5 z
end function 6 z+ L3 q4 {, h6 g+ j0 O7 x4 D
%>
: W* A# x2 q$ v: Y9 r===============================================
6 ~* U, r, ]: u& Y. a+ O4 W: s( l1 w; y3 l& B/ _
还有一个用于测试这段代码的test.asp
" @1 t; v  G6 i有兴趣的自己搭建个IIS测试下" e7 r; T( g, W( K+ ?5 }& n1 {
<!--#INCLUDE FILE="RSA.asp"-->
8 }3 g$ @: z9 ^% ~<%
  F8 b7 P. J6 G1 F0 _3 ?$ Qfunction Encryptstr(Message)
" N/ A0 M$ ]6 @0 wDim LngKeyE # S% h: ]1 R& l( r2 M) Q
Dim LngKeyD
# d* }. S% s( KDim LngKeyN
4 |* a1 N6 s( R! v4 v4 cDim StrMessage
: x- O) M+ j- A8 N0 sDim ObjRSA 3 ], {6 ?/ V1 [" E6 h
LngKeyE = "32823" 2 ^; N# n4 y# V# {
LngKeyD = "20643"
; J$ d0 X' v2 T% O+ s5 p1 \4 vLngKeyN = "29893" . ^4 {5 e) i/ \  R( D& U( \
StrMessage = Message
: b  t* d  {( [  {& KSet ObjRSA = New clsRSA
: N# i1 {. R+ KObjRSA.PublicKey = LngKeyE . P4 ^% }, N/ ], |
ObjRSA.Modulus = LngKeyN
6 ?7 P; @5 f" \* m- _Encryptstr = ObjRSA.Encode(StrMessage)
, z4 _/ W$ `+ ~% T$ D% hSet ObjRSA = Nothing # G8 T! @$ ^$ T8 {
end function
0 w5 O+ t& u# a# e3 `8 Z: Bfunction decryptstr(Message)
( ]  o5 e+ C6 X1 f1 k2 q# V+ cDim LngKeyE : F; d- i( k  k- Z& y" ]
Dim LngKeyD
( G! z1 s9 x/ nDim LngKeyN
/ e" }2 q* E9 i7 r5 p& d' @3 iDim StrMessage 2 Y3 _; q0 A, J$ u" A- E# x, Z
Dim ObjRSA
/ V, k7 K# M5 \8 n9 wLngKeyE = "32823" ' H( V8 d* n9 \* K  d2 e! e& n
LngKeyD = "20643" 2 {/ t7 ~- l+ W9 s) M: v
LngKeyN = "29893" & t9 G) f, j; a$ W! h! I
StrMessage = Message 0 S, p3 E' m1 ~0 y0 r
Set ObjRSA = New clsRSA 8 w# `& i  D/ P( \1 y+ o
ObjRSA.PrivateKey =LngKeyD
! Z2 z( N$ @( ^( ]2 JObjRSA.Modulus=LngKeyN + a3 q* y5 a; _5 Y; Z
decryptstr=ObjRSA.Decode(StrMessage) , Q$ d8 t5 W2 y( J" D/ L
Set ObjRSA = Nothing
; b0 V+ b7 Q. |' W* C! N9 ?end function . S' |" O1 M6 G1 `6 g" z( i: Z
dim last,first
  [6 E" p9 @# pfirst="!@#$%^&*()" 3 h9 [2 h8 ?0 T) k& e
Response.Write "加密前为:"&first
' h& v) Q" r) clast=Encryptstr(first)
$ H1 L3 O7 B4 v, J) cResponse.Write "加密后为"&last ! k9 b3 r; q0 d, q7 z3 B. F3 P
Response.Write "解密后为" &decryptstr(last) ! P2 e" T7 x& {3 Y
%> ==============================================* G0 h" n5 Q% `
剩下的就是字符的对照表了
# C; }. E$ x" a4 b+ `===================字符集================
& T3 l* D, p6 l- J4 Z, ?1_____6EBB* Y9 X3 t1 }2 y! S: g: k
2_____5C1F' e; y* t% {  R; g( n$ ]" ]7 t0 Z" r
3_____4D75
) R8 q* q; k, {- l/ b! u; Y) a4_____26CC
) \  D! t7 S9 a0 K- I' }5 B2 F5_____4F88
! j6 M" k; v- G3 R; y; L9 r6 y6_____3F4E2 k& e5 v, E! y& K6 O$ O
7_____0A9D
' p- }- g1 v8 ]3 |  C1 `8_____1A1C* g# g# S4 A  [7 W: x" I
9_____6D206 @6 }* ~1 M# |0 P8 x
0_____1089
2 X' u/ j4 N+ q  n) C. i* S+ La_____0F3E
* r: X/ Z* S: U* g% j& r6 v' w- Eb_____3159
! S% ]/ \# Z1 S8 l5 zc_____35178 P5 ~2 R5 Q' @4 \! F
d_____419C* }+ _) g5 C* r: J0 v( a( W" m) X8 P
e_____615C
* f. Y. E2 _4 ^- R! zf_____556F
/ h& z- g1 w4 b. F1 u% zg_____2B7F7 I% Z: u' d! s
h_____0F9C' r8 e% g1 J/ i1 o
i_____00FA$ u! L" G, u9 u0 c7 G6 J
j_____5A50& u. h; E2 A( R; A
k_____2850
# V! |5 L" g/ F% I4 z- tl_____3E7B
0 M8 H( E( j" S0 c& W# um_____71C5- O& h7 i" {+ \4 E! K& v: z
n_____1FC85 M3 d7 Y; Q5 V; ~7 [
o_____74C1
4 v0 @8 _+ J0 S, b: jp_____5FB81 L% Z" x# o. m
q_____6085
- S" u% P* \- Q3 i; tr_____3AC4
, N! _! ?8 z( I7 W: v/ [, [9 ss_____2F500 e8 ~" g0 c) \5 U- @
t_____36F8
& M5 F: W- F8 |. e/ m& Lu_____7010+ ^" D7 Y: B) \' }0 H  {
v_____0B42/ K; a* w, G" L. L6 `2 e4 U2 w: n+ p& i
w_____1C7A8 l, _8 t7 n2 v+ H
x_____16F8
6 X/ N! |* z8 _3 ^y_____2EE7
, Z" O* v" W1 _3 t: Pz_____5CF32 z  i# N2 U* ]+ J
!_____62332 k7 d. ]# S3 g7 x; ^2 U
@_____3A450 Y0 q! i% f1 Z. Y5 g
#_____2291; v# \$ B& K$ z+ ~. x3 L) x
$_____5D5C
% B# J" S; Y8 c%_____09B9, P- M6 z" G6 P% f" q' E
^_____43EA
( v, a$ ?$ \+ C; q# Q9 H&_____62B9% L0 U$ L: a9 [  d9 u  M
*_____63017 p3 i, A) I0 A" w! x! q
(_____4659& s; Y- P4 `0 l" W
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表