返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm2 j: @+ Z+ j' t# q! o  k1 f& C
原始出处:http://www.3ast.com.cm! C* G7 }! N6 t8 u

- `/ t9 Y6 Q& t" E' {3 ]: ?2 {看不懂的直接绕过
; z8 S' @6 A7 ?2 {加密前为:hwy1234565 d% L& Q; l# o( E. i6 y- k6 @
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E5 \/ ~; A# {9 T0 V2 |# n
2 q) G3 D4 B/ E4 \' A  [
============================================
, ^  N$ j. N# B) Y9 {/ w' p上面是当时自己校内的心情。现在已经解破出来了,分享给大家7 [* K. p+ n& f1 G% P$ K3 v
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
5 c6 a2 L  D3 A; c+ \! s5 U& U以下是RSA算法文件  L$ T0 W9 _" g4 ~- i: }* \- z
( H' u) M9 s! S
文件名RSA.ASP8 ]* [1 v- ~( Q6 M% X+ }
===============================================7 j+ f" {9 C8 z; j- s
<%
3 E! ~! E( I% j" x- Z- [% j0 H! uClass clsRSA
% y. {8 W7 Y5 `# zPublic PrivateKey 1 i5 h7 \" N0 k8 w& o
Public PublicKey 1 E4 ]) U+ z- f" F' M+ J' l
Public Modulus
) P3 j1 Z! j: FPublic Function Crypt(pLngMessage, pLngKey)
9 t% D; ^& S' ^1 L& oOn Error Resume Next
  I5 }$ {- G5 l- IDim lLngMod
' M  m( V1 z0 J9 V: Q+ nDim lLngResult
' h2 R! S& K7 oDim lLngIndex
- w; ^; G8 l- e0 DIf pLngKey Mod 2 = 0 Then + l( p- j" h' v) S2 t( W+ t7 S
lLngResult = 1 , R1 L1 r# L) c. H% Q
For lLngIndex = 1 To pLngKey / 2 # Z5 F- Z0 V$ b" A9 k
lLngMod = (pLngMessage ^ 2) Mod Modulus
" H8 Q9 Y' |- D' Mod may error on key generation $ C4 X0 N6 i* e7 D1 c
lLngResult = (lLngMod * lLngResult) Mod Modulus 8 n' M; a7 ^# m0 T# s! ^  K
If Err Then Exit Function 6 C) M7 [; Z6 ^1 Y
Next   c3 O2 e. a. @2 |
Else 5 X5 T  M( C+ R8 K/ O
lLngResult = pLngMessage
+ y2 |: V1 a7 rFor lLngIndex = 1 To pLngKey / 2 . o. \0 v$ O" L' q8 t
lLngMod = (pLngMessage ^ 2) Mod Modulus 3 Z) b8 ]* U+ |/ f2 k
On Error Resume Next   n. d$ B: V7 {8 y8 t& N; h( Z/ S
' Mod may error on key generation
* s' g$ {0 s. X0 |, E0 L4 k/ ]lLngResult = (lLngMod * lLngResult) Mod Modulus ; P) j% ]) ]9 h% }/ S: z! W0 c" r  V
If Err Then Exit Function % M# Q5 @9 h+ m* o2 G
Next 4 Z  H4 {: j7 B- [. u
End If , U- w9 q+ F% u" n3 V6 y
Crypt = lLngResult
5 U- r; q2 V# ~" m" h) |End Function+ _+ ]+ j8 u% _+ H+ n- V! G% T

, S% T+ h+ N  a) l! B; m4 uPublic Function Encode(ByVal pStrMessage) * n: N% r: Y) T
Dim lLngIndex & ]7 f4 q$ G6 \* B' X5 ^
Dim lLngMaxIndex 4 I' b  S+ t$ o5 d9 L4 k
Dim lBytAscii 0 u$ d8 w* d! t7 |
Dim lLngEncrypted / z4 d( J6 R# Y, N3 A0 h; ]! I
lLngMaxIndex = Len(pStrMessage)
" ^- g7 E1 \$ g  _$ u' W# f& Z+ \If lLngMaxIndex = 0 Then Exit Function 3 D( S; h, {$ a* {, |
For lLngIndex = 1 To lLngMaxIndex
6 o8 a3 \- R; t7 ~+ l0 TlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
& @6 R/ F6 X+ _" blLngEncrypted = Crypt(lBytAscii, PublicKey) * U& L# Q- ?" o" n" u: U$ E- b
Encode = Encode & NumberToHex(lLngEncrypted, 4) : h; E3 N, U6 Y( Q8 {
Next
* Q9 X& L. x/ N( @) \: e5 {End Function 4 O# e& A9 O! I" b8 w
Public Function Decode(ByVal pStrMessage)
0 c6 |8 s' {8 Q% t/ r; oDim lBytAscii
/ k4 I7 ?9 p+ M% hDim lLngIndex 8 j; w3 n3 C- i2 D7 c$ ?* D- m
Dim lLngMaxIndex 8 V/ {) U9 u. K  u4 V: B; |
Dim lLngEncryptedData 4 ]3 O% u! x" d
Decode = "" + ?* d. U2 r6 D2 N" S, D* f8 L6 u* \
lLngMaxIndex = Len(pStrMessage) 7 d# f* f4 P3 G
For lLngIndex = 1 To lLngMaxIndex Step 4 # l! _3 v$ c9 ?1 W+ g, q4 H% a
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) * i, X& X+ L0 ]5 d* ~) [
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. W3 _& B% q2 uDecode = Decode & Chr(lBytAscii)
, M8 J( {8 R, i5 gNext
) `2 K7 R; d0 f& T, n1 F! z7 mEnd Function
9 e6 W" X/ n* j4 yPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) % I4 G6 C. e9 G* M9 t- T
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) / k. @* F4 s( F% p4 Z: a
End Function 2 F( E# b% f' V2 w1 Q
Private Function HexToNumber(ByRef pStrHex) % I" W3 N* d2 v3 u' h
HexToNumber = CLng("&h" & pStrHex) % a3 I$ z1 i# N# j
End Function 5 {! P8 h) ?6 \5 j
End Class
# W! B; ~- k* l6 `function Encryptstr(Message)
5 @+ N; b+ d& \) PDim LngKeyE ) `% X7 w: Z  k7 V7 y" X( n4 a
Dim LngKeyD ! x& j8 \* X# N* a; h
Dim LngKeyN
: n! {; z7 c8 mDim StrMessage
' z/ L" G. P8 b  sDim ObjRSA
; J% N& y7 }( e  L2 eLngKeyE = "32823"
/ B6 h+ Y. `% |6 P! _# eLngKeyD = "20643" 0 Z: m4 ^7 I" R/ I
LngKeyN = "29893"
/ K1 s7 l( L5 ]1 l2 t+ c& lStrMessage = Message ! E- s! N4 a2 D- I% R& g
Set ObjRSA = New clsRSA
5 b  r0 V( O# C4 A0 h" @. CObjRSA.PublicKey = LngKeyE % ]5 V- i' C! [+ Q! ]
ObjRSA.Modulus = LngKeyN
( z2 }6 W4 X; k+ pEncryptstr = ObjRSA.Encode(StrMessage) - g8 G4 c6 U* ]9 U$ o) P/ L
Set ObjRSA = Nothing
6 |9 E/ P. V9 v4 H: ?( Y& `) l% X2 aend function8 W9 A" {9 G0 N. @% S1 `6 a, [
Function Decryptstr(Message)
+ [. t5 B# I' B5 H6 k9 XDim LngKeyE
7 r- y" P  @$ s# {% IDim LngKeyD
  e( U9 \( ~) fDim LngKeyN . J5 ~( ]. z1 i/ o
Dim StrMessage
2 K2 Q; M, L, f/ k1 V- qDim ObjRSA
7 g8 M& v# w8 N# LLngKeyE = "32823" ) C  g& N* J6 ]' e
LngKeyD = "20643"
/ W. e* B# k+ S; s% k, _* hLngKeyN = "29893"
1 |1 S6 l0 q0 S4 W2 cStrMessage = Message
# [" f. [7 T$ i# B0 ?Set ObjRSA = New clsRSA
9 v1 s; M9 Q6 F6 EObjRSA.PrivateKey =LngKeyD
9 Y$ d. ~( X9 i# WObjRSA.Modulus=LngKeyN 3 d* ]/ q3 B9 U, i# M
decryptstr=ObjRSA.Decode(StrMessage)
# @( f0 X. b' I! z- LSet ObjRSA = Nothing ) P' `6 w( x2 f/ B' _; g
end function % o+ W- b. m; a" V+ y
%>
6 d+ v& e' V' ]# @+ w2 V7 G===============================================' ?3 r, r1 ]6 M3 h0 K
: k/ X0 C" G9 n
还有一个用于测试这段代码的test.asp: ]0 c# {* _. C, w# D* J
有兴趣的自己搭建个IIS测试下
2 N' ?/ o7 [  m# R<!--#INCLUDE FILE="RSA.asp"--> 1 G; |7 P) N& o3 y
<%/ N4 G' r# x$ R0 w) J. o# o* a
function Encryptstr(Message)
; r( O' n9 l; F. m! Y6 DDim LngKeyE
+ ?8 m8 C$ _+ {6 k* @0 {8 q7 `" CDim LngKeyD # b: H# k1 {% }# y5 n) t' x0 }
Dim LngKeyN
4 n  O  P2 ^: Y/ b& i$ z& B2 J( V2 hDim StrMessage + Z2 n# T9 E& o( R7 z
Dim ObjRSA
5 w  K3 `3 [9 Q4 H; uLngKeyE = "32823" + a! |! q% C' R4 L) m9 f
LngKeyD = "20643"
; e7 Y, E  L$ [4 F3 c! ULngKeyN = "29893"
/ J' s- [+ a7 M. O# P' C3 aStrMessage = Message
" _) V5 A! _- }4 \, d- XSet ObjRSA = New clsRSA 7 d" \$ t" _8 H) x& d* Z
ObjRSA.PublicKey = LngKeyE ! `# M6 [8 [6 O
ObjRSA.Modulus = LngKeyN 5 O" i. u" E4 X$ W
Encryptstr = ObjRSA.Encode(StrMessage) 8 j: D% k! |; _) p$ |4 N2 j
Set ObjRSA = Nothing
- l9 [* Q6 `! r1 x0 mend function
; Z4 [# |5 p. C9 C# A) jfunction decryptstr(Message) 7 x. B; v+ \6 V; u! G- l+ P
Dim LngKeyE
& U' P6 K# D7 Q' m/ o3 XDim LngKeyD 1 A! v( `5 c: p+ @
Dim LngKeyN # V: D) m. J9 K
Dim StrMessage
. h9 P) O) b) ]9 l$ @/ V% b/ mDim ObjRSA / f  [- i7 s1 c+ ]
LngKeyE = "32823" / n2 i) B. v, D& y" o
LngKeyD = "20643" 0 W; l6 n3 e4 h9 s0 Y# ~4 L, a) f; g
LngKeyN = "29893" & X2 R# N) h, t0 @; v9 K5 F: K
StrMessage = Message $ w9 i7 z* f$ K( [- x
Set ObjRSA = New clsRSA
9 g4 E+ U" H+ H" E* K9 BObjRSA.PrivateKey =LngKeyD ; v! K' W& L5 a1 P4 C
ObjRSA.Modulus=LngKeyN   t6 Y3 W  m. X# s/ U
decryptstr=ObjRSA.Decode(StrMessage)
; B, Z' }. q( i7 D2 `5 y  G! Y8 ZSet ObjRSA = Nothing - Q; Q% w6 Q, y4 @2 j
end function + N* |, x* q$ M- ~7 }" d* ^
dim last,first 8 p9 M0 X$ S' z( U  ]; G
first="!@#$%^&*()"   Z. O" `+ j, z; j+ E- c) t
Response.Write "加密前为:"&first 4 o( ]  Q" w/ w
last=Encryptstr(first) ! B0 J. ]* C6 |# g
Response.Write "加密后为"&last % ?; O9 r7 k, t2 W& n) B6 p
Response.Write "解密后为" &decryptstr(last) 9 t8 S% L+ W" _: `' L9 W
%> ==============================================
% z6 T# m; J2 j% w5 B9 }剩下的就是字符的对照表了- A1 m3 a9 K' G6 M4 X
===================字符集================( P' `6 l: r( K
1_____6EBB- j/ u' b* M% r% L
2_____5C1F( }6 i% F1 S2 q+ a
3_____4D75  a2 ?, D6 }! N6 q2 y5 g
4_____26CC
* d  B: q* d) o% G% d5_____4F88
0 [  W0 L9 Y$ R$ ?* p' W6_____3F4E* U, Q# ?3 H' K9 K5 P
7_____0A9D
0 e! f* b# X" x9 N0 N2 f8_____1A1C7 _$ _% }- c1 X) ?! \
9_____6D20
0 _9 i, W$ B+ \  ?0_____1089
3 ^) b* u, I5 {1 P' Ha_____0F3E
. ]3 Z; z7 f: S% Mb_____3159: j- ]5 g: y# {) [/ A: G" h- @; d1 E8 @5 x
c_____3517, a. |8 |; Z. N/ A0 c
d_____419C, W5 n# O& w) I; e" r0 y$ s3 L7 D# k& S
e_____615C
! g9 v6 v* o: {0 nf_____556F9 D$ U. d+ b; @
g_____2B7F# h3 ]: x7 A' ]
h_____0F9C, F, X( Y( W8 p* H4 f! a
i_____00FA8 ~+ E: J" L; _0 x3 a# @& Q' f6 [
j_____5A50' l$ x$ [9 [2 E( i8 R+ ]
k_____2850
2 Z% k" N, v: r1 X0 dl_____3E7B
) ]* \1 {/ r6 B( c1 h9 fm_____71C53 o3 c# d6 V" E. \% v
n_____1FC8* v* C, }5 d8 h0 I  x9 P
o_____74C1$ U1 C5 e4 W2 f( N- `, k
p_____5FB8
9 Y, y7 E) r" w) Y# F4 oq_____6085% l  \! _% x' }0 y1 y) w$ l
r_____3AC48 I& l* o; `/ w
s_____2F502 c' y* W* ?3 \. ~9 |* w. e: [
t_____36F8
; i: e" |# f; S4 |  Cu_____7010
; }* C- O! |/ m6 C/ Q% rv_____0B42
5 q' h9 Z) w2 q0 ^w_____1C7A5 B& n# L; ~. b* Z) Q6 k
x_____16F8# S8 N% M4 Q7 ]3 z7 l# x, F* z* T; U
y_____2EE7
/ u- x( h, H' `! y: Gz_____5CF3
( s$ W; w9 Z  T8 [0 n5 N& N( \!_____6233: K& Y& Y6 z, s& h9 w7 k
@_____3A45
* q* w: u3 Q8 I  u: J- ?% i#_____2291
8 B: c1 G( q( ^$_____5D5C
9 \8 I# i% P5 L, l* y& U& M! i6 U%_____09B96 J: H0 K' b- |) P# R
^_____43EA
1 N0 X6 _# c$ f/ w: }&_____62B94 z' _* [3 w$ s  Z# K) h
*_____6301  b) ?. Z' `+ Q/ g1 w" L# U
(_____4659
+ n5 k( n: H  y# })_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表