返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm4 S( Z. p4 a% G; S" f
原始出处:http://www.3ast.com.cm
% x/ v; i8 N3 t& R$ {  c, G- z% Q4 q* D3 c$ ?$ b' ]. v$ y
看不懂的直接绕过
1 g0 p1 K/ W" B, C7 H( j加密前为:hwy123456: T, Y4 K" \  q$ V7 Q2 H
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
8 P# q9 v2 e9 @3 ^" S0 X9 P1 L6 P7 [& ]' k( z( l1 }4 n
============================================
+ p1 N3 S; c" T1 H3 q5 S  V上面是当时自己校内的心情。现在已经解破出来了,分享给大家/ G: |# s+ q7 A" p) V" `) C+ m
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法. H- p; ?" r( \2 e- y3 N# q
以下是RSA算法文件
+ g, J1 T( O4 ?1 f/ R0 K; O  x' S- U5 y9 U* c% R
文件名RSA.ASP( z* g0 y5 _9 x
===============================================: ^5 c) q, F( F5 f3 V- H/ g/ l
<%
. Z# z/ @! X5 w: u* gClass clsRSA
" A. o- Y* t2 s/ s$ D. OPublic PrivateKey
& V, ^+ S  K# y2 \4 Z" q; ~Public PublicKey : G* S6 s8 K/ D; J" B) q1 y1 X, m6 V
Public Modulus   p. p& b# a) H, I5 X; J5 T
Public Function Crypt(pLngMessage, pLngKey)
, f! {! i0 H1 m6 ]8 K( |On Error Resume Next
6 B6 n3 ^2 z9 t( A3 qDim lLngMod 8 S5 d+ p0 P  X# P' C( `
Dim lLngResult
' e8 v2 ~1 z- p: c1 TDim lLngIndex
4 S  m# Y+ `2 D+ P# QIf pLngKey Mod 2 = 0 Then
6 L9 i, |2 ?* G& K; w  v; e3 d5 OlLngResult = 1 0 u' Q( u, w- b9 R% J
For lLngIndex = 1 To pLngKey / 2 9 S8 p0 X0 A# @
lLngMod = (pLngMessage ^ 2) Mod Modulus
& a% @1 A. Q2 Z9 p' _# J5 \' Mod may error on key generation
( s7 H4 y9 R8 Q& o7 flLngResult = (lLngMod * lLngResult) Mod Modulus
' k" J: @7 {; v; @, e1 S: nIf Err Then Exit Function & |) z& M* }& b( a4 F+ \6 R0 J2 s
Next
1 A# ^$ h3 Z. Z' l- c' n! AElse / r: a3 c2 U* z
lLngResult = pLngMessage
1 w' }4 d9 m' ?# C& b; ]For lLngIndex = 1 To pLngKey / 2 : C9 s! q( o$ l2 v7 C) `% B9 W2 u
lLngMod = (pLngMessage ^ 2) Mod Modulus
) b: d$ X. M+ O4 V% V. vOn Error Resume Next - c3 f- F0 @/ j+ f
' Mod may error on key generation % Q' g; J* c: @- t& A8 [
lLngResult = (lLngMod * lLngResult) Mod Modulus
! O- g0 b7 R+ J9 y: `, yIf Err Then Exit Function & `2 u( x6 t* }/ v! k
Next
: N/ S* P7 j6 ZEnd If ; B6 j0 s2 v" I% _5 X2 V' ]
Crypt = lLngResult 6 T$ d- [2 K  T% h+ d
End Function
6 k/ J3 E/ q! i( A" v+ U* b( ^' d8 ^4 \, X
Public Function Encode(ByVal pStrMessage)
) h5 u# _* y5 g% M$ d( |' yDim lLngIndex
% W- A8 l2 [+ Z+ a+ H* V$ X/ c* \+ k* I( sDim lLngMaxIndex
0 F% D1 s6 @  @/ F9 r) P/ M9 W; aDim lBytAscii
" `) B! l7 l+ z/ U2 z7 j! Z2 sDim lLngEncrypted
0 M; L$ L% P9 x( z9 ~lLngMaxIndex = Len(pStrMessage) & S: w, U! o& L
If lLngMaxIndex = 0 Then Exit Function
$ C/ }$ X8 |1 qFor lLngIndex = 1 To lLngMaxIndex
: T# ]& s# o: y2 ~. k6 T  JlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 3 ?. F3 R  ~5 v
lLngEncrypted = Crypt(lBytAscii, PublicKey)
3 F7 f$ s6 ~) C/ |7 U4 SEncode = Encode & NumberToHex(lLngEncrypted, 4) 7 L6 A- R1 R# B& j/ B% y+ E# l
Next
% b5 ~3 s9 r0 n5 K; yEnd Function
1 T* k' o0 U' W' zPublic Function Decode(ByVal pStrMessage)
, r3 t6 l& G! z+ }Dim lBytAscii
8 B" _, p. r  O8 s- i' y, JDim lLngIndex 5 q! Q) j: B7 k0 J  r
Dim lLngMaxIndex
1 h) u/ y+ F9 k0 H3 [Dim lLngEncryptedData - L* b! B  c$ _8 Z0 N; f6 B$ V
Decode = ""
5 R1 [4 n5 C$ H4 Z' Q  }: elLngMaxIndex = Len(pStrMessage) 9 a& F0 h% `2 P: \
For lLngIndex = 1 To lLngMaxIndex Step 4 " f- X' W- U+ s" R
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 9 p, }3 F% N9 ]* U" v7 l
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
# q* _+ O& B6 P" LDecode = Decode & Chr(lBytAscii) , t4 V$ d: i: }: _4 A
Next
7 M, c) @1 r. s2 |) pEnd Function ; O( Q' c/ o6 C- `) P
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
# ~, k* e+ M8 DNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
: R0 d% w+ G+ Q4 TEnd Function
6 d2 B& P( N0 p2 M" J1 t  q! iPrivate Function HexToNumber(ByRef pStrHex) 8 H0 j$ s# t3 z  i8 a0 p* ?, E
HexToNumber = CLng("&h" & pStrHex) % g! d  H7 y3 J( Q# c( A9 k/ \7 m
End Function
, M& i8 E* J' {* |- y. q# ~; l; tEnd Class & \( k) X5 c: s% s$ x0 f( j. V% ]
function Encryptstr(Message) # _. J4 k" j  \4 z2 f1 g
Dim LngKeyE
2 ~3 v" Q! y, V  @" y' rDim LngKeyD & [& _. t+ \" F( I2 }
Dim LngKeyN
2 n! _+ i, y* F* R5 Y2 NDim StrMessage / X) {4 ?! L0 d/ }
Dim ObjRSA
; `8 Y$ {: H$ n- P2 k3 l6 N; ~LngKeyE = "32823"
/ F" x( t6 y. Q( ]LngKeyD = "20643" ' Z' N  {0 i$ O
LngKeyN = "29893"
& L" \& i  Y% ^7 P( a. N% xStrMessage = Message
* W6 x7 R2 z; M$ n* NSet ObjRSA = New clsRSA
5 j& Q' P6 a/ k9 u2 eObjRSA.PublicKey = LngKeyE ) ?4 B% k% `, Z- i- E8 g
ObjRSA.Modulus = LngKeyN
& C$ U5 N  X& u; L& qEncryptstr = ObjRSA.Encode(StrMessage) 7 D: L) H) m7 O& j; M
Set ObjRSA = Nothing
/ G9 g0 ^/ F, J2 L/ ?end function
& O. t' b4 ^/ _3 @, ?Function Decryptstr(Message) 4 e, G5 i1 y2 w2 Z
Dim LngKeyE + k( Z4 A) E7 g/ j- `
Dim LngKeyD
' V( u+ V# ?1 {) G& nDim LngKeyN 9 l' d( a( h/ t- g9 U4 Z
Dim StrMessage
% l) [2 t& L7 `4 GDim ObjRSA
) w+ h& R; ]8 A, rLngKeyE = "32823" : _6 L: O: z. i' b, g* ]
LngKeyD = "20643" 5 A! I  y# n) v0 Z
LngKeyN = "29893"
" k# ]% p; q& [! _, MStrMessage = Message
. {% g$ O2 v% n3 xSet ObjRSA = New clsRSA * Z4 w. i2 c+ R  ?* z2 V  X) o
ObjRSA.PrivateKey =LngKeyD
7 t6 f. h# K- {+ A8 }* Z) GObjRSA.Modulus=LngKeyN # \* ^5 O8 g2 Q6 N, X! M& |( ^
decryptstr=ObjRSA.Decode(StrMessage)
- @; \0 K; a+ r! t5 bSet ObjRSA = Nothing
! S4 m$ T6 q! C7 Q8 g0 W# E  Y6 cend function
9 b2 L8 m: j# r+ K- V. `% m%>
: b& T3 k+ U1 A# D& N0 M) a' c===============================================
  M- Z4 t- j; l- J) Z( y
; i, H% C6 j/ a+ L0 f: V2 `还有一个用于测试这段代码的test.asp2 O( T. O5 A4 R% X# J
有兴趣的自己搭建个IIS测试下
# m. r; b& e' y. g/ S<!--#INCLUDE FILE="RSA.asp"-->
8 O( u- y, q( ?3 I<%
4 y# t: T! w1 H& x" j0 wfunction Encryptstr(Message) . n$ n4 ?; G6 ~& I
Dim LngKeyE
3 O( B' f/ f7 U- T7 L1 _% tDim LngKeyD $ a+ y: w: }+ L- x2 ~6 t
Dim LngKeyN 6 o8 \! P8 n4 l' E! Q
Dim StrMessage 7 p' I: \, O6 w2 g
Dim ObjRSA " g8 [+ G  X' X# I. Y# C0 }
LngKeyE = "32823"
& `4 N7 Q& N/ `5 D6 o4 k, M# BLngKeyD = "20643"
! i8 O& A" [2 Z0 V- a" m" {LngKeyN = "29893"
" d0 ~% E  k4 [% R2 pStrMessage = Message
( u, c5 s8 r6 @- L# ?3 cSet ObjRSA = New clsRSA
3 b, S. Q* k" y/ yObjRSA.PublicKey = LngKeyE 1 ]# h7 [# v2 V$ a- r0 z( g9 {* J
ObjRSA.Modulus = LngKeyN ; }5 X; P& ~$ }/ f$ ^2 s
Encryptstr = ObjRSA.Encode(StrMessage)
" r  U% k: k1 ESet ObjRSA = Nothing % L9 H; f7 U% Q1 M0 F9 f& m  V' Y
end function ; A( [1 C& p* G. J7 [
function decryptstr(Message)
- C: |/ k* `# @: A' f3 ODim LngKeyE
7 f  [( Z6 G6 o, w+ n* \Dim LngKeyD
: Z' G# Y( M+ |* |Dim LngKeyN % V6 I( g: p! x+ U3 x
Dim StrMessage 1 Z: U9 W  h, O& z9 \$ o; S7 J
Dim ObjRSA
" Q! @6 s- x( A+ cLngKeyE = "32823"
+ T- D% h) n. R8 ?1 z$ M  _" DLngKeyD = "20643"
* f- V1 s; P) q) M- `2 S3 o/ ^LngKeyN = "29893" " ^3 ~9 m6 a# S  a" M& t5 y
StrMessage = Message
( w& z; _, G! @Set ObjRSA = New clsRSA
' q, N$ Q# v+ s7 N5 bObjRSA.PrivateKey =LngKeyD
# c( `6 A! V; J6 N7 iObjRSA.Modulus=LngKeyN
7 a8 \5 [" U6 T$ U8 Xdecryptstr=ObjRSA.Decode(StrMessage) # R* x5 h1 r& z0 }: o
Set ObjRSA = Nothing 9 c3 Z& K$ f5 u( v* a
end function $ I9 z2 z) F. Y9 E1 @) J
dim last,first - f5 m; ?# W1 R, I
first="!@#$%^&*()"
. C% U6 p4 n7 RResponse.Write "加密前为:"&first 1 a2 `7 H% z# \7 [5 G2 p9 c
last=Encryptstr(first)
; Y. j, t. e0 w- x( yResponse.Write "加密后为"&last $ q0 B2 _  `5 C! s0 [! U
Response.Write "解密后为" &decryptstr(last) 6 R4 e# j9 V& i" e# t* T
%> ==============================================' e  t8 I) h, B# [
剩下的就是字符的对照表了
5 [- p6 x; r9 z% ^9 h===================字符集================- x) m- N- ]  m# @
1_____6EBB
+ q6 F* |9 N. [/ _4 b$ F/ ^2_____5C1F2 x5 v6 K% E6 b
3_____4D75! g) l- ~, |" u+ _2 ?5 ~
4_____26CC, k1 `) v/ c' i0 D
5_____4F881 s% y) n1 Z+ f0 Z& r5 y. ?3 K
6_____3F4E2 H! \# q( q: g$ J+ G1 h
7_____0A9D. _/ ]" v: A5 [% g" f
8_____1A1C
+ Q& m# R' ]' n8 D5 d9_____6D20
. I9 ?- I+ U/ p$ C) Q# R% s0_____1089
9 s' ?) }1 F$ g) m2 V. ^2 \a_____0F3E; g0 F. ~9 E. [% k
b_____31592 ]* o: s6 A2 s7 k  ?5 J( z
c_____3517
& s5 r. r( F) ^; {# xd_____419C" q% U, k/ O3 u; M4 n' d
e_____615C
1 J! I5 r1 ?* |0 G) w% Pf_____556F
! ?8 ^( F8 t$ h% O- Pg_____2B7F
1 q5 `; f# y  T" _) Eh_____0F9C
% I' B7 D) [( T( w* s1 Xi_____00FA
3 G5 |% ~2 y9 F# b: |j_____5A50& G7 B/ E& z) R* A: ]8 y
k_____28502 J5 t6 D2 a; b5 [; }
l_____3E7B
* @" C' i8 u0 ?5 z1 h: Km_____71C58 _6 Q/ e' B& Y" _5 o2 J8 n
n_____1FC8
* c8 N1 @2 D/ j6 |3 So_____74C1
9 S* i. c3 d7 \# J/ o' S1 [3 q4 sp_____5FB8& [' C) v* X' Q, K/ r
q_____6085& I9 {1 y0 M3 D% f- N
r_____3AC40 f4 o" P: a! u0 b
s_____2F50
) x9 ?. I: }4 ]4 n. It_____36F8
" h& b/ D% {8 n# @8 Ou_____7010
' F9 F: ^; j' Xv_____0B42( x; i; I! G3 ]8 F' J8 J. w
w_____1C7A
8 s& O8 A# a# K4 K* M5 e+ Qx_____16F8/ x5 B7 N/ Z8 i# d
y_____2EE7
. D- |: C: h- N, ~; Nz_____5CF3
6 g. M& S; O; i* H!_____62334 m8 j* i+ ]/ Z0 Q, j
@_____3A45# E9 [) f, {- j1 D' \2 ~
#_____2291$ n$ L; `: F, r( i
$_____5D5C
; j- ^, P- n' u' A! K: D+ X%_____09B9
; M! I6 b3 n8 l% n$ E$ j! B) D$ }^_____43EA) {, L* d; ?) V% J" [: `0 |' }
&_____62B9
$ y; z+ P4 J! R0 b: X, _: \* v9 J& H*_____6301
  u4 C+ X4 K- V8 c(_____4659: k, b+ J/ G, m% C3 Z7 }
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表