返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* y/ i$ r/ v7 s4 n原始出处:http://www.3ast.com.cm% A% }5 }7 L' S$ `; L

9 h, b5 Z) V% f+ d8 e看不懂的直接绕过' `$ ^; e6 u+ l# ]6 j5 S% |# Y
加密前为:hwy123456* S  K# N/ b0 P  b
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
  a) m: o$ H$ K" ^& h* ~8 X' ~+ M: n8 J
============================================
$ F% K4 O& C, J: p* h上面是当时自己校内的心情。现在已经解破出来了,分享给大家
1 e) x2 r# z; N7 \; [+ M4 C) ?也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法, q* o8 D! L1 [+ R5 y" R) N
以下是RSA算法文件
1 ]+ r  V8 ?3 O% Y& _" H0 H8 {& k8 U( R
文件名RSA.ASP. C* X5 H2 d2 A( F4 N
===============================================
0 g: ?  p( R1 L" D& C1 a- R<% / I. x: p: C! q
Class clsRSA
# w' M+ F+ r: U) m1 JPublic PrivateKey ( I/ v- i7 y0 e& {% o! T: ^
Public PublicKey
. J+ |' l7 g- j$ u) D' K1 E9 \Public Modulus ' T3 ]" ~1 p8 p0 f5 n
Public Function Crypt(pLngMessage, pLngKey)
- d# Z3 F2 e  g( N3 \On Error Resume Next 0 e9 B  \  {% q0 b
Dim lLngMod
& P- u/ [% D/ }/ G! CDim lLngResult
" p. p/ l7 {% `" qDim lLngIndex
  Z+ A/ U4 l5 F* x/ P9 d4 T& q4 p) TIf pLngKey Mod 2 = 0 Then ' T* s8 j7 {4 L+ d( w3 O
lLngResult = 1 ( ]( }. V3 R, y5 S2 u2 C6 i
For lLngIndex = 1 To pLngKey / 2
/ n: _8 \" |( j' {/ D6 AlLngMod = (pLngMessage ^ 2) Mod Modulus
- p# M+ _' |* ]' Mod may error on key generation # D3 C# |% N, x
lLngResult = (lLngMod * lLngResult) Mod Modulus
4 {* i/ [- ^% \* S& l2 d5 qIf Err Then Exit Function
: e/ |4 ~" v9 ^, z+ [) PNext
/ T, X. q% Q! K% j" }Else
+ b0 I. E! r, S, {# ^8 m5 [lLngResult = pLngMessage " Z; J  a% T! m- a* B
For lLngIndex = 1 To pLngKey / 2 / \4 M0 I# b" i* {4 ]
lLngMod = (pLngMessage ^ 2) Mod Modulus 8 p) T  T; d  p" W4 b; z) a0 \
On Error Resume Next
0 s  M/ v5 S! ^9 S3 R' Mod may error on key generation
6 q1 u( f3 L' x! ^/ T: D, WlLngResult = (lLngMod * lLngResult) Mod Modulus
6 I/ T) q$ n; u+ ?8 G" }3 K+ eIf Err Then Exit Function
0 B9 n' ~# W$ b" ?$ TNext
+ G( h6 C6 J# y: d7 r) EEnd If
. o" b! W6 d9 ~8 x6 ?- i+ @Crypt = lLngResult
7 ^  L. \) v% z# h7 OEnd Function9 ?2 c& L8 [% B
* {" X2 d/ h3 I( o6 G" L7 P$ o
Public Function Encode(ByVal pStrMessage)
1 v& r& s9 r/ J; N8 I, C! KDim lLngIndex
2 N& w( i$ F! U, z; [3 g& c/ vDim lLngMaxIndex
! d& r  F$ F9 J3 p3 oDim lBytAscii
% o. ~( z8 K& p4 S$ E( u5 r. H- [Dim lLngEncrypted
; [0 k& X7 o  U; g' tlLngMaxIndex = Len(pStrMessage) , o4 Y3 A$ A& d+ \
If lLngMaxIndex = 0 Then Exit Function   `$ ^4 m% d' p8 R; e
For lLngIndex = 1 To lLngMaxIndex
3 U/ o# z5 `& K4 [6 o  plBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) : r: r2 J! R$ U# k% \. Y
lLngEncrypted = Crypt(lBytAscii, PublicKey) ! o  A% z2 T% G$ _6 |8 Y
Encode = Encode & NumberToHex(lLngEncrypted, 4) . s9 s: {2 [3 u: {3 D1 G
Next 1 L- l: |+ g6 p1 `4 h1 L+ Q
End Function # h/ \# y3 v9 @2 f7 M/ A6 p+ d
Public Function Decode(ByVal pStrMessage)
# K* u" O+ l! TDim lBytAscii
( f1 |0 \2 N& l2 jDim lLngIndex   K  j. o6 [, Z8 g, R6 w% {9 ~' ]
Dim lLngMaxIndex 9 d# L& Q. H1 H. Y3 ]
Dim lLngEncryptedData 1 Z; S. `/ T' ~# R) s' v% T! c
Decode = ""
6 n9 s+ J" Z2 q: I8 A9 clLngMaxIndex = Len(pStrMessage) ) \! b% n. o: y! p. ?0 G/ s
For lLngIndex = 1 To lLngMaxIndex Step 4
* \9 ~' M; O! K* W" elLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
* i- K* q) D" R" f7 K, y  H$ M0 plBytAscii = Crypt(lLngEncryptedData, PrivateKey) , [6 D% z/ F* m, h' {
Decode = Decode & Chr(lBytAscii) : b$ R2 N, Z8 l9 e' B
Next % u( k. l; I$ L
End Function
6 E; E& X0 k8 Y2 ~% O' X8 W- sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
) S: n! l" r' U$ ANumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
* O; K' l# t- }2 ~5 b" zEnd Function ) @% _! J' }+ I& M# ]7 W) u
Private Function HexToNumber(ByRef pStrHex)
/ M7 L! q/ v# oHexToNumber = CLng("&h" & pStrHex)
8 k0 v; R+ h& T2 L: P: CEnd Function
+ U6 s* v/ V5 B8 ~) K! FEnd Class 1 b0 L! H3 D6 t: C5 P* ~: J: z
function Encryptstr(Message)
# y/ N- @* |/ w/ C* k3 ~) S# _Dim LngKeyE
1 i# {. P% T) O/ }& s+ MDim LngKeyD
! n& ~# x; a* ]! w& ~. ~1 C$ t* nDim LngKeyN 4 W3 g' C  L6 ?
Dim StrMessage ) {) q* f" j$ G7 U# h/ p; h1 u+ h3 }
Dim ObjRSA 6 m. w( |7 j; C7 k/ S) w5 d+ o
LngKeyE = "32823" 9 |( m/ y* m2 u+ z( K* g
LngKeyD = "20643"
, c& k) V) P( c. o/ WLngKeyN = "29893"
# }) W5 U# f- p) |8 c- Y2 bStrMessage = Message
, R4 H: H% w# h2 v/ FSet ObjRSA = New clsRSA   ?0 X, C+ [. A: o: D% N
ObjRSA.PublicKey = LngKeyE
6 h2 \# A8 I7 k, `5 dObjRSA.Modulus = LngKeyN , S5 X' ^9 t, B+ j+ p. b5 D( n% V
Encryptstr = ObjRSA.Encode(StrMessage)
8 ^6 P+ `: l( K( }2 [% f$ p) tSet ObjRSA = Nothing
# S$ T% }; O% r/ w4 yend function- f! v7 i" X, }$ r+ _4 r3 k" |; o
Function Decryptstr(Message) 2 r) }$ I. h0 e+ s0 f. I
Dim LngKeyE
) m! z: P: E  w2 K0 c# rDim LngKeyD $ I; R6 S5 `. j8 [8 r
Dim LngKeyN
2 D  `9 C! a. p6 m! z5 kDim StrMessage
/ U8 h& X; p3 H& {) wDim ObjRSA
6 q8 y1 Q- O2 J0 p3 `LngKeyE = "32823" 5 ~1 \7 ]- n( C/ Y' f; s
LngKeyD = "20643" : v" G# Y0 [* G. C7 A: ]: p/ @
LngKeyN = "29893" ' @$ F% k2 C& n( I* h
StrMessage = Message 6 O. g7 ^: G$ H$ r' ]
Set ObjRSA = New clsRSA + R. s0 Z. h# j1 y- d4 ?
ObjRSA.PrivateKey =LngKeyD
9 f0 X( [% {  [: {, U' ZObjRSA.Modulus=LngKeyN , x) I5 e4 V/ \5 Z  F: V( ^: \
decryptstr=ObjRSA.Decode(StrMessage) 6 X" X- _& r/ R$ [! s" k
Set ObjRSA = Nothing 8 u8 S$ [- F2 a; `
end function * ^5 _" `7 V3 k; {) T# R$ ?3 z! L7 p
%>
9 O9 _, d7 T, Q! X) [" U, u===============================================: m- c/ w4 ]$ Y7 S  ^/ }

2 ^. i1 h& s2 ]还有一个用于测试这段代码的test.asp
+ \1 Q6 V5 \  R, [, v2 w! x有兴趣的自己搭建个IIS测试下' }8 Y( l: ~& |
<!--#INCLUDE FILE="RSA.asp"-->
$ N6 D! _$ o. I! x. X2 K$ Y<%; m, B" \( K& G7 e* P, P+ n
function Encryptstr(Message)
# G9 r! z/ k/ z/ A# _; PDim LngKeyE & J0 X4 k# O- s/ e
Dim LngKeyD 9 Y, [' A9 Z9 R: X/ @- b0 w
Dim LngKeyN % }. E/ V  S1 y3 a7 s+ f
Dim StrMessage
( W( w7 N- Q- u, N% xDim ObjRSA
6 Q5 H$ U2 b" Q. H! VLngKeyE = "32823"
5 p3 ]! i' e9 l5 V* ILngKeyD = "20643"
4 T; q2 t# T" f4 f5 NLngKeyN = "29893"
- {0 `1 Y8 |. FStrMessage = Message
+ h# z0 Y! H0 H: O, W) I. r/ b& bSet ObjRSA = New clsRSA   E( t5 x  d. |: h/ \
ObjRSA.PublicKey = LngKeyE
4 _" p1 X( N5 ^+ {/ U- JObjRSA.Modulus = LngKeyN
: D* S: S& [4 R" iEncryptstr = ObjRSA.Encode(StrMessage)
: X1 v5 o; ^7 A% ^8 c; RSet ObjRSA = Nothing
( z- G, P' K7 d  }3 Xend function
' n% ]4 e! L- o) h) k8 W" hfunction decryptstr(Message)
8 t  E0 N% K5 t6 sDim LngKeyE
0 L' A: p) l( V7 w, b5 K  M4 u9 vDim LngKeyD . I5 i# `$ a; c
Dim LngKeyN - U, v! F; W0 o: h3 J" C. W
Dim StrMessage . Z& x. ]2 i# n+ M. e$ |3 Z) R
Dim ObjRSA % }% i3 K& k) S1 T8 c  [
LngKeyE = "32823" 8 R! h; I& h. F, T% [1 M
LngKeyD = "20643" ; a$ t/ F% h6 `( p& W$ x
LngKeyN = "29893"
1 E3 b  c% _' uStrMessage = Message : j( v) v0 S5 l; o- G
Set ObjRSA = New clsRSA
$ i- B; s( r" |7 R) {ObjRSA.PrivateKey =LngKeyD & G# n: S7 b: ~( e) g. {4 V
ObjRSA.Modulus=LngKeyN   v, t- k% V6 V- |9 Z
decryptstr=ObjRSA.Decode(StrMessage)
, n. @' N& i( N! `) @+ ^Set ObjRSA = Nothing
. |5 M4 y- z+ U6 u- u6 ]8 P" gend function 2 m7 Q, m. F  Q/ K9 O: l: L0 t( K. g
dim last,first
& [/ T  j% P0 Rfirst="!@#$%^&*()" + A3 h* D( k* r
Response.Write "加密前为:"&first 9 g7 T# P7 [7 b& [
last=Encryptstr(first) # r/ Y1 i1 g9 \$ M4 h7 L) V
Response.Write "加密后为"&last ! w; E2 I9 A2 n3 y7 H: {& Z, ]
Response.Write "解密后为" &decryptstr(last) % G$ U( V9 H3 k; A( [4 J8 T0 a2 E
%> ==============================================- o9 b$ B! z. v/ l! h2 L. D1 m
剩下的就是字符的对照表了
* Z. F. a8 q4 U5 T===================字符集================" z6 F2 r! f4 I  P0 ?4 ~2 s
1_____6EBB1 ]# n# @! Z4 d: s% q; l
2_____5C1F
* g6 n5 F9 _0 R8 r0 i# f3_____4D75
" u7 ~8 X$ c2 I9 M9 K4_____26CC1 [- {* z1 k+ v! \( H# E
5_____4F88
& c, H9 o$ I& q' V6_____3F4E
1 e# W: F' \; W7_____0A9D
! z/ U1 M' p2 m0 h; B8_____1A1C5 U+ m+ b5 n: L7 c3 w, n! R
9_____6D200 ?% @0 n- w6 A- Q$ Y7 `2 e
0_____1089- e" J' e& b3 `" s& v* I+ H
a_____0F3E  U4 W6 t2 S5 n  g6 V1 Y
b_____31599 ^4 N4 \1 b1 ^0 B/ M! r
c_____3517& B# v; \) f  Z, i
d_____419C5 Z/ g/ l  \4 g- |
e_____615C+ e" f8 E, a4 Q4 \  {/ o
f_____556F% ]( K; o$ K( d8 {2 C' p! c
g_____2B7F
: K# v6 {3 e5 i( Z+ @h_____0F9C
$ x0 z  O1 f3 A" T0 Q' m1 Ni_____00FA
; K6 s% v4 q( Uj_____5A50$ e2 ?  n2 L7 b  i; W
k_____2850% D. P8 s/ I- P& `
l_____3E7B
, G. N0 D. n) Em_____71C5" \2 r! b2 O1 v+ e6 X. B; m
n_____1FC8
; ?$ M5 ^+ k# S: t/ I. |! xo_____74C1; r7 M; y4 W( Z
p_____5FB8
0 f0 @5 E; K% U; d- Eq_____6085
7 {) p0 m! a# _/ V0 Tr_____3AC4
% l$ _( ~0 {9 W% L, G2 g$ Z7 I4 \s_____2F50
3 W) g/ J! g* A# Ot_____36F8
( E/ n2 z1 X# H- I% H$ a/ Qu_____70101 |% O# b7 Y6 i& F
v_____0B42' \# p( `. g# z- s5 i
w_____1C7A0 V4 j4 ~! g- F/ M0 m6 W- i1 _
x_____16F84 P/ ~0 A2 E  X3 {! b( T
y_____2EE7) e/ \* g) @) q4 I
z_____5CF35 ~; a) L( p1 O* i0 g; A
!_____6233
, X4 G$ J! D7 u6 f. }2 v@_____3A45# G1 q' q" ]1 R, A  @- x. ?# I7 @: d
#_____22915 L$ S6 n0 U0 b+ R* u
$_____5D5C
. l$ R5 u+ Z' K3 \%_____09B9: L1 H' f7 T# S1 G5 |
^_____43EA* F2 Z, v9 Y- X0 X6 b
&_____62B9
; L8 ~8 a5 K6 P9 B% [/ r0 `*_____6301
7 V, b2 A; b% p: S(_____4659
$ Z7 `: ?) a. f" R9 T) ^8 d+ g) ^)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表