返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
3 E4 M/ B) e& S4 a' O5 H0 P; j) b2 J原始出处:http://www.3ast.com.cm, I# O: j7 j4 @0 q( ?
( Y) Z% a8 E- n  M8 H- T
看不懂的直接绕过* z- I9 H% a" y' C
加密前为:hwy123456
4 j5 L9 E' U% h+ L2 J; x2 H. H加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& ?% v( `3 ?# i# ~' e9 m3 t$ f: f

% t5 K- W, K# W) b& y9 Q2 F============================================
" R8 I& D% F- u1 E% {6 z! q上面是当时自己校内的心情。现在已经解破出来了,分享给大家
( O1 ^9 N0 g2 M, G" |4 m2 }4 G也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法* W( [+ h! y9 b0 ^
以下是RSA算法文件4 w/ i$ P3 G# U! e

: D8 U" u: Z  `; z文件名RSA.ASP; e, Q# f- B+ k
===============================================
/ U# ^5 ^+ j5 @<%
- o- h+ H' H0 I7 {8 _& a9 yClass clsRSA 5 Y! {' g7 h8 s7 g( j2 [
Public PrivateKey
0 Z, o5 I5 D5 O9 q: n4 y9 KPublic PublicKey # _5 k! V: n; Y$ z- A$ [, n
Public Modulus
+ f( P8 L* D: S5 u+ I0 fPublic Function Crypt(pLngMessage, pLngKey)
3 N1 c  O" o! v4 I) g4 C. t; iOn Error Resume Next
1 @. `/ |- s, C2 n( T7 i/ CDim lLngMod
5 p/ h) }9 {; F% i* d) H( x- @Dim lLngResult : q: [; ]" _7 j8 Z, x/ ^  s" J* ?
Dim lLngIndex 7 D' E. h. T0 s: t. L; f: x
If pLngKey Mod 2 = 0 Then
( ~; k9 E8 h0 X9 ^% l9 Y( W* f# ElLngResult = 1 5 z/ i( f) u- y. `- y$ s- U* S
For lLngIndex = 1 To pLngKey / 2 8 ~' B; D0 |; @8 C
lLngMod = (pLngMessage ^ 2) Mod Modulus $ b* Y& B. r! ^9 X3 M: o4 V4 ~
' Mod may error on key generation % a1 q* q! u, y6 S% J" i8 a
lLngResult = (lLngMod * lLngResult) Mod Modulus
4 A2 ~4 v4 m+ y$ b* s; ?7 t  YIf Err Then Exit Function 0 ^) r3 d* z# h' V7 K$ t
Next
7 g6 g: h) P" e* x" FElse
. |" l7 t+ J. a9 M9 {lLngResult = pLngMessage
$ u5 z6 s( d) P7 R( OFor lLngIndex = 1 To pLngKey / 2
8 ]7 _5 T$ |# t7 U# {& ~& P5 jlLngMod = (pLngMessage ^ 2) Mod Modulus " V. [8 w8 U% q: l4 z6 |
On Error Resume Next * B; Z. X& U; |; S3 H. N) K
' Mod may error on key generation 8 R( v2 l% f; `1 b) x* E; g
lLngResult = (lLngMod * lLngResult) Mod Modulus " S, y7 e2 y) F9 s
If Err Then Exit Function
  |; Y7 {/ d2 r+ S+ H* T; }Next ! B/ L" @: n8 _
End If
# I8 @7 u( ^" B! Z7 r9 ZCrypt = lLngResult
& Z# p5 U5 k" h( qEnd Function
' r/ B- f6 B/ }0 _$ s$ I' v, {/ ~; X# s; O- q
Public Function Encode(ByVal pStrMessage) 4 O1 m- A& s$ e- G
Dim lLngIndex " f1 @/ |5 z4 l7 V8 B! A) a3 h6 v
Dim lLngMaxIndex
9 V" U) A  K% {8 q9 C% K) ?- h$ j+ hDim lBytAscii 2 x$ O% _) R4 b# \( j
Dim lLngEncrypted ' ^- v  t; h2 B* d& r
lLngMaxIndex = Len(pStrMessage) " I" ]4 V9 P9 W- b0 ?; K
If lLngMaxIndex = 0 Then Exit Function . {( w, r" F6 C6 P. k- N
For lLngIndex = 1 To lLngMaxIndex
$ }+ y! q* q0 \lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
/ o! K$ K3 p8 z3 S) y5 @lLngEncrypted = Crypt(lBytAscii, PublicKey) 8 t( X& y, H& }- B% Q0 ?
Encode = Encode & NumberToHex(lLngEncrypted, 4)
, i( B  h( }4 v+ B- L* p! y6 b- C. U. dNext ) S/ v8 s6 V7 E, K
End Function 0 T6 V" x2 K/ s
Public Function Decode(ByVal pStrMessage) - ^( z5 ]; L/ a! t
Dim lBytAscii ) M& e  @5 s6 `% s' u
Dim lLngIndex * u; Z; g: z& y4 C
Dim lLngMaxIndex ! h3 A0 o  D" b- c; ?2 u, y; l
Dim lLngEncryptedData
- `& m+ c. T" X/ B/ _Decode = "" ' P) G2 P1 G  R! P: T0 h
lLngMaxIndex = Len(pStrMessage)
' |4 c: ^: k; ]- v9 ?8 T% O' J: ZFor lLngIndex = 1 To lLngMaxIndex Step 4 8 W# i' N0 p9 ^$ Q
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 0 O6 w! X; C: o% A* M& f
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
% T% U  [8 D  K# Z6 n/ {Decode = Decode & Chr(lBytAscii)
- P+ F& Y) A( Z  hNext * f; T7 u, p% h: D7 |
End Function
; h, c, z! x# _- a8 s- y$ x0 l8 mPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) / s2 n+ F2 G! }; a
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
& s+ M! e( v; u, K) OEnd Function & K0 e+ J1 R  t7 n
Private Function HexToNumber(ByRef pStrHex) 4 H; D" ~. z) i1 @0 X; K$ U/ I7 Y
HexToNumber = CLng("&h" & pStrHex)
; Z) d* M" W1 ?End Function * _$ G1 }& K7 G" j, E
End Class
* k, f. ]' N  d+ E, R6 K6 ]2 Bfunction Encryptstr(Message) * |7 P, Y. w6 Z9 Z  t* C7 ^
Dim LngKeyE
( }+ ~2 h# J& J! \/ QDim LngKeyD
! x' U5 \5 D0 T# M- w" rDim LngKeyN
: i4 r# [5 i# B8 [. C! n; l0 j7 uDim StrMessage
9 @! y+ J0 F6 W: |, Z% g* ]Dim ObjRSA 6 y; [6 ]& C4 q, T6 I1 N4 M
LngKeyE = "32823"
1 {* ]. c3 u# o9 VLngKeyD = "20643"
4 I( R+ b$ a. _% Y4 ALngKeyN = "29893" - A, R( J5 k2 E
StrMessage = Message
# J. j: j$ p$ w+ `Set ObjRSA = New clsRSA 6 x" R& f; l& W
ObjRSA.PublicKey = LngKeyE : f$ _$ M/ H$ @$ k+ p$ y
ObjRSA.Modulus = LngKeyN
4 H( x4 Z  I; d* qEncryptstr = ObjRSA.Encode(StrMessage)
6 g+ [% W* e: O: m" r7 x( c" L0 gSet ObjRSA = Nothing 6 P' E4 J0 Z, t) W( Y, c
end function
2 ?9 M, Q- W( H, i2 kFunction Decryptstr(Message)
4 j& l5 F: s9 T5 [6 x8 x; I1 QDim LngKeyE , B0 B( o5 C3 _: b% u$ {
Dim LngKeyD / X2 {' c/ w8 v5 Y$ i
Dim LngKeyN
, c6 e! }1 |; ]. f- ^Dim StrMessage
& D! H2 d) `9 ~% S+ Q0 ]Dim ObjRSA
. t" s: w0 L/ p9 r1 }& O+ lLngKeyE = "32823"
+ ?% A( m; e9 p7 h/ e; K, vLngKeyD = "20643" 9 h! h, s7 b8 n+ _
LngKeyN = "29893"
3 g6 k# d( ?- X  O& B" N7 k) y. UStrMessage = Message & o0 B, r3 f. s3 A% X2 M
Set ObjRSA = New clsRSA
5 v$ N; w8 r. z0 ^4 LObjRSA.PrivateKey =LngKeyD 7 a2 ~) j0 g) n. L- T! A
ObjRSA.Modulus=LngKeyN
3 u0 Y3 ^. z. e. R% Y' P+ r4 Kdecryptstr=ObjRSA.Decode(StrMessage)   j" I! Q; i' n1 l. B' N0 {
Set ObjRSA = Nothing ) ]) v7 z( D- O# c' a# M
end function   z6 r9 f1 `9 D& C
%>
& r* Q2 E  g& b' a===============================================
' h+ ~) ^- ^' Y% G5 q. n' ?  o( p- h8 U8 Z  F
还有一个用于测试这段代码的test.asp  O) x4 c- z- v4 F
有兴趣的自己搭建个IIS测试下0 X" t5 R* |/ A
<!--#INCLUDE FILE="RSA.asp"-->
% ]& ~" b# B+ ?- l<%: P6 o0 M% R4 ~$ G+ Y
function Encryptstr(Message) 3 T9 K; D/ Z7 w3 r8 L* Q+ D' x$ y
Dim LngKeyE
! g2 G1 |8 M/ ?4 Y( D3 UDim LngKeyD / X- ^0 `; h* Z; O  A' t
Dim LngKeyN 3 v' E" Y" l8 k9 y' c" b! A$ Z
Dim StrMessage ! O0 L& `0 a; T2 E, n4 _
Dim ObjRSA
2 K1 b2 M8 k+ D- f  A: \, ?. wLngKeyE = "32823" ) u: y5 ?$ V7 u( A- j
LngKeyD = "20643" $ I1 Z6 C: E# z5 @+ d/ @0 y1 k
LngKeyN = "29893"
2 P' t- R! \  c( r% ZStrMessage = Message
# L7 H' _8 U3 N' BSet ObjRSA = New clsRSA
5 I$ Y' L: P, MObjRSA.PublicKey = LngKeyE
) g, I6 x8 w3 \( [% G( o2 i1 FObjRSA.Modulus = LngKeyN 8 l( f! X6 K& r2 _
Encryptstr = ObjRSA.Encode(StrMessage)
2 a* m  w3 I  m5 tSet ObjRSA = Nothing
0 J2 p9 w* g& k0 Eend function
3 Z& _5 f  a: d* o* W6 Hfunction decryptstr(Message)
5 j+ w7 o. y3 h* A% h9 n. i2 o0 SDim LngKeyE 9 Q8 {  M5 J+ j/ u
Dim LngKeyD & @9 Z8 u1 A4 ^6 U; k6 t8 H
Dim LngKeyN
9 A2 L9 N% s1 q3 q- h; b! b& p! \1 HDim StrMessage
$ Y' q/ _) e" [6 b, |, MDim ObjRSA ! G, q8 l/ y. r# o" D0 q
LngKeyE = "32823"
' h' Z, m5 R  |+ GLngKeyD = "20643"
9 n2 K7 J; d3 Y  jLngKeyN = "29893"
- [' u1 ]. _! B  u9 bStrMessage = Message
' z  o$ ?9 k/ m) J0 {8 nSet ObjRSA = New clsRSA ( `5 N  ^5 s/ @' _) A' k
ObjRSA.PrivateKey =LngKeyD 4 J9 ], H0 l' g- ?; x
ObjRSA.Modulus=LngKeyN
: y2 X$ U: p8 v6 t. l! C2 hdecryptstr=ObjRSA.Decode(StrMessage)
" {# V1 K) R' l9 \Set ObjRSA = Nothing 5 E; Y* b! P  f( q( |2 D* {
end function ! W& U% O! M  C) |4 _! m2 T: j
dim last,first . c5 [/ Y" h* n5 k! S5 h3 `
first="!@#$%^&*()" 0 {# {! |( l# N8 h  ^7 Q( s) l
Response.Write "加密前为:"&first
4 T; P/ h" H/ U! ~  e2 w) Rlast=Encryptstr(first) ; h" \" W. V7 b/ o  E1 H
Response.Write "加密后为"&last ) q6 K# Y  V- w3 p! P% R
Response.Write "解密后为" &decryptstr(last)
$ \. Z3 N$ M4 }0 e' _8 K%> ==============================================. y& Y. f# A# k: m# h
剩下的就是字符的对照表了
+ R& `4 X1 \! t* D/ f8 r===================字符集================- }: S% ^& |9 C7 Y7 J. V
1_____6EBB
. X2 p9 W) S% J. ?* u  Z% @2_____5C1F
. P% ?, I# p; y( r3_____4D757 Q$ Q( D2 P0 @9 a: w
4_____26CC
4 U* |4 Y+ R9 b$ ?) D9 i5_____4F88
# Q$ R( i) }/ M9 m6_____3F4E
2 s  _0 j/ g9 A9 y4 T7_____0A9D
* f( m5 E9 p# \- S! n5 q  Q* ]8_____1A1C
+ P4 l$ u( v6 O5 N$ \9_____6D201 b/ x# R( [- A. @1 x
0_____1089
5 m- z+ T6 z8 E% t' @# ~, |( Q7 [2 Ma_____0F3E3 P# i% `! ^6 j, |$ K$ p
b_____3159- L$ D1 T2 E8 ]
c_____35171 U. f5 [' ^4 {, U" }* C% a
d_____419C
% |: P9 T2 x' |1 F  d" [e_____615C7 t5 V: H3 c6 }% P4 e) E' B& W# ]+ j
f_____556F0 f" w& Y  j) n: b
g_____2B7F& E1 Y% p% m9 I$ i" a5 G2 F( ^- p
h_____0F9C3 l/ X& u$ k$ r$ f' h1 `6 ~3 B, h
i_____00FA3 y4 v; m' R$ `; X
j_____5A50
1 @! ?2 O0 L" q8 j& D: d& q; @k_____2850  d+ e1 N# t  d$ K9 M* H
l_____3E7B  }7 `) o9 A  Y0 ]. r0 |
m_____71C5
! s( p) ^+ b) S+ V7 B0 y- {( r# In_____1FC8
4 D) p" e+ P# A, S, j+ T: J. mo_____74C1
! z" z- s/ u, |8 u7 n+ ]( \4 E1 kp_____5FB8
( w; L9 i/ ~8 J  q! m$ H' Mq_____6085
5 j5 Q0 C  R8 G, n7 Jr_____3AC4
; q$ b. _# N9 f- Js_____2F50- B) n+ e% q: ~7 l
t_____36F8
/ O0 a+ L; S4 L5 U# |, Ju_____7010' ~+ Z0 ]0 Z% X
v_____0B42
  k, n, H0 F" d+ G* n2 ^w_____1C7A
( w6 z. m2 d% C2 ]x_____16F8. @3 {7 W* y: w, N& r8 \
y_____2EE7, N# D, H  e) M5 e# A2 ^. e
z_____5CF3& X, R/ J2 \/ k
!_____6233' E* }* N! ~2 N( j, R
@_____3A45
6 s! e4 ^1 k+ r' b8 C, b+ i& {#_____2291. u& \9 ~) i- n1 ~
$_____5D5C' w: ^' |8 v7 N5 u, \7 W+ u% b+ F
%_____09B9
- |' x3 t4 x5 @1 y/ {. l. V^_____43EA
# y0 z& O2 J! T( K: s; s&_____62B9. L6 q  `/ l5 ?" i2 M8 ?
*_____6301
; _3 s9 T0 T7 D% \+ Y, d% D(_____4659
& X0 c$ I; m! J- J$ e+ W# A)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表