返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm% `% O8 s: h  F5 U2 n
原始出处:http://www.3ast.com.cm' J) C8 K% S& Y% G

2 P2 F- ?7 J7 B" E4 H/ g看不懂的直接绕过3 h5 S. O7 M- @) {) C+ ]
加密前为:hwy123456
8 Z/ x% T& w! f2 d6 X+ c2 c加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, @% p9 ^7 H4 o/ n$ v# q4 I4 v4 Z' `# t5 W" v& Y6 u
============================================
/ a" u3 H% n; k+ h上面是当时自己校内的心情。现在已经解破出来了,分享给大家
" t# Y) K8 B" [3 u也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法0 D/ h7 L( k( \' j# h9 S( a
以下是RSA算法文件; j0 o( k4 G! e0 R- K! L2 y/ h& V
: a4 a; H+ {4 t9 y
文件名RSA.ASP  @% F, m8 P6 W) Q+ X
===============================================
! f8 {3 Y: h: q2 u<% * a, w' F6 v; ~  u: q! n7 q3 {
Class clsRSA / c* ~% K) |9 j0 x$ {
Public PrivateKey ( q- K; i  I, K8 \
Public PublicKey
( T" h& n) ?. ?Public Modulus
* z4 L) R' a5 n! ~- M$ JPublic Function Crypt(pLngMessage, pLngKey)
2 f( q) D0 e4 V7 D( c2 W' {) iOn Error Resume Next
' O9 q! Z; P  o$ H2 q6 T0 ~4 LDim lLngMod 8 ]0 K) O2 [0 x' u# R
Dim lLngResult & ^& y8 M* O- B5 h) C
Dim lLngIndex
: V# D$ j( f/ j3 P7 B1 GIf pLngKey Mod 2 = 0 Then ) D+ m; Q: B" x/ K3 H/ ]
lLngResult = 1
# b1 E, l6 _6 @0 |: X! n9 K% q& C$ PFor lLngIndex = 1 To pLngKey / 2 # p; N  y; Z9 @% K
lLngMod = (pLngMessage ^ 2) Mod Modulus
- C: J% o* C8 B0 l: }* @9 l* s' Mod may error on key generation
1 h# e+ c( s- H- r$ d4 N( XlLngResult = (lLngMod * lLngResult) Mod Modulus
7 g! h4 s1 v" ~0 Y0 `) l. MIf Err Then Exit Function 0 m# G. X% R  ~+ M- _7 d
Next ! {- J2 z- s2 n7 w) A
Else
$ a% G2 k$ s! elLngResult = pLngMessage . V0 j1 z/ R! i1 E* ]$ t0 f% T
For lLngIndex = 1 To pLngKey / 2 . Y9 [# j- z8 q
lLngMod = (pLngMessage ^ 2) Mod Modulus
/ A! V: f& W" Y$ Y! t& ]; |On Error Resume Next ( k" R1 u. b9 ^8 D
' Mod may error on key generation 1 U) Y5 U. B  L4 ^# i9 h& {0 R
lLngResult = (lLngMod * lLngResult) Mod Modulus
- _2 G/ V2 k6 T) t- {If Err Then Exit Function
% u4 k, A& K& f. Y; HNext
4 k& A( A" W6 r3 U1 P. JEnd If
# s6 M# [4 o. b( }1 J- ]Crypt = lLngResult
9 h0 i9 K) I1 h" R3 ~" PEnd Function
7 C1 c; A" h& n, N0 `. W: P* {2 _2 @/ k4 o
Public Function Encode(ByVal pStrMessage) 9 D0 O8 W1 [9 i( m
Dim lLngIndex
5 `# j; D, m. `8 A# y& X+ P1 k% N  V- @Dim lLngMaxIndex $ u( N% j1 U1 l% l) N
Dim lBytAscii
9 {7 z4 `0 g3 P5 VDim lLngEncrypted
( j$ \; a0 n3 Q( x) x) _$ F! x% flLngMaxIndex = Len(pStrMessage) 9 |( s' ^) p: ?( A
If lLngMaxIndex = 0 Then Exit Function 3 K) D) {! n- D4 `3 t4 \
For lLngIndex = 1 To lLngMaxIndex 1 j  a+ j) w3 _& r. a
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
+ U2 X: X: @1 [% c( }  \3 {lLngEncrypted = Crypt(lBytAscii, PublicKey) 5 u# L* Z# ?% g  |1 G' V
Encode = Encode & NumberToHex(lLngEncrypted, 4)
: z# k2 ~- j5 L; ^  l" ANext 3 K! _1 ~  _* c% z! Q$ W+ b
End Function
) @8 q( Y3 G! t7 K3 xPublic Function Decode(ByVal pStrMessage)
0 m2 @) T+ V+ Q; T" k# I: pDim lBytAscii
! C/ J, g3 `3 W. Z+ y" fDim lLngIndex ; `- q& u& U2 y# \' k. S
Dim lLngMaxIndex
, r8 T8 v# T0 }0 l- B/ D* ]Dim lLngEncryptedData - ]5 k2 z0 A+ j' O+ r4 x
Decode = "" " l2 S, M! w" B( L# X1 S/ o
lLngMaxIndex = Len(pStrMessage) $ d- }' N! \+ i, ?1 ]) ]
For lLngIndex = 1 To lLngMaxIndex Step 4 6 M  r& J! O" s! g4 \. }
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
. |8 A$ W; j4 u& I( KlBytAscii = Crypt(lLngEncryptedData, PrivateKey)
. q: M2 }! Z# {/ j9 |Decode = Decode & Chr(lBytAscii)   w' L9 y+ M9 Z% u* h
Next . X' N+ _/ @8 f( Y$ c
End Function
% h; o! k; }! }$ a' M9 u, C  Q  DPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) # _4 y/ e0 e4 @4 w
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
- G: S* h; R" NEnd Function & A0 ]2 O: u( Z7 l
Private Function HexToNumber(ByRef pStrHex) ' E: P, h) O$ r" m" v' B
HexToNumber = CLng("&h" & pStrHex)
: X5 _) t8 M+ J6 ]End Function
0 V1 b' S9 N) }) V. \6 NEnd Class # |, I1 p; _2 i1 l: z7 w  r6 G
function Encryptstr(Message)
" A1 M/ s  Z  p+ gDim LngKeyE
% P! e9 K* {& c' M* e! k4 YDim LngKeyD $ {' j0 D2 g  N6 m# \0 K8 q. ]  z0 e
Dim LngKeyN
( }) g, H6 v* A, S! B2 P- n' ^Dim StrMessage
1 |8 u& v3 I4 V" R0 W& hDim ObjRSA
" w- @1 ]) |6 M* [( C. P6 dLngKeyE = "32823"
- N+ E5 N) b6 I8 {, RLngKeyD = "20643" 5 ~9 Q0 z& p" y6 |4 l2 B
LngKeyN = "29893"
5 U% O3 C: q1 T# n4 B7 oStrMessage = Message 1 _; h0 ^9 X& b  t8 w. K
Set ObjRSA = New clsRSA
( t  g4 V# L3 m) K) \ObjRSA.PublicKey = LngKeyE . j  H! b; y! u1 t% ~
ObjRSA.Modulus = LngKeyN : b/ x" {) o: |) `: {
Encryptstr = ObjRSA.Encode(StrMessage)
6 \6 t7 m7 ^1 Z7 QSet ObjRSA = Nothing
) f& x! L6 [* }end function/ d& C9 R5 u/ b! K) g1 |
Function Decryptstr(Message) $ R/ [; {9 F+ V4 _! F' k/ @
Dim LngKeyE 3 S: ^4 K; ~" x/ z. P. |0 z' I
Dim LngKeyD & c& U$ v  [! A! i0 E
Dim LngKeyN
$ a* F/ ?, H* z3 {% VDim StrMessage
- l, [" C& G: l, ^2 A. dDim ObjRSA
4 T( J: p- q5 b0 |- T, eLngKeyE = "32823" : G+ L3 F+ ~; \6 X6 O
LngKeyD = "20643" # w) ^4 _: d; w8 g
LngKeyN = "29893" 1 a" d9 _- C! I, k
StrMessage = Message ( d  {$ y* ]9 }
Set ObjRSA = New clsRSA
: _+ i, ]' R3 t$ ^( MObjRSA.PrivateKey =LngKeyD $ l; d% G6 Z9 t; _
ObjRSA.Modulus=LngKeyN
( y* k* l7 ^6 G1 H0 U" o0 Tdecryptstr=ObjRSA.Decode(StrMessage) ; [/ o9 N# t3 R9 S# z
Set ObjRSA = Nothing 6 `# W$ C. b  y- |& H
end function " {- V0 E  w3 l& A% G$ K4 [
%>: d, F: S+ V0 E% ^$ F4 G
===============================================" i) U# ~/ P/ O1 u* s9 f' w4 k7 G, L3 P; J

& \& E% a. Y# l1 s还有一个用于测试这段代码的test.asp/ R2 S3 S! r1 ~# |
有兴趣的自己搭建个IIS测试下
4 H" _3 E+ L8 Y3 n<!--#INCLUDE FILE="RSA.asp"--> 1 A* H0 |7 |& U: G- A7 U
<%: ?# l( O4 s. t  B/ |
function Encryptstr(Message) & N) q' A) M% q# p6 W' G
Dim LngKeyE 3 G% o. e' @7 X* S4 Z/ }
Dim LngKeyD
$ B" _' x% }; {* b4 K+ w& }Dim LngKeyN
1 Z& Z& Q: j7 A. E8 Z1 s6 CDim StrMessage
6 ^2 c/ n6 ?; }Dim ObjRSA
  L+ l& u2 g2 x9 h8 QLngKeyE = "32823" $ b; B; C8 q! {' X2 f! Q7 N4 M6 `( Y& L
LngKeyD = "20643"
" W, B) y0 e, k! P: CLngKeyN = "29893" 8 n. [' l/ a+ g8 p5 {4 `
StrMessage = Message ; \0 ^2 e$ _9 @, O/ o: _
Set ObjRSA = New clsRSA
) X- Y  @& K% i6 u# m& L, Q' wObjRSA.PublicKey = LngKeyE ; Z: N# h* f8 [
ObjRSA.Modulus = LngKeyN
* |3 n4 X; b$ U! @- P. v3 a4 N( R6 d9 dEncryptstr = ObjRSA.Encode(StrMessage) 6 e# C9 x! S* f1 n' E( J( o3 k
Set ObjRSA = Nothing ' V# \4 L8 p4 w; q4 u
end function
1 e8 q! Y* n- |0 ?9 n& M7 Xfunction decryptstr(Message)
/ d. D0 d" z* `- \. \: T7 YDim LngKeyE 5 G$ h, b, x6 g7 A+ _0 u- \6 Q; a
Dim LngKeyD
. i. P5 m' M. ~- W9 o! b" K8 a* {6 tDim LngKeyN & |) c4 u7 h, A; c5 I! r% R
Dim StrMessage
4 e' @7 ~# n6 e& D# EDim ObjRSA
/ M; j3 M0 [7 q& fLngKeyE = "32823"
/ }. K, l. h5 y$ b- R: i9 pLngKeyD = "20643"
# e' {4 m( j' ]# k! BLngKeyN = "29893" 1 V3 l+ I9 |3 D6 H$ j& A
StrMessage = Message
0 H* D5 N: X1 s: B2 zSet ObjRSA = New clsRSA + o8 g# U" p6 Z0 y
ObjRSA.PrivateKey =LngKeyD
' ~/ d( z( U# [4 H5 O4 ^4 x* ?$ \0 EObjRSA.Modulus=LngKeyN 3 N" }" @6 h9 R% {5 W
decryptstr=ObjRSA.Decode(StrMessage) ( f9 H+ t% v) }4 ?) @
Set ObjRSA = Nothing 9 T& \. I3 v' p
end function - t- h( {- t1 \6 l1 I# }
dim last,first
+ C' ]) \2 Z# I$ L% cfirst="!@#$%^&*()"
0 {- O* Q6 E/ ?* |Response.Write "加密前为:"&first
* t! H3 t0 R7 o& {  s' ^last=Encryptstr(first) - Q( V* p( ]  A6 T
Response.Write "加密后为"&last ; F7 z: Y- ~( `6 I3 h' s% t: V
Response.Write "解密后为" &decryptstr(last) 0 q5 \5 G; ]- A) Q5 F, U: W/ [
%> ==============================================
# h: o6 v9 Y( Z7 [/ I- P! W# L剩下的就是字符的对照表了0 M8 |; S1 b2 F0 z
===================字符集================# }7 }# a" u& a# a
1_____6EBB4 c5 Y/ A$ u$ k6 W; S) q4 T2 A
2_____5C1F7 z  t! ?5 W* D& H4 K
3_____4D75. L2 K$ o9 A9 F
4_____26CC& f; ^4 \6 Q7 w3 e8 o
5_____4F886 G/ p; @6 ~0 Z# X$ V9 S$ p
6_____3F4E' ~" D/ U: Q+ K$ j6 ?
7_____0A9D
- m* K- @( ]' r( V; B* B! d8_____1A1C
: Y$ K$ @& l$ Z1 B1 `2 V6 N9_____6D20
% U2 r7 {' V, t+ Y0_____1089& K6 k% ?! m4 p
a_____0F3E
7 S) M( y1 W( z4 wb_____31592 @) X/ M! g5 M5 m/ K
c_____3517& x/ Z% P/ v, a0 Z& c
d_____419C
( u9 W# @! |7 }+ ne_____615C, @5 A/ Z$ t; x1 a3 c" L* q
f_____556F
; ^- \  y; Y1 |% |. A3 sg_____2B7F+ X7 K; x7 J8 ^& x5 y8 ~* J: w" ]
h_____0F9C
4 @3 G$ b) y1 v/ {6 f& k. Ri_____00FA
$ B$ W8 v$ o" n2 @7 b1 Vj_____5A50
' I& n5 c+ E9 {: Y% ?1 _! T+ _, D8 G* `  Pk_____2850
8 `7 b5 P0 e9 J8 e9 Tl_____3E7B: ]' A& w& x6 s9 w2 z
m_____71C5
! w7 [+ G; k4 _5 }$ n: {n_____1FC8
) F8 x$ {  l* d# k$ K, f3 b5 uo_____74C10 O1 P. N$ D" y2 c' d
p_____5FB8
7 o8 e' _9 W# Z; T6 s9 Nq_____6085
; h/ b: }2 h9 ~& b2 rr_____3AC4
% p3 |: W/ j$ Ks_____2F50- O% o. x# h' K. U
t_____36F8
9 i( @7 g7 i7 v; su_____7010
- l4 H( j+ j! B: P/ {1 u" `! |6 lv_____0B42
7 X+ ^/ R, o+ z# k4 f; ]w_____1C7A
( n& _8 q0 H8 s) Jx_____16F8
) T. f) y/ }+ r: Gy_____2EE7
0 a6 b% X" V4 |& w  k2 iz_____5CF3
/ L$ N* O# W# w& c!_____6233
$ U! |3 J' N' ?0 R) F  i@_____3A45
: x# f" s: M4 O#_____2291
3 p' w  |! j- m( Y$_____5D5C7 u# J2 I2 Y4 s
%_____09B9
6 ~% Y7 N1 J2 s# L3 d. F3 R9 r^_____43EA
1 f) s6 k. ?# U/ N/ w&_____62B9
; f1 j* @5 r8 m*_____6301* Z. e( X0 T5 l% a5 r
(_____4659" f' ?. f) e1 A4 Z4 o
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表