返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
1 V5 b/ S9 W0 I# O4 L原始出处:http://www.3ast.com.cm
$ d* o6 v; y9 T4 K* L3 B. f$ \/ \1 Q; k/ n; k* T8 P2 Y
看不懂的直接绕过
) Q) S9 f+ ^) Y# h加密前为:hwy123456
& {+ F+ u1 ~# D1 y8 y+ ~) u+ r加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
% `2 N( q4 O4 m% m$ _1 Z0 Z2 @
' ]& e+ s' l% M  i8 p============================================
2 C/ }7 _* E, w9 h9 |上面是当时自己校内的心情。现在已经解破出来了,分享给大家6 m' }/ o& ]3 `
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
0 W9 G( z9 P* y以下是RSA算法文件
, l* _/ y7 b7 I$ E: a1 W7 j& Q# n  _- `; b4 `0 y$ H
文件名RSA.ASP% M/ E( i* Z) M/ n; z
===============================================
& R. I# I. c/ S6 K<%
2 k, e8 G3 @" I- h  \( YClass clsRSA & V5 k9 `: ]0 }, G
Public PrivateKey
' Z3 b! j: j0 n, X6 BPublic PublicKey : L4 U" W. q6 f$ h7 Q6 U
Public Modulus
' g! k% z1 ]; O  t0 c9 a; R- h1 ^Public Function Crypt(pLngMessage, pLngKey)
9 q9 t; U+ M, uOn Error Resume Next 7 S) q/ }) Z% w0 s  Q- [
Dim lLngMod
: u5 s7 d9 j2 G- EDim lLngResult 1 H: E1 F" ]1 C4 i+ C" M
Dim lLngIndex + {6 }& E$ W$ @
If pLngKey Mod 2 = 0 Then : d; h6 }( R3 z
lLngResult = 1
! Z: v+ Z9 N) n7 |: g% B# mFor lLngIndex = 1 To pLngKey / 2 7 i1 X; W, \8 m# ~- W) [
lLngMod = (pLngMessage ^ 2) Mod Modulus
* s3 k. n$ C( D  w; P$ `+ ]' Mod may error on key generation
% F* a1 d0 o/ @- U/ r$ R" H) f6 llLngResult = (lLngMod * lLngResult) Mod Modulus
' d# l6 J9 U2 V; M2 O' @If Err Then Exit Function
2 J4 D& _7 g; {& x7 Z! |Next
6 h7 v- I+ b  o2 nElse
/ t3 Z6 K. x; M$ LlLngResult = pLngMessage % q; m1 ^0 X$ p7 B  B! I6 P
For lLngIndex = 1 To pLngKey / 2 6 M5 K- M3 L. _
lLngMod = (pLngMessage ^ 2) Mod Modulus 6 a  B: E% _6 t( f2 x, ^: d
On Error Resume Next 1 I6 Q: h. Z* ^$ m( P# D3 e
' Mod may error on key generation - y' l( ~. O+ i* t1 ~3 U/ `7 \# X: B4 j
lLngResult = (lLngMod * lLngResult) Mod Modulus
3 {" B6 V9 p4 T2 c/ C* cIf Err Then Exit Function ' D, c5 ], H' k) W; s6 i: t
Next # w+ d# \: j% t& s
End If . n9 Z  I& R/ K/ h5 G1 v
Crypt = lLngResult / u6 l/ i) a+ p8 H
End Function
5 z. X, H) x- t/ k! L* b- K
+ C  f9 G' W5 J  _0 jPublic Function Encode(ByVal pStrMessage)
, w% e0 B3 P. |. r+ |! ^( BDim lLngIndex 1 E' a8 f- H9 b: P
Dim lLngMaxIndex ' I6 Q& U4 M0 j2 Z
Dim lBytAscii ! a. T" o0 k# Q( M8 e5 [; _
Dim lLngEncrypted ) K8 d7 W" @( e7 V2 l, d
lLngMaxIndex = Len(pStrMessage)
7 i1 c  F& M- G! L& K  F' E2 EIf lLngMaxIndex = 0 Then Exit Function
0 A9 G8 ?6 C4 M6 D5 wFor lLngIndex = 1 To lLngMaxIndex 0 b/ L$ n- Y  Y. E2 d3 `
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
, K' D! B# ~$ x9 O- P7 _lLngEncrypted = Crypt(lBytAscii, PublicKey) ) w- E; c7 r6 t0 K% k# C3 S
Encode = Encode & NumberToHex(lLngEncrypted, 4) 8 P) d4 E& W4 F( I" t+ v5 M" m: ~
Next
0 n" I) [3 i# w+ f6 LEnd Function
' T: i7 s; A. C& ePublic Function Decode(ByVal pStrMessage) 9 X# Z- j5 [4 v  z0 a
Dim lBytAscii 7 d0 [) J  a" V/ Z5 G8 ~! {- W
Dim lLngIndex 5 Y0 D# L- }' d. I
Dim lLngMaxIndex
: B0 H0 b; h& ADim lLngEncryptedData
! `7 }$ X; d6 S, X2 h: @+ NDecode = ""
5 N! N# \% u+ P1 ]lLngMaxIndex = Len(pStrMessage) / C* M) O; ]3 r! v" }: I
For lLngIndex = 1 To lLngMaxIndex Step 4 - O: H9 w7 W: u- a3 M$ F
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ) k. I; N' G) N* F# d! \
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 7 J8 ~6 ^! n: Y- ~
Decode = Decode & Chr(lBytAscii)
( c( r6 ~/ O. H; JNext   X( i: I9 j  S% T! M4 G4 x( j" x
End Function 7 f1 j, W& a" ^( r6 c" m5 E* |
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
3 I  i4 n- `5 C, t" v7 e' F+ N& ?: {NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 5 k9 U7 }7 ]9 Q0 I8 M
End Function ) |1 c$ J) n5 d0 c# Z. K8 H
Private Function HexToNumber(ByRef pStrHex)
+ f: w8 u5 O. o5 qHexToNumber = CLng("&h" & pStrHex) & @  r/ x. V3 X5 ?
End Function
9 Z1 b$ q% T  N( Y% U- TEnd Class
' P( D! s! [8 z6 P/ }function Encryptstr(Message) * h) n7 Z# T6 U* V. n& _
Dim LngKeyE ( A* W3 \2 f  E3 u1 D4 B* X+ {
Dim LngKeyD
! U0 }* _, @. Q6 E% @; PDim LngKeyN + b  a8 R; [% Q9 S8 A
Dim StrMessage
$ p! p1 `5 c' HDim ObjRSA
  e  u$ q& `4 N/ eLngKeyE = "32823" / t+ ]+ f9 a7 r2 J. Y: Y/ v1 _
LngKeyD = "20643" % v: O# l5 p+ [/ \
LngKeyN = "29893" ( X* a: J2 A$ l* m( S
StrMessage = Message
8 \" H- i! ~. ]. w7 n7 mSet ObjRSA = New clsRSA
" {6 b: I' X0 {1 ^$ w2 wObjRSA.PublicKey = LngKeyE
# p3 B) X/ K: R$ gObjRSA.Modulus = LngKeyN
( Y6 N' D5 e6 L- W8 ]! O  GEncryptstr = ObjRSA.Encode(StrMessage)
3 g% {8 e6 j3 n! ISet ObjRSA = Nothing 4 E7 n# o/ ?+ v! B1 Q5 |! g
end function# T$ ?' r; V6 d  o
Function Decryptstr(Message) $ t: c: y7 H* H' l: i7 P' p3 N+ a$ E
Dim LngKeyE
" u1 T6 t: R, p' RDim LngKeyD 4 s" F3 T/ P* d3 I7 L
Dim LngKeyN
! J9 d+ d0 K4 A3 }. c4 F0 ?( i, n8 ZDim StrMessage 2 _2 w( |5 o( o8 O0 o
Dim ObjRSA
7 j) F, q; X! L' ULngKeyE = "32823"
2 [" }2 k7 C2 ?: K+ p( ?LngKeyD = "20643" 8 V3 a+ \& ~& F& A# J7 k
LngKeyN = "29893"
& \$ [% A; k: D3 YStrMessage = Message
9 s- L0 f5 C- W/ L" W# xSet ObjRSA = New clsRSA ; s5 P& N# e8 N7 R" ]
ObjRSA.PrivateKey =LngKeyD
0 [! |7 T! _  L7 K4 sObjRSA.Modulus=LngKeyN ! Z- z! j! D: e* J5 M& [$ P
decryptstr=ObjRSA.Decode(StrMessage)
& T; q7 v( T8 U, W  V9 q+ ^9 vSet ObjRSA = Nothing $ h3 w/ \: V; B2 r- M( O
end function
$ ?6 R" U  ^4 t  Q0 p$ G%>) X$ {2 Q" c% y/ _0 [1 g
===============================================
- X" ^  X  z% H) a* L9 z
  X9 |" o: Q/ o% s7 R4 Z0 x3 i还有一个用于测试这段代码的test.asp* p% P) K- L! W# {
有兴趣的自己搭建个IIS测试下
) d! M1 P: ?$ _7 ?; c4 E0 J<!--#INCLUDE FILE="RSA.asp"--> # V/ k. m  k/ L, C
<%
1 z9 n+ `4 m! o4 f6 ]  p  W- ffunction Encryptstr(Message)   n& g* E8 d" j0 @' v3 D
Dim LngKeyE
+ \, ?4 G8 u+ T6 `( w. nDim LngKeyD
- y7 u- p3 N: CDim LngKeyN
  z4 @  d1 z- zDim StrMessage 8 s# {/ ^! k' [; z
Dim ObjRSA
& K) }! G5 @, n0 {1 F6 d" cLngKeyE = "32823"   t+ B  a) d, p3 f. ^5 w
LngKeyD = "20643" / ]. D8 Z, z" G, O
LngKeyN = "29893" 1 m2 q7 ?* b8 K9 p& Y- f9 {
StrMessage = Message ; Q6 [- S& \9 c# O; H
Set ObjRSA = New clsRSA * Q$ W( R6 ^  y
ObjRSA.PublicKey = LngKeyE 8 H  [. K: r# ^4 l( g
ObjRSA.Modulus = LngKeyN
* v4 o7 u$ a3 v$ m( X" mEncryptstr = ObjRSA.Encode(StrMessage)
0 K2 \4 j% h; s1 ]: aSet ObjRSA = Nothing
8 K' J+ n; s5 C. \0 N$ fend function ' F+ J$ d3 q. w$ X0 }+ L
function decryptstr(Message)
3 l* O7 ^  \8 u; |9 ODim LngKeyE
# Z$ |5 R$ b' ?) Z# FDim LngKeyD
$ C2 z, M, I6 q' a: l% `1 h: O' lDim LngKeyN - c( {5 b* f) ]/ B; A( {1 @9 @
Dim StrMessage
+ C0 Q: h- i. T1 fDim ObjRSA
# ]6 c% Y1 w* \0 p4 ]1 ]! a3 _LngKeyE = "32823" 2 J/ T; k+ }/ L; s1 g) v4 Z& W7 K
LngKeyD = "20643" 6 O2 s9 F5 M8 A0 m* h  b
LngKeyN = "29893"
2 @$ s- v0 P6 M* WStrMessage = Message . d7 k& q* E- a1 I5 b/ y
Set ObjRSA = New clsRSA : \' y+ c! l1 U1 t9 J( o
ObjRSA.PrivateKey =LngKeyD
6 [! G: Z0 d: KObjRSA.Modulus=LngKeyN & [% Z; J, g& }- j' J) [
decryptstr=ObjRSA.Decode(StrMessage)
4 I2 G+ ^& y9 m$ l9 v2 wSet ObjRSA = Nothing
+ @  V/ K; W% y& N0 |- i  \end function
1 ?* t: f6 o' V, K+ Udim last,first
4 g1 h$ `2 U' \* Ofirst="!@#$%^&*()" ; i5 R# y" ^7 Q1 s
Response.Write "加密前为:"&first - k7 `) X1 G- l! E
last=Encryptstr(first) + \8 c. |* n6 A" Y& F2 g
Response.Write "加密后为"&last 3 Q( ]$ i9 A& V3 O3 [
Response.Write "解密后为" &decryptstr(last)
  U4 S. d  O* i* e- X%> ==============================================
7 Q4 {0 R, c/ @0 _剩下的就是字符的对照表了
, m; P# s9 S9 {8 W( v. t# {===================字符集================
8 x4 a. I# O' ^3 l9 Y$ L) `2 }4 @1_____6EBB
4 A1 \1 V3 d. l" q6 N2_____5C1F% K# f( i( j" _4 I) }4 i9 y
3_____4D75
: r% H+ F$ w9 b7 v! J2 k4_____26CC0 C& j5 ]1 ?) A  E% \: X. y
5_____4F88, U) Y+ J  V) a
6_____3F4E4 b+ _6 E" K6 l. v) {
7_____0A9D0 W$ O" ?- n1 h9 _
8_____1A1C0 m  X- l& {8 L- W2 d, a
9_____6D20
' _* d, v6 |' }+ S0_____1089
8 h3 {; W4 H* M( n/ q/ \; N) Ea_____0F3E6 L+ Q& O: U5 ^. Q# m
b_____3159. ]% Q* o  J; Z; A0 D0 P8 t$ z
c_____3517# x! @0 s: x/ w
d_____419C
7 P5 J/ W' G9 a4 y4 s# qe_____615C' h0 k- h: o1 g, l+ n
f_____556F
; X# z! R' \, ~g_____2B7F6 D4 I( x& }* ]7 x- n9 f
h_____0F9C
6 H% A; ]: q1 M- P. Oi_____00FA: m" Z- d& {; F# e9 y+ ^- e
j_____5A50
5 V9 ]& t/ f: }  y8 t; ak_____2850* B; j. m( x) A$ U" Q7 ?% g+ b
l_____3E7B
" `. z0 {  c6 g, p1 qm_____71C5
7 D# E* k7 E8 C& m  Bn_____1FC8: I0 n- u; c( @' d
o_____74C1+ O/ W6 f( _9 R1 r/ u" [7 y5 v7 B
p_____5FB8
2 @  T3 c( v# A% ^q_____60852 g# ?6 J5 |' h* n, x! b" U
r_____3AC4
7 e$ Q) j! O2 ns_____2F50. G% p# p  L. z# q9 F& a# n+ G5 @1 ~6 M
t_____36F8
& h+ M9 a4 E% l" P2 [2 b# N: ?u_____7010/ C, x# Z( P7 E
v_____0B425 L  H# o7 i' s4 [( K
w_____1C7A) U6 o  H& P2 R0 |* Z0 Z9 A' D
x_____16F8
- u& C! k- k$ {, x' Ly_____2EE7& H% \: V2 S6 Q0 r
z_____5CF3
0 I& R( p+ U, _( {( m: Q!_____6233
/ a% c! a' P' I0 b/ O* I. g# o, m3 o@_____3A45
% e  }5 }6 O$ ~: O#_____22914 x  H8 j8 ^5 x! C7 R- w) k; `. e' f
$_____5D5C- V8 J+ d% Z+ x) u
%_____09B9. Y2 R9 F, j" d' H9 V# G
^_____43EA$ t" s/ i% b2 X) x% \
&_____62B9
0 Y, |, x1 ^2 N, |/ j*_____6301) @/ A) m+ _0 R
(_____4659
9 \. x, Z) I9 B  q: @( G; \7 [)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表