返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
! A9 ^4 w2 R+ U, O7 Q- `原始出处:http://www.3ast.com.cm( y5 G' D" l6 K) O- P3 }
$ k$ W& x( d9 p- e2 j
看不懂的直接绕过
4 S1 d" @1 e' w8 L加密前为:hwy123456
- P( n  k8 Q" f0 Z0 }. n1 W0 ~; z加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E* B% U' Z. r/ T4 E5 W% ?

* Z* D2 I' M2 ~% R3 ]============================================6 w7 ?- t1 T7 \# \! B5 Y$ g( N
上面是当时自己校内的心情。现在已经解破出来了,分享给大家+ V- V9 ?" z  V: O' [
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法% j) ^# \3 I5 M9 ~2 b. `9 s8 T' j9 b
以下是RSA算法文件
- V# W/ W: A( v8 R$ g( s) C- f
  S  Z2 W/ }- ?文件名RSA.ASP
# R" l; P4 O/ O6 H, O8 \+ a( @. U5 Y6 T1 L===============================================, W% [8 i) K8 q' y
<%
- Z- s2 L. @7 x' `; N2 e. B0 ?% t7 xClass clsRSA / \0 `$ B3 e% I" s0 _" o0 P
Public PrivateKey & W- n9 {) Q, Z+ G4 _/ @  A& S
Public PublicKey
9 r0 R- h; {4 r% s8 w; f5 WPublic Modulus 3 H# L: Z  y6 d: h4 |' s" q
Public Function Crypt(pLngMessage, pLngKey)
$ a) k( |! S6 t" q& O1 D8 KOn Error Resume Next
) S- i4 O( `- X. aDim lLngMod
! ]9 |( b; H- s& gDim lLngResult
! D* y6 K( Z6 k0 {Dim lLngIndex ! {7 q) ^5 u' u8 \/ ^  b
If pLngKey Mod 2 = 0 Then - K  q. p7 ?1 ?* _
lLngResult = 1
& A! f- W' a% ]" ]For lLngIndex = 1 To pLngKey / 2 % E) ?5 ]0 T7 A% t( I
lLngMod = (pLngMessage ^ 2) Mod Modulus
* ^3 F' \4 t$ W; D8 m- ]' Mod may error on key generation % h  k; D5 {; p0 |5 e2 }) z: Z5 A& C
lLngResult = (lLngMod * lLngResult) Mod Modulus ) U: {) B- s+ I# f3 x! b
If Err Then Exit Function
# i& o! K) [9 SNext
) f, T9 J5 v# ?1 XElse
) e8 D) b- e7 X# D: d, glLngResult = pLngMessage
' G8 K/ ^7 b: {) m  I! S; {( L* [For lLngIndex = 1 To pLngKey / 2
" H4 x, S0 B7 G: ]0 B/ ]lLngMod = (pLngMessage ^ 2) Mod Modulus 3 P1 ]" R( H% t6 G; e
On Error Resume Next
) Q3 D9 {" U/ z5 R; K' Mod may error on key generation % X) k* \+ v% O% X: P4 l  a/ f
lLngResult = (lLngMod * lLngResult) Mod Modulus ! O' n$ d& F. Q5 K
If Err Then Exit Function
/ c1 \# k) A4 V4 I& k  l0 UNext % @' c( R# ?1 v/ T7 B, I0 t
End If ) f) n8 {; W" M1 l: r: D7 M
Crypt = lLngResult 4 G& n( c' e5 _$ S+ y& C3 {
End Function) v( N8 [6 T4 @1 |  ^. v4 d
8 w4 X1 V1 U" q8 [6 ]3 G6 z( A/ {0 X+ O
Public Function Encode(ByVal pStrMessage) 8 l' ~% }1 `. ?9 ]2 D
Dim lLngIndex
0 F; v& s% V1 vDim lLngMaxIndex 3 M% q2 Y3 }9 w# m' Z
Dim lBytAscii 0 o8 F1 G, V0 q- p% A) r, i
Dim lLngEncrypted ; e( z1 o: s8 [& y, o8 S4 z( J
lLngMaxIndex = Len(pStrMessage)
# ]. n5 C; H+ qIf lLngMaxIndex = 0 Then Exit Function 9 O+ y6 z4 J+ g$ d+ P
For lLngIndex = 1 To lLngMaxIndex
( x. }- D- V. b6 B. R" i) A) \) \lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 6 }, u$ a% \( [" t5 l: C
lLngEncrypted = Crypt(lBytAscii, PublicKey) 9 l; ?$ R# x2 f) S) i5 S
Encode = Encode & NumberToHex(lLngEncrypted, 4) : Z5 |: v* C4 h
Next ( n  W4 a! d+ a7 y: O: \! t
End Function 4 k8 r/ W3 i- z+ e8 g2 e
Public Function Decode(ByVal pStrMessage) ) Y5 v6 i3 O; P+ V& F
Dim lBytAscii
- y. Z8 Y" f2 h+ U/ D5 DDim lLngIndex
" N) E5 H  F- y1 T9 ?3 YDim lLngMaxIndex 1 b) q! J# m6 `- r/ N+ l0 C9 ~
Dim lLngEncryptedData - W& c2 f+ d! M" }, _) ~) }
Decode = ""
" v" Y$ t* H8 Z8 klLngMaxIndex = Len(pStrMessage)
$ k) l6 S1 G8 H: cFor lLngIndex = 1 To lLngMaxIndex Step 4
" e! D/ s) Y3 r$ ?6 a, E% Q; HlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 \7 ^5 S# {/ H& e2 l$ [) g! M% a
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
" Y9 z6 [3 j" ]! H' nDecode = Decode & Chr(lBytAscii)
3 A& }  \) ^6 E7 v* iNext ; q6 w. d! L; C, B" X3 w6 k/ B
End Function - C  E$ p, z8 j7 k7 x1 V$ \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ) t0 I$ s* }( o
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) ; Z; I2 h! l- e' n0 A2 ]
End Function
$ S) q3 {2 {3 b# _. |0 _, b6 C7 wPrivate Function HexToNumber(ByRef pStrHex) - |! b4 j( N; o% w3 b; I& J: o: S
HexToNumber = CLng("&h" & pStrHex) 6 v; W3 [8 G: k. G9 x9 {' t
End Function
& c4 t: v: L& @* o$ T+ u7 nEnd Class
5 i  b) G2 l& j* P- C0 e+ {/ Qfunction Encryptstr(Message) 7 l8 k* z1 ?& ^( E
Dim LngKeyE 6 m% V5 H: }0 `0 b/ }
Dim LngKeyD : r) ]4 W7 |2 E! B) {9 B2 ^4 h7 A
Dim LngKeyN $ U: ~/ i& Y; V( [' l
Dim StrMessage
7 a) ?9 Y2 Q9 }; G, _9 r8 k4 VDim ObjRSA + E6 {; g% C8 R9 u( N
LngKeyE = "32823" $ {2 }2 Z$ B9 J, U3 U& a
LngKeyD = "20643" ; m3 i# [# R  W6 Z2 E% e# c+ S
LngKeyN = "29893"
: o& I9 u% n7 SStrMessage = Message
& i5 Q  N5 N3 J" [  O- J2 rSet ObjRSA = New clsRSA 7 g9 @" \& m/ ^  @2 w7 x' g1 q
ObjRSA.PublicKey = LngKeyE ; F; w2 C" k0 R- K, _
ObjRSA.Modulus = LngKeyN
2 c# {& ~/ b* }  E: r7 dEncryptstr = ObjRSA.Encode(StrMessage)
8 P( u# o- m+ q6 I/ XSet ObjRSA = Nothing
: K$ N$ F( ^/ T' F, z; c% aend function
  k9 R/ x! z3 K& O) \3 sFunction Decryptstr(Message) 4 _! j4 H6 U. }0 c' g) `
Dim LngKeyE - i9 o$ T# l6 f7 D3 W  Y4 s+ ?8 h0 h
Dim LngKeyD
" s5 t0 t- s' a/ B- O; g* ^Dim LngKeyN # `' A% e, o! J( t4 ~5 D1 v/ [6 J
Dim StrMessage 4 T9 L- W- r, V6 R
Dim ObjRSA
! Q, `. ~; D7 uLngKeyE = "32823"
6 a+ ]8 N& ^/ V8 s. `6 _LngKeyD = "20643" 9 V1 e0 J" O& ~0 [$ E; X  I
LngKeyN = "29893"
3 @/ V5 M; w$ g0 H) K5 Z! G4 S  ~- Q$ rStrMessage = Message 8 Y  b# g. [( C  P
Set ObjRSA = New clsRSA # j2 _% z/ g8 F5 W
ObjRSA.PrivateKey =LngKeyD
/ J; P5 x  T# w, S2 W- @. AObjRSA.Modulus=LngKeyN 3 d* U" F' v1 Z$ u
decryptstr=ObjRSA.Decode(StrMessage)
$ l# I& y" H+ R8 [/ l5 U$ dSet ObjRSA = Nothing ' S& Z6 b3 w) v( Y/ H9 d
end function
  @$ m( k& }  _" e, L; p% k%>
2 I3 |5 n! u. N# ]3 Z/ d  T0 O) B===============================================/ p5 S: d: u; u& G3 A
7 t+ G/ O$ e* _# x7 t& ?2 W
还有一个用于测试这段代码的test.asp
& @/ Z$ V! q# a( v: ^5 S有兴趣的自己搭建个IIS测试下
# A# M1 ^! [, q4 A5 D5 a9 W* m<!--#INCLUDE FILE="RSA.asp"--> + T( Z% B+ Q8 w7 W3 Z
<%+ X7 _) ^/ V5 K. s; W: S
function Encryptstr(Message) - b; Q+ Q  j5 T4 v* _7 L
Dim LngKeyE   p4 o* h+ o: g( \0 r
Dim LngKeyD   i5 q* w1 |! E$ d. V
Dim LngKeyN / K8 b8 `% d) O- F2 {; w( F
Dim StrMessage
! M: ?( w& `" l$ ~Dim ObjRSA 1 O+ {# m0 v+ }$ D3 \
LngKeyE = "32823"
! ]3 L/ o; m6 h) t7 uLngKeyD = "20643"
. C  {& [8 i; B; HLngKeyN = "29893" 0 m4 Y/ m5 Z; N9 P1 k
StrMessage = Message . T9 V) K# Q: j" Z& Z
Set ObjRSA = New clsRSA
/ P9 `0 ~$ J! H: ~& _5 oObjRSA.PublicKey = LngKeyE
) A- `' a' d' V$ _ObjRSA.Modulus = LngKeyN + _' M5 p$ c0 A. n8 p% v* a
Encryptstr = ObjRSA.Encode(StrMessage)
+ ~6 `3 Z  Z7 l/ QSet ObjRSA = Nothing : T4 {4 Q8 F2 \* `1 Y1 b& \
end function / Z) h# ?2 e+ S" y7 d' u) {
function decryptstr(Message) 1 \2 N! e" K9 B) K
Dim LngKeyE " E5 Q5 Q5 g8 f0 D' Z- I. Z7 Y
Dim LngKeyD 6 n2 g1 x5 s+ P8 i& X0 v1 F& ^- t/ _
Dim LngKeyN 0 u% S$ K0 h" g: c# J3 U. E% o# v% j
Dim StrMessage $ D/ \3 T) A+ [3 c
Dim ObjRSA
! Y2 R' x6 {8 ~4 @LngKeyE = "32823"
1 Y4 u* k+ h0 K* H; s4 n8 [2 q* mLngKeyD = "20643" 9 S+ F$ O/ |) {; L0 y
LngKeyN = "29893"
! M, O# b, W: d4 o  z$ v7 y6 DStrMessage = Message
( U- ~/ t2 k6 a' kSet ObjRSA = New clsRSA 2 `) J" k3 `4 r: K# s
ObjRSA.PrivateKey =LngKeyD
) q7 c6 s2 h, T% SObjRSA.Modulus=LngKeyN
5 I9 n* `1 @1 `. O. v+ L& Rdecryptstr=ObjRSA.Decode(StrMessage) # m! G; |1 |/ g) O4 O6 k" E$ m
Set ObjRSA = Nothing   h) |  m- f% S1 q& `5 \" M
end function $ y. Z$ }, E  ?
dim last,first
, v% l( M1 [' X7 ]+ ?: P) k7 dfirst="!@#$%^&*()" + t! M- x& ~, ]3 [& }7 T+ E* ~& N/ D
Response.Write "加密前为:"&first % x2 ?$ Q- a8 U# p% N$ x
last=Encryptstr(first) / e# S, S; P0 U1 f+ e- y8 O) T0 w8 R
Response.Write "加密后为"&last
! H- d4 M4 ~5 ]; E1 T3 h; Q6 V9 G8 mResponse.Write "解密后为" &decryptstr(last) 7 H1 P- T: w9 {0 U$ I4 W
%> ==============================================7 K$ m7 T8 _8 \. C
剩下的就是字符的对照表了
5 y7 U0 x6 w1 ~5 r  ^===================字符集================
& {1 c  ]7 B$ X" q4 W+ ^* q  @1_____6EBB
5 i! c, p+ D5 {2 V3 S2_____5C1F1 u/ K+ e8 Z! t* ^6 ^  p) q
3_____4D75
) A( `6 w# `' b3 j; ]4_____26CC
, t7 @. T. _" \4 J- }5_____4F88
+ O- J% ?# p. O5 X& F' z; L4 U6_____3F4E
4 f+ M* D% ?# V3 G7_____0A9D
: D2 `) I5 }4 F% r2 J8_____1A1C; J0 X/ n' g. a* U- {0 `
9_____6D20
3 m2 M8 c4 M- i, j0 _0_____1089
3 C4 I7 ~5 c+ Z- l: s- B* ]a_____0F3E& m/ q  I. P9 s2 \& Z! q
b_____3159. A% I5 ~0 ^( g3 W: q! K( z
c_____3517
9 a# A1 A3 U: k% V3 Pd_____419C
, {" G5 i, X3 Z7 a6 s! K, Ge_____615C
0 I" A; v$ v% X6 o' n! ~9 Q. zf_____556F5 T. d- r7 s5 q( D
g_____2B7F
8 r6 U. `0 y( Z2 A8 Qh_____0F9C
5 v! u# |5 U7 H/ Li_____00FA
# r9 L* d* b' E* }9 {j_____5A503 j, Z4 P1 ?8 e6 {! c/ `
k_____28505 f5 X9 d* \6 y; K1 L. `( o
l_____3E7B
9 F6 m' {, F" W) G. z3 ym_____71C5
/ t) e5 {  b% \0 g8 B' vn_____1FC8
3 V$ }& f$ f, C' X# E1 ^+ C! Uo_____74C1: J. u. E' t" L! C% V0 W9 g5 `) Y4 _
p_____5FB8
" \$ p( N5 W+ Y8 M! h1 n; w, w, Bq_____6085  `" K( D4 P! j5 G6 l; z& \7 C
r_____3AC4$ x/ W0 R' b# T( Z/ M
s_____2F50
! r* u7 x1 Z' h7 \2 ]! h0 F+ wt_____36F8
: y2 R# A1 p0 y2 g; h9 Q' Lu_____7010" }! z2 `% Q2 L, B. z, b
v_____0B42
6 O0 g( ?2 Z, v- a/ D" xw_____1C7A
3 |$ Y2 {/ Q3 e: r9 }$ O. |x_____16F8
4 D( y9 T+ z/ vy_____2EE7
$ J" k% E4 h, Vz_____5CF3
) n2 h' V# b. b!_____6233/ ?, f; G: m0 [: b
@_____3A450 s/ p  G& O% |9 b7 o7 V" f3 c
#_____2291
4 o; X3 k! n4 J5 G, \7 @$_____5D5C; T- w- p9 t, b9 r$ K/ v* f' k
%_____09B9
  Y% M8 Q* [+ W3 K% C^_____43EA
2 i2 A3 K  W: g9 H, y&_____62B9
7 e, N! O( R( _' N! C8 P0 c9 k*_____6301
' T, H, D) k& N/ o, O. V(_____46594 {- c7 n6 U/ F7 U4 ^1 p
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表