返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm3 t( J  u0 h9 c& w- `
原始出处:http://www.3ast.com.cm" Y, j6 l+ J5 F+ t2 ^, f
) ]4 o$ Z- y+ d/ a4 ]- y8 v
看不懂的直接绕过
, ]4 ?$ x* m3 ^  f加密前为:hwy123456. Q  N4 g9 e2 c1 a* a
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
, M5 K! Q$ n1 k2 n9 J5 u& Q/ E% }5 \( h
============================================
9 N  n" y  P  {上面是当时自己校内的心情。现在已经解破出来了,分享给大家# p% }  w1 {* d! Y
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
  [+ ?! o' S7 }) J" ~4 B" H以下是RSA算法文件
$ V# Y) @% z  n
- a. F. G1 k) n7 @) g% Q文件名RSA.ASP/ {& H3 u2 C( q6 p+ o( q
===============================================
( l' k5 i3 Q$ V: `* G  o<% $ }! R" f8 a' x  o4 }
Class clsRSA
+ w" [5 [6 y% {Public PrivateKey 2 m( p0 _4 ~2 B' A
Public PublicKey
  v& g) m1 w  n6 v" z, q+ `Public Modulus
* P( k& U3 D, h- @Public Function Crypt(pLngMessage, pLngKey)
; Z1 v: A6 `" a* A: ~On Error Resume Next
( [* G4 n. l5 p8 e5 ]4 J3 N" zDim lLngMod
3 G" d! Y; X9 D7 B* C* _' `* uDim lLngResult " F: g9 F) Q( b
Dim lLngIndex - {& T. V8 u) j- T8 |. U4 O/ k
If pLngKey Mod 2 = 0 Then
" {( U3 i8 J8 p' vlLngResult = 1
7 F, {! n  V5 F5 }For lLngIndex = 1 To pLngKey / 2
8 l8 R2 i8 l0 _lLngMod = (pLngMessage ^ 2) Mod Modulus + A. V7 k* b7 ~: i9 t+ h
' Mod may error on key generation
* u7 t, n% z0 Q& n/ {# q! LlLngResult = (lLngMod * lLngResult) Mod Modulus
. u* Z$ b) J$ K) RIf Err Then Exit Function # \  u* C, d' n, G1 L7 J4 L
Next
! I( e/ \& p8 e4 XElse
& F  f/ }+ e3 e/ p& t6 {, t- nlLngResult = pLngMessage
6 Z+ y1 Q7 N+ H: ^" F* oFor lLngIndex = 1 To pLngKey / 2
& O5 K6 ]; V1 P/ MlLngMod = (pLngMessage ^ 2) Mod Modulus . X( M9 P' [! \: N# @
On Error Resume Next
# H2 G6 l$ n/ H( L4 {, b$ A$ U8 P5 I' Mod may error on key generation & y0 C1 J/ l; c: N
lLngResult = (lLngMod * lLngResult) Mod Modulus
+ ]) h. S+ h; `  k5 @* _5 IIf Err Then Exit Function
6 b- y7 r% m- a3 aNext
3 Y3 z0 j4 G5 jEnd If
0 G9 }+ t6 i& c) a8 @Crypt = lLngResult 6 G- K' `0 Y6 T/ n; @. e- y" y/ g1 `" \9 ]
End Function' U" ~- s2 l9 f( Q; Z2 e8 G) f* G
4 v' l0 ^4 }  a
Public Function Encode(ByVal pStrMessage) " A/ Q; I: a0 o0 g6 t2 c9 F. E
Dim lLngIndex
5 w5 g% y* p5 {/ Z' _1 o, u* B/ jDim lLngMaxIndex
+ r  `, `  W; UDim lBytAscii ! b  i& a$ B1 Z5 d
Dim lLngEncrypted ) j6 B2 C$ q- P; V
lLngMaxIndex = Len(pStrMessage)
( P: i& y) W4 ]5 a7 A1 zIf lLngMaxIndex = 0 Then Exit Function " X3 h' Q+ W& [- U% l* K1 v
For lLngIndex = 1 To lLngMaxIndex ' L% J9 x5 d0 k: \
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ; i, }3 C! Y) Z: c
lLngEncrypted = Crypt(lBytAscii, PublicKey) 0 m! M4 ?. B9 G1 {* H/ Y* ?8 Y
Encode = Encode & NumberToHex(lLngEncrypted, 4) 4 B# ]- K: u- K( O/ \$ V! y* j
Next
6 e+ ~1 b7 k% {- u6 A6 X" `End Function
" |- \& w# W) w8 V- xPublic Function Decode(ByVal pStrMessage)
3 y. q: I9 |4 d+ {, o! {9 ^Dim lBytAscii * r. R  c" @0 H' s4 ^
Dim lLngIndex " D5 R8 U- I5 S; Z
Dim lLngMaxIndex
6 P$ P1 `& T' X6 [  gDim lLngEncryptedData , ]6 C: _& q2 m% V
Decode = "" ; B% h  C# ]' Q9 k* e' w9 n
lLngMaxIndex = Len(pStrMessage)
! ^/ n  j" o4 G# }( @# tFor lLngIndex = 1 To lLngMaxIndex Step 4
9 x9 S$ `) L8 GlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
3 K) \. s, Z, I0 `! f2 e3 c9 ulBytAscii = Crypt(lLngEncryptedData, PrivateKey)
/ V+ h1 I! i, {9 z' |6 ^: ?Decode = Decode & Chr(lBytAscii)
5 P* [! \. Y- _0 R* Y' e4 VNext & }+ d5 t4 K  K$ ?' x9 o
End Function
- R& f4 P& t/ F# F' p- sPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
0 }0 }* j' w' }1 b* [; uNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ) g/ l! ^1 f6 M( l
End Function
4 m) ?" G- L) X5 ~/ [+ HPrivate Function HexToNumber(ByRef pStrHex)
4 I/ f1 G' O8 G4 Y& DHexToNumber = CLng("&h" & pStrHex)
( Z: i, `; b' `4 X. tEnd Function 8 Y" j- K: `  w! K% M- U% J
End Class ( @3 j' M- [* ]8 {1 x5 y" p
function Encryptstr(Message) 2 N8 |2 g$ }+ U# y! |- u+ t
Dim LngKeyE   z5 j' V( I4 q; y& p
Dim LngKeyD ' r! t  @: \. |) ^1 c* e2 @
Dim LngKeyN 8 a) ^+ m$ T* C  D3 K$ W% G
Dim StrMessage + ?: m1 G3 y' z9 f: o
Dim ObjRSA
# q8 P# c+ h+ x/ ]" k! cLngKeyE = "32823" % i; g9 ~0 ]% C4 }
LngKeyD = "20643"
' [8 L5 _: k' m9 g# F8 Y7 [LngKeyN = "29893" 8 \+ j$ B+ I2 p
StrMessage = Message
$ d0 g1 D, X( s0 G, I# m" nSet ObjRSA = New clsRSA
+ i& k" O2 s& p" }  mObjRSA.PublicKey = LngKeyE 4 d5 M) u7 ^# [9 G2 v
ObjRSA.Modulus = LngKeyN ! b1 e5 ?. Z' q. E
Encryptstr = ObjRSA.Encode(StrMessage)   p, J# A% A+ `: L8 s
Set ObjRSA = Nothing   q+ P$ W* u" j. a1 t
end function3 o' u( Q1 c, k1 I/ ?- |
Function Decryptstr(Message)
% f: h. ]; V% X7 mDim LngKeyE - G; E+ V/ |, g  M8 D3 Z
Dim LngKeyD 1 \6 f9 e6 s, y- M' r
Dim LngKeyN 2 q  F% k! i  z* ], J9 q
Dim StrMessage
" N, w9 t* A) }+ z' C3 ZDim ObjRSA
% c1 N. m; B: Z% t0 CLngKeyE = "32823"
0 y" `, m2 m+ i/ GLngKeyD = "20643" + f4 p8 W4 l/ d2 b" `
LngKeyN = "29893" ! Q1 q8 l6 }$ a
StrMessage = Message . A4 S( I) S$ b
Set ObjRSA = New clsRSA
6 z+ e% G& ~) P. p2 \ObjRSA.PrivateKey =LngKeyD ; r/ m, w* I1 i' R3 m
ObjRSA.Modulus=LngKeyN 4 T1 x1 ~$ A$ W+ x3 C& E+ X! A
decryptstr=ObjRSA.Decode(StrMessage)
( O$ }4 a6 {, ]/ q2 v9 ]3 zSet ObjRSA = Nothing
( A0 r5 n2 m; `; w' tend function
, J' @: o+ a, a  a& z%>1 z3 n( g3 w* w* w  u: Z4 q$ @
===============================================: X+ A5 \/ d1 }! K3 `

6 l" |3 ?9 K. B/ p# v; S1 q* w) ]还有一个用于测试这段代码的test.asp
2 W& G7 G  d; v; X! q6 G有兴趣的自己搭建个IIS测试下
9 E3 u" s  R: {2 e<!--#INCLUDE FILE="RSA.asp"--> 3 H; f3 k6 w% u
<%
5 Q3 o, e8 n5 Q. C6 g; Gfunction Encryptstr(Message)
9 L( X& ]) F3 J8 q, NDim LngKeyE ) ?4 b& j: M' z6 Q1 L5 R
Dim LngKeyD
+ P# f1 [2 B4 g0 ~2 B& i& tDim LngKeyN
2 l: M& A0 M6 z! C/ sDim StrMessage
8 V1 i3 ~) T0 I0 [# k4 i1 t0 l1 wDim ObjRSA 0 m& f6 p9 ~5 G* c+ K! M
LngKeyE = "32823" 3 X4 F2 o5 Y; }3 S3 ]- j1 W
LngKeyD = "20643"
* n9 ?+ J- K, Q8 X! gLngKeyN = "29893" ! v( _% H& R3 t0 g$ e2 c
StrMessage = Message
! H* c: Q: [) {: lSet ObjRSA = New clsRSA 6 d. F, S8 F1 b8 B5 I7 c
ObjRSA.PublicKey = LngKeyE
: ]2 b- O( C" A; aObjRSA.Modulus = LngKeyN
% y) s3 V0 n% T/ PEncryptstr = ObjRSA.Encode(StrMessage) 5 m. `" d0 }; G/ L" K
Set ObjRSA = Nothing
% T7 {3 M; T0 G5 Q, vend function - S# f+ Z1 c  s1 z! X
function decryptstr(Message)
; }5 d$ N5 s8 H) o+ }, u; ?/ `Dim LngKeyE " T& P3 w. X2 g) K* s* m
Dim LngKeyD
0 Y# {# \  {2 U* nDim LngKeyN 9 T2 l! \) J) v7 I
Dim StrMessage 5 v5 U' B7 M' ], j% ], R+ h1 ]
Dim ObjRSA
* b0 C+ C2 n3 Z' VLngKeyE = "32823" % D+ I2 s; Y' i* g- r+ i  l6 h
LngKeyD = "20643"
1 v/ h; ?7 w! ]- j3 r# z" F4 wLngKeyN = "29893"
6 Q. b# z; w9 A  tStrMessage = Message
9 ^0 s; M- _3 A9 W$ f4 ySet ObjRSA = New clsRSA & q5 W4 V& l+ m+ c: L' z" q
ObjRSA.PrivateKey =LngKeyD $ i) z# X0 ]4 D) l
ObjRSA.Modulus=LngKeyN " s$ r* K" l/ @4 H
decryptstr=ObjRSA.Decode(StrMessage)
- [7 ^# `5 q. ~, R, q& W& |8 h. DSet ObjRSA = Nothing
5 S7 ]# \. j$ d" U8 vend function / A8 N6 {* v3 N& Z
dim last,first - v3 ^7 L' Z2 W8 {; W! h" @3 [
first="!@#$%^&*()"
8 p$ K5 x: k2 H$ t) U, n4 eResponse.Write "加密前为:"&first % A" X2 S" \# d+ [% W  X
last=Encryptstr(first) ) T. x% ^/ O" j4 m
Response.Write "加密后为"&last ( t  a4 q) E! M, q
Response.Write "解密后为" &decryptstr(last)
% g" ]) o  g. V+ |2 z%> ==============================================
2 o( s% C# }# W: }剩下的就是字符的对照表了( F  W' r( L/ T. S/ ~: j6 q- F
===================字符集================7 }' C& |. o  _0 `, g  [( _* r7 q
1_____6EBB
: N" A+ [& u# _+ q2 J' a+ }2_____5C1F
4 B5 l8 T- R9 _  u1 m3_____4D75
' b! V- `+ S# V4_____26CC8 ]5 \% c8 l6 a" O6 {1 ~  B3 ^
5_____4F88# {  e2 A8 Z: J  m7 i
6_____3F4E
* [. S( A: x+ }1 ?+ O$ W! N5 m+ T7_____0A9D. |1 b# z) K  S: ~* M
8_____1A1C
  n: A8 m3 ^# L( P! O' {/ r9_____6D20, y9 |$ c1 N- u6 F; ~% f9 v2 W
0_____1089% o6 Z0 m9 i7 h( l1 }, P
a_____0F3E, ~: q" H3 B) \9 A$ K
b_____31593 F8 @% L' l# U! D1 T9 K; s
c_____3517; y. C/ e2 I) g* {7 E
d_____419C& G- ~. V$ Q' E4 g5 S; L
e_____615C) B0 P' k( Q* Q5 Y3 L" [- S/ x, l
f_____556F' o) `* r9 i# [
g_____2B7F4 D( l0 M) M5 s- Y) n
h_____0F9C
0 Y8 a& {/ D' s5 v' a1 di_____00FA8 K* q  O, n9 X6 j/ h  o
j_____5A50
" T3 q9 G* {+ w: q2 ~k_____2850
- Q( y( x& H1 S+ O6 Ll_____3E7B/ t4 Q9 U/ O5 ?" d1 C* }* u% W' T4 _
m_____71C5& d. A# Q' K" @- B/ m! k/ H
n_____1FC8, Y/ K+ S# o  G
o_____74C11 D$ N$ {5 Q3 N+ f
p_____5FB8
# i6 O* A& K& {q_____60853 _) f8 u# k- T5 N9 c
r_____3AC48 b6 w( M. {& m6 H# i6 T
s_____2F50
0 `' h$ U& ]: R) A+ j1 O6 D5 x0 Gt_____36F8
$ U, g4 o' w6 N( F8 L# l  Ju_____7010
; W; L6 P/ |8 R6 B1 iv_____0B42
$ M$ f0 x, N9 G0 e7 F: Q8 [, |w_____1C7A% c, }" ^5 P) J
x_____16F8& r6 [; H3 _2 y6 {- q8 W+ b* B: K
y_____2EE7
9 ^$ R! \5 K1 y' Yz_____5CF34 O5 ~8 T- u. v, I3 e' ?( V; a
!_____6233
/ r# L( @$ J% M. d, \* B@_____3A45/ K4 h0 {; B, T" k) z! n3 m5 S8 R$ N; Z
#_____22914 Q" X* c" d8 t( R+ M% {% a
$_____5D5C
" i3 v6 B/ p" g* Z" p%_____09B9* _/ v& u6 ~! n
^_____43EA
1 b9 t6 U+ n1 M&_____62B99 Z( J% k/ k* l! Y
*_____6301
# [1 [8 ]( L& d7 [(_____4659
. R, w3 P, z/ t)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表