返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
4 l0 _1 ^% i" f, ~: ]% v原始出处:http://www.3ast.com.cm. e& c" K( R3 M# _
; f3 k3 s  w1 I) |; J1 B
看不懂的直接绕过3 z- h7 [9 @0 j- {8 f3 Z- E. o3 R
加密前为:hwy123456
! B' J9 ^4 T: |. N2 J- `加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E; B" v! P8 Z6 v; w; u; ~( K

1 P( H4 u! o' h" c2 r============================================
) T9 q: b% \' W. _  s3 M上面是当时自己校内的心情。现在已经解破出来了,分享给大家2 d1 Y8 F( ]6 C! t1 t# T$ s2 A
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
7 g9 c7 S1 p3 Z" P以下是RSA算法文件
" W; ]0 p7 q& x: Z, v6 d) N' I2 S) E* w% a
文件名RSA.ASP+ F, g  v8 ]" b8 {
===============================================
5 D0 v* x0 E( {# d3 P, m- m1 _5 s$ `<% % a  u5 K2 b& d1 L) ?2 X) K$ q
Class clsRSA # u, R7 o9 I# c: B+ v. ?
Public PrivateKey
2 u1 _. v; ~* R* h: kPublic PublicKey # f; b3 _/ H6 J$ ]
Public Modulus
1 ^$ A) G- x/ f3 Z9 ]. WPublic Function Crypt(pLngMessage, pLngKey) * D2 T/ M- I$ j, [5 }
On Error Resume Next
0 [, E# d( L6 T3 P) w' ODim lLngMod ! w5 c' O1 e8 n! }
Dim lLngResult ! r. \* u7 `, A
Dim lLngIndex % S3 i: a7 p( t& @9 E2 G6 o# F
If pLngKey Mod 2 = 0 Then
8 [, L% t: S! l7 B7 zlLngResult = 1 4 w$ m+ w. s8 k
For lLngIndex = 1 To pLngKey / 2 " u* k, s- i8 I& N5 X4 j* j& t! x
lLngMod = (pLngMessage ^ 2) Mod Modulus
7 i0 l' q0 h6 D' Mod may error on key generation
/ m8 I" |# g; d$ vlLngResult = (lLngMod * lLngResult) Mod Modulus & G' c: E1 d+ ~3 z  B: y
If Err Then Exit Function ) s* x& D: e+ [* B- f
Next / U! }; t* `, }
Else
9 n/ A# F3 d2 i) A  E3 T2 olLngResult = pLngMessage
8 H! X: H! z' R& u+ _For lLngIndex = 1 To pLngKey / 2
9 s0 J/ J. ]; n  f* r% VlLngMod = (pLngMessage ^ 2) Mod Modulus
6 J/ z, o* p4 ^0 z( W& S: fOn Error Resume Next
# n2 j0 L: O  ^/ {; F) P' Mod may error on key generation
8 x2 ]! |! m: a  ]% h* o6 j5 E, N  xlLngResult = (lLngMod * lLngResult) Mod Modulus
& `4 o+ b7 g. S8 j0 R  O( z4 |If Err Then Exit Function
: M$ J, q: o2 A! K8 ]% o9 CNext * N0 @* f4 A- n' q# m1 {
End If
6 J9 q: Q: w" z8 ?9 J" LCrypt = lLngResult ! n+ n, s: J2 b6 U
End Function
& ^. p3 N9 K4 P& M- H
2 Q" C2 F, e7 i5 UPublic Function Encode(ByVal pStrMessage)
7 N9 s/ R2 F6 W  O+ e; TDim lLngIndex * j2 g9 v/ K8 v, f! F. Y+ {5 z6 f
Dim lLngMaxIndex
5 Z6 j- w% q6 ^0 L) jDim lBytAscii , E8 Y+ i1 S+ ?  R/ a
Dim lLngEncrypted $ k6 [2 h5 x& Q$ }- t  M* H* G
lLngMaxIndex = Len(pStrMessage) % O% N4 [& O7 z
If lLngMaxIndex = 0 Then Exit Function
  s# c0 F3 I3 W. `6 e. _For lLngIndex = 1 To lLngMaxIndex / Y2 S. k! y/ g+ N- h+ ?
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) # k& L5 t" D9 ^* C" F3 Y
lLngEncrypted = Crypt(lBytAscii, PublicKey)
; P' t2 h: P" r  K/ P5 B( ^Encode = Encode & NumberToHex(lLngEncrypted, 4) ; G2 V- \! U% R' e4 t* a- O
Next
- D% ]5 }5 p* }: LEnd Function # p- R, @7 [+ H, l- }, s3 m: N
Public Function Decode(ByVal pStrMessage)
# Z0 i8 G3 W) u- w$ eDim lBytAscii
) X# Q) W; h# R( HDim lLngIndex
6 [2 H& u! V& `6 ?2 M( }0 p5 pDim lLngMaxIndex ; ]! [6 |- U7 Q4 }( V- S
Dim lLngEncryptedData ; n- P1 k" l9 y( Z
Decode = ""
$ k% R( k' K! h- l! J. D: }lLngMaxIndex = Len(pStrMessage)
. q1 V7 J# b6 W+ bFor lLngIndex = 1 To lLngMaxIndex Step 4 : _, V+ r- i6 N# I9 W6 Y- z
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 y! M5 T6 b: O, o0 L% A9 m
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
6 p8 v+ g! O- X. K, E  cDecode = Decode & Chr(lBytAscii) 5 A- ^0 j$ |; M6 Y
Next 5 n6 [0 n' H  O1 G% p$ K
End Function
3 Q/ |- m9 }; G( c+ r" T4 a0 SPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 1 C+ A  C1 O3 Y3 L/ o/ y$ B
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
1 d3 J; U) T( {2 t; i8 }End Function
' x" e; R2 J  x1 q" U! vPrivate Function HexToNumber(ByRef pStrHex)
; Z& y% \; i9 M+ PHexToNumber = CLng("&h" & pStrHex)
6 B3 ^% h+ ?/ AEnd Function
) g' v0 P  ^" d/ Z6 }# S1 P4 IEnd Class $ _$ @) T0 J8 f2 Z. ]
function Encryptstr(Message)
, l3 Z' J/ Q3 DDim LngKeyE
3 L4 t* E/ i- y( I9 NDim LngKeyD / c& B; s: _- I. f! x1 C# ^
Dim LngKeyN
4 y. M) v0 f9 n. L5 G. `; mDim StrMessage ' ^9 R9 E  d/ p% G  m" i
Dim ObjRSA ' {1 u# T  d$ R; [5 y( ?! y
LngKeyE = "32823"
: `  D+ o, ~3 bLngKeyD = "20643" 5 B+ r7 f: ~  B7 g5 u+ l
LngKeyN = "29893"
6 ?/ j8 S" Y7 B! Y* p# hStrMessage = Message " q8 I- R$ t7 M/ g: |1 s
Set ObjRSA = New clsRSA
8 k; D& z- m$ n2 ~5 F8 Q1 F8 G8 y- lObjRSA.PublicKey = LngKeyE % |7 z/ E% V- H3 a3 S
ObjRSA.Modulus = LngKeyN
5 t" G/ D: V# a* sEncryptstr = ObjRSA.Encode(StrMessage)
. y7 O  o$ \$ I) W; c$ hSet ObjRSA = Nothing & V3 L/ Q( p# n+ u5 m
end function
- \. h9 D/ S0 w: SFunction Decryptstr(Message)
& Y+ E2 K2 X& K1 UDim LngKeyE
! O+ T' x5 z. Y  rDim LngKeyD ; d0 _, o* `) m5 k  M
Dim LngKeyN ( v* \. x/ C$ z  v
Dim StrMessage , X& `+ M* `( Y' n. P
Dim ObjRSA . Z; J9 R7 a) U1 d
LngKeyE = "32823"
4 [, `+ {6 J0 V9 XLngKeyD = "20643" . i+ ?4 Y' Q$ W1 {
LngKeyN = "29893"
7 P( L5 Y9 Y9 [' A5 uStrMessage = Message
; N  x4 R' ], y. U9 y& H; E- HSet ObjRSA = New clsRSA * f6 A0 z+ E( t" R' |' g, H* \' o; k# c) P
ObjRSA.PrivateKey =LngKeyD   z5 \7 J/ h- p' [3 \# W
ObjRSA.Modulus=LngKeyN 6 k* A3 n; a% @* @( Z
decryptstr=ObjRSA.Decode(StrMessage) 9 a0 ?/ V$ ?9 c1 J  P1 h; G
Set ObjRSA = Nothing ( s6 p& f9 e! Y
end function - B5 S" L, h! M
%>
7 O" V( R6 z% G+ H# q" V1 ^( q===============================================
* o5 }" D, s9 n2 R; D# T' p
# F9 l" ~7 [: }+ |还有一个用于测试这段代码的test.asp
( H) L+ v" t1 }0 k) }" R有兴趣的自己搭建个IIS测试下: l) ?0 d0 C) \( B9 K7 y7 s( }
<!--#INCLUDE FILE="RSA.asp"-->
' C3 Z4 J8 x' f* e' ?8 H% ~<%
2 h! C2 D' z; xfunction Encryptstr(Message)
' Q0 i: @5 v7 D/ t4 mDim LngKeyE 2 l/ u4 e: f3 A* G& c2 l3 h9 s
Dim LngKeyD
; R/ F: d) {7 h* {Dim LngKeyN 4 B8 @! T$ P4 d8 z6 K
Dim StrMessage
6 x; o: l- p$ rDim ObjRSA 8 w% ^  e" T, m( a
LngKeyE = "32823"
/ Y7 Z+ r$ u$ y' }' MLngKeyD = "20643"
  `  C: |5 X6 o! fLngKeyN = "29893"
1 P% q/ W& T) z7 MStrMessage = Message
7 J+ q! B5 s4 Z0 m/ RSet ObjRSA = New clsRSA
9 i- f# \' l1 w& z- a8 K6 I! yObjRSA.PublicKey = LngKeyE # W( q$ {- G7 |' w
ObjRSA.Modulus = LngKeyN
/ p! ?' a3 l! Q' k2 X( {Encryptstr = ObjRSA.Encode(StrMessage) 8 K& j$ G, |- F; {
Set ObjRSA = Nothing
# e& O# o0 [# F% u6 A9 Y0 c1 O, Zend function
) _) }2 p- B0 C! a3 X1 A, g2 d  efunction decryptstr(Message)
! ?0 K# G0 F2 C0 A* b, dDim LngKeyE
0 b9 G& q8 G3 j' c( F4 ]Dim LngKeyD 2 }4 V$ L, e) i  V) M
Dim LngKeyN ! m% W9 p! p$ \4 O0 r! ?, v- A
Dim StrMessage
1 q: v7 L% {6 {8 Q7 N$ }. x. FDim ObjRSA
% t1 f& }4 @; |4 zLngKeyE = "32823" 2 E; w( u. S) l3 H! E" g
LngKeyD = "20643" , p2 `# W, Z. G8 c: l
LngKeyN = "29893"
% W0 ?1 k( _5 o2 n0 D$ A4 R! V! k% ^1 HStrMessage = Message " v/ \4 }* {) g, l
Set ObjRSA = New clsRSA 4 p  P& p0 i/ Y" m( x+ I
ObjRSA.PrivateKey =LngKeyD
2 `& f+ q; W" v- D, ^ObjRSA.Modulus=LngKeyN
( b! S, x; b1 U2 h! qdecryptstr=ObjRSA.Decode(StrMessage)
! A- c0 L' J! }" I3 u7 W/ HSet ObjRSA = Nothing
3 {9 T9 |; [1 \" q: q/ o5 z6 _end function * }3 e4 z2 K! P( s
dim last,first
' N* o, L7 h) Z4 S% h6 Tfirst="!@#$%^&*()"
: m) G4 T6 X+ rResponse.Write "加密前为:"&first ( C: ]9 [5 Z/ Q& ^3 S7 D6 Z; x
last=Encryptstr(first) * L  q! {/ W# ]( x$ {8 Z
Response.Write "加密后为"&last 9 @) f! `* k( s7 F
Response.Write "解密后为" &decryptstr(last)
4 r8 U- G1 j1 X9 w. T& d+ P/ h' D%> ==============================================! R/ r8 `8 E1 g; \# \
剩下的就是字符的对照表了
% L' M$ a5 F# E: j/ T2 K===================字符集================0 x/ v' ]0 C$ s) ]& m! @7 q
1_____6EBB
9 W5 W+ ~2 L$ b) l: n. `, S2_____5C1F
/ k, w# f0 S8 S. L3_____4D75
- w. ]% l. M5 k3 o7 e5 m0 l4_____26CC1 O  T+ J  P# h, I- P! L
5_____4F884 A3 N' l3 |! z8 V- M
6_____3F4E; Z- \/ N$ c, \. P0 u
7_____0A9D$ T" Q! @0 j5 t7 u$ l8 a" t$ N9 d
8_____1A1C, k. X9 e$ N* N6 b! s
9_____6D20
8 ?) u' X* p) `- w- a0_____1089
; i) O4 ]0 M* Ja_____0F3E
( v# a2 k. J- h  \b_____3159
" D% g1 s" o$ C4 [c_____35173 r0 F  P/ Q% I' D  s
d_____419C6 O/ K) `1 B, a( q- S) H
e_____615C
2 ?' _  p4 A! W: {! W: If_____556F
) H6 X  y2 r4 t/ S" cg_____2B7F
+ x  v/ L9 a  C& n* y' G* z  l: fh_____0F9C
8 q$ P& W" U0 u$ e7 y- Li_____00FA
$ b. z8 G  U0 D3 p: ]0 Ej_____5A50) K* I4 `: d- _/ K* k1 @9 K& \
k_____2850+ m8 l) G* a& t$ j2 U2 C
l_____3E7B
, x6 c3 {8 x' Q" z' b: lm_____71C5
  m6 {- e- A+ P: b3 Gn_____1FC8
# ^* b& R1 y0 g# Qo_____74C1/ g  m# E( s2 l3 U. ?
p_____5FB8
: T8 q8 o+ k, v9 ]& L& z) }, Nq_____60858 s$ L5 a( j* k+ r, y2 I3 y1 S" M( s+ I
r_____3AC4/ T% r8 q: R# j4 ^
s_____2F50
8 O( V2 Z2 N$ Q/ s: x5 Rt_____36F8' j( c1 W3 ^  F/ M
u_____7010
) ?$ g" A$ `" K5 ?5 qv_____0B42
3 s2 X/ r, h) l1 z0 @w_____1C7A
( D8 f/ U8 w6 H  \* Y9 U( gx_____16F8
; B9 E  v% W* s8 t8 ?y_____2EE7
; W* G6 ]/ `7 h. `" I; [5 _z_____5CF36 ?8 M/ L) e7 p6 `  `3 {
!_____6233
& ?2 j( }9 g! Z. \@_____3A45
9 q/ M3 o- W) ?#_____2291
( \3 Q! H2 n! p) f- `/ C8 O0 ^$_____5D5C
4 M  }) T# D4 s- x2 {: M%_____09B9  {  q7 I. `4 L8 P
^_____43EA
+ @& o  ]& Q# m" p/ f&_____62B9
3 }, g9 ^: n1 V+ d" g3 c*_____6301
# f' Z; W0 a6 U4 v8 a) a(_____4659
7 W  ?( u' |, q2 x( e2 s, G. s* j)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表