返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
9 J5 L' O9 f. C, f原始出处:http://www.3ast.com.cm
% v+ }6 Y. s0 x: H  K" u; V9 k* C/ i2 L2 C% O
! f/ [  n# @1 u看不懂的直接绕过
2 W* V' a& O# B# N加密前为:hwy123456
' Y* I" k7 N) G% ?* f0 U加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E0 Y7 ?" q% m# b' w5 ~
8 k" ?3 @2 D# G! ^$ {5 r
============================================
; F: U5 u# g8 Z% k上面是当时自己校内的心情。现在已经解破出来了,分享给大家& u4 F1 {" S1 |5 {
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
; h2 ^8 s: ^5 T( C3 b6 F以下是RSA算法文件
  T+ j5 L2 h( u  H4 O, ?: S. w/ G2 S2 |! l/ i* s7 v
文件名RSA.ASP* [9 w9 }+ N+ i
===============================================$ C9 I+ w/ l8 r
<% * ]+ u! M% W* r! k6 [4 l
Class clsRSA
# }  V3 o7 a6 T! [7 r; a3 W5 pPublic PrivateKey
& T% a+ o4 @& @9 X4 q) PPublic PublicKey
; h/ I9 M# S3 p/ o3 a, @Public Modulus
& o! `* I. v/ e5 y5 p+ l/ C! {% v2 r$ NPublic Function Crypt(pLngMessage, pLngKey)
2 }  v$ V; S% x( p% iOn Error Resume Next . H3 W7 w& @. L. L
Dim lLngMod
' A9 }. [9 `1 ~! F7 E, D, |0 FDim lLngResult
& N4 d4 y! Z/ s( x0 A6 FDim lLngIndex # M7 }6 a) e3 y) ~0 h1 d, s
If pLngKey Mod 2 = 0 Then
0 Q* T- i( ~6 I" `+ BlLngResult = 1 9 P: c8 @  C) D. Q
For lLngIndex = 1 To pLngKey / 2 / Z: E$ H  |* P
lLngMod = (pLngMessage ^ 2) Mod Modulus : s* |0 D! g4 T; k& q
' Mod may error on key generation
2 L4 V# r- @# k+ elLngResult = (lLngMod * lLngResult) Mod Modulus 1 x$ V. v8 U% X" Q
If Err Then Exit Function ( b0 k+ x+ n, q0 d8 Z! j* e, U
Next
) s5 E( D, Q2 d" h/ V4 f; @Else 5 Y0 p2 N/ U% h8 O. `4 w
lLngResult = pLngMessage 1 o$ i- e4 y: Z* U- L* O
For lLngIndex = 1 To pLngKey / 2 1 x7 W, U8 n9 B5 ^# l
lLngMod = (pLngMessage ^ 2) Mod Modulus - |3 W4 T3 [% C' @* _* o3 L: Q2 P
On Error Resume Next
6 T1 o. e( |7 o$ j6 v9 T* S; o' Mod may error on key generation
# p5 Q. q% p  j: |. ilLngResult = (lLngMod * lLngResult) Mod Modulus - t; i5 I  ?' A9 i& l3 b
If Err Then Exit Function
- q$ @; k" _$ H5 f! F* bNext + b2 M6 m! `" m- z- Z9 `* y
End If
, C4 c' x  J5 a6 p7 [1 ~# \( XCrypt = lLngResult ' p) ~! b& i: l0 \/ T* f0 ?5 s
End Function
5 G" g; v  w  q$ N
% k- Q5 S$ x* l9 N. X2 O/ W) v* P5 fPublic Function Encode(ByVal pStrMessage) 9 P( N/ F! e7 z; K
Dim lLngIndex
/ j: }8 Y% a2 F$ e0 P+ P6 h- l5 jDim lLngMaxIndex
) w3 O% K: a- x+ q" \$ }) ]% \Dim lBytAscii
1 {" |4 t8 }& c# s) ^4 w" y# QDim lLngEncrypted * m3 n" o/ V' C0 t) p2 [2 d8 |
lLngMaxIndex = Len(pStrMessage) 1 j8 l; ]! a8 U9 A; }8 k0 Q
If lLngMaxIndex = 0 Then Exit Function 2 y# b3 a+ W2 C8 P: u
For lLngIndex = 1 To lLngMaxIndex 8 J$ p3 L9 C& A- s
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ' D# j3 A7 q/ X1 `: T
lLngEncrypted = Crypt(lBytAscii, PublicKey) ) L8 ~2 ]  Z" |, y- J
Encode = Encode & NumberToHex(lLngEncrypted, 4)
, T5 V: Q6 {# WNext
8 c# [* ]# b9 t  ]+ }End Function
8 n/ j& Y" x7 wPublic Function Decode(ByVal pStrMessage)
+ K+ x% N: {; v2 P+ R& WDim lBytAscii
' V* `7 a2 K" b" R! n; Q0 IDim lLngIndex ) ^4 O- N3 q" N( z3 X
Dim lLngMaxIndex ) H) U! s# i6 Z
Dim lLngEncryptedData - a, w7 ]% Y! N' \$ E! ?6 \. f
Decode = ""
9 [0 H) }% |. g, a$ t: g* x7 ilLngMaxIndex = Len(pStrMessage)
1 x# S$ ]' s3 l$ ~: N5 O( WFor lLngIndex = 1 To lLngMaxIndex Step 4
0 Z8 \- f" c, N# w" T1 \) s; HlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ( H. Y% ?. W7 f- i7 x0 j: v3 ]
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
, P* o! j8 ?! M0 U8 `* T& XDecode = Decode & Chr(lBytAscii) , g% `: V# Z# j" w: c
Next ' h! @$ M  Z. I& k8 ^) ?0 n
End Function
* Z. R6 `# |8 N& p2 ]  tPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ! J* ]) K5 n5 V/ b3 `$ Z4 L
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
/ }- Q# G* Z4 w# n$ i  j3 xEnd Function % P+ q' R* s2 ]" q( I
Private Function HexToNumber(ByRef pStrHex)
) h  {) `3 H# J9 \+ {" y/ yHexToNumber = CLng("&h" & pStrHex) 5 Q0 d' W: F8 N0 ]2 j
End Function
5 L; J  d/ [" G" ]: [End Class + A+ H! ?: {& u6 F. X
function Encryptstr(Message)   Y2 U0 L8 d  U) O, {6 \
Dim LngKeyE 0 u, U2 _' l" U8 ~* C
Dim LngKeyD . ~  X% R  g+ o
Dim LngKeyN " J: q# ^7 D" A, \% m% t6 |
Dim StrMessage ' x. E3 d8 _: Z# z3 |* W  V
Dim ObjRSA + D! p0 u* O) T+ W
LngKeyE = "32823" 6 U% N5 \1 ]% O8 ]* s
LngKeyD = "20643" $ A* {, l6 L2 \% p
LngKeyN = "29893"
1 c- H* |) H5 ~* g* E, d# s" KStrMessage = Message * {* b! C3 W3 w! N6 ]( x" B
Set ObjRSA = New clsRSA , D7 ?& ~4 c5 Z+ \. a) P4 N7 c* F
ObjRSA.PublicKey = LngKeyE + z/ Q$ Z$ Q: K
ObjRSA.Modulus = LngKeyN : G$ S! ]3 \: i
Encryptstr = ObjRSA.Encode(StrMessage)
' S: G7 X7 }7 V, i2 c7 J( USet ObjRSA = Nothing ( z/ o- N7 L8 e( O7 \. ]
end function
6 Y; K$ w% G* l: J" M/ ~5 E2 L6 h; EFunction Decryptstr(Message)
. O- @4 O- A( h9 S) y$ N5 u# |. \9 ~Dim LngKeyE : \+ v1 {9 P! U% j( b- c; j+ Q
Dim LngKeyD ) @1 l4 W8 ~& u! C' M
Dim LngKeyN 6 \$ C$ O# a% M7 V2 l
Dim StrMessage
# Z# X$ p0 w' gDim ObjRSA ( x' h/ k) Z+ Q0 l& b. V, H
LngKeyE = "32823" 3 P* v8 R# R- C% Z+ M; K
LngKeyD = "20643" ( U# R8 o) j- ~/ Q; G
LngKeyN = "29893"
$ `1 u, U' G. @- w6 W! e$ [+ qStrMessage = Message
- r) o4 ]$ m3 NSet ObjRSA = New clsRSA . L. [, }8 I5 T  E
ObjRSA.PrivateKey =LngKeyD ; d, F! |& k6 O, e
ObjRSA.Modulus=LngKeyN
( ?6 N4 t4 }9 l; Q+ [4 E/ idecryptstr=ObjRSA.Decode(StrMessage) ! |; M7 I8 G% y* p& j
Set ObjRSA = Nothing
8 N8 Q, g- @, }6 ^) [! x- k: eend function
8 A0 X& r4 M: X1 G7 N9 @* J; v%>% V4 u4 _5 B6 \% Z
===============================================
. U6 k1 p, {; z  d/ g
) M% m2 y; e! [5 W9 }还有一个用于测试这段代码的test.asp3 ]4 _7 f) ^5 c) f# r9 U
有兴趣的自己搭建个IIS测试下9 T& h5 B- ]0 F0 t9 ^8 ^5 V0 B9 K; C! m
<!--#INCLUDE FILE="RSA.asp"--> & e6 f# o" l; a* M
<%
2 N9 J% r7 \: B7 Wfunction Encryptstr(Message) 6 {3 I1 d0 p1 S0 N$ z  X( }4 E2 l- t0 B$ C
Dim LngKeyE + F) R5 ?. b8 A1 k& @& n
Dim LngKeyD
( \% k1 |, B! z7 PDim LngKeyN
. C: K. W0 ?2 C* h9 z1 \7 w# `Dim StrMessage
+ |7 c4 o$ A# V" ]6 `Dim ObjRSA
, N1 o' y( P" X+ }9 z! Y( A+ m. nLngKeyE = "32823" % ^. ]. y4 f! }* {. `4 K" T
LngKeyD = "20643"
5 R' c& E! V) I2 U, oLngKeyN = "29893" . L. {  b, S, `4 B, L) U) l
StrMessage = Message / I2 A6 Q2 _3 b3 f! c
Set ObjRSA = New clsRSA
( u" f* F! b- }- y2 D8 E/ LObjRSA.PublicKey = LngKeyE
: i* H. s3 ~0 ?& iObjRSA.Modulus = LngKeyN
' `  W  _9 e$ i; q5 x6 K5 Z5 `Encryptstr = ObjRSA.Encode(StrMessage)
% D+ g8 o2 i* D# xSet ObjRSA = Nothing
7 l+ W5 F  w1 M6 }end function 4 I$ t) T& G& b+ j) J. t! c
function decryptstr(Message) ' W0 a" u0 \! t2 D# ^
Dim LngKeyE
  d  W0 `- q/ n: i( h$ j8 QDim LngKeyD
; D' S& L) M+ w$ k6 PDim LngKeyN
& T% p% J; z$ L) u) ^Dim StrMessage
. Q$ D# d) W$ Z; bDim ObjRSA
" m2 g" j# L' _& T) |- bLngKeyE = "32823"
9 G7 M+ n4 G; w  Y' T  NLngKeyD = "20643" + ]  D3 E3 X1 x
LngKeyN = "29893"
+ l$ t7 y9 Z0 _# sStrMessage = Message
( v- E# Y- T  W: P6 n: `  mSet ObjRSA = New clsRSA
3 ~# B8 L* d" [1 q5 `ObjRSA.PrivateKey =LngKeyD 3 R3 T; h) n$ h; S- K
ObjRSA.Modulus=LngKeyN $ m; r% L$ h1 [7 P6 f. u, E$ J
decryptstr=ObjRSA.Decode(StrMessage)
" Q" P' k8 g8 [; HSet ObjRSA = Nothing
  k& Z- V% Y0 |( ?% Oend function ' I& B4 x! D- [* w
dim last,first
5 E+ m& n* a: _: i1 i2 r8 R) rfirst="!@#$%^&*()"
& F8 [( s2 T! g' @) y. yResponse.Write "加密前为:"&first
' B3 o8 C* |) k1 `) F% a6 glast=Encryptstr(first) " Z  E  C" Z6 D! S" f1 M) [/ c
Response.Write "加密后为"&last
: \+ d1 e9 M/ t5 wResponse.Write "解密后为" &decryptstr(last) # m' v6 Z( h2 L9 L1 o0 `, d
%> ==============================================
/ y7 M5 t' z! ~* ]剩下的就是字符的对照表了: j$ }- s) E( j3 ?  _
===================字符集================1 e) @" c' R5 P! A% k
1_____6EBB
7 a2 z( F. U9 _" J  i2_____5C1F
5 t' U+ l* ~' B3_____4D75
: z7 S6 x6 ]! |+ e, J' Y* U4_____26CC3 y( J" _$ F# i( G: T4 i
5_____4F887 M" j# s) S1 o6 {. H5 r
6_____3F4E7 l* q+ L3 `4 }' R
7_____0A9D
- m' X: w2 t8 j; E6 y8_____1A1C6 q9 p/ G. D& D) N1 ~  k! a. Y, i- x
9_____6D202 q: {, P  T: v& {) C
0_____1089
' ]! P) M; [& j: _, S. ~a_____0F3E
: T4 |: u6 F3 p5 xb_____31590 X$ C" R0 }$ w1 {1 N
c_____3517
8 a% _# l% N; U% l, Jd_____419C
4 S& q1 s  c7 x+ U( j2 Ze_____615C1 B; F7 c' @: j! G  A) j3 z
f_____556F' p6 D  Q1 F! L$ S& B4 R7 P" z
g_____2B7F' D: x3 L/ l+ {6 W8 k+ j6 k
h_____0F9C
4 {  c% q# G! l/ B% |i_____00FA2 o9 r: [4 s2 T2 n' ~: l( L
j_____5A50
1 |( V; `- i- v$ v7 `* K$ Qk_____28501 D+ h% H3 R- f' T, d
l_____3E7B
" N6 H. G8 D1 M# o( W9 z! C5 Dm_____71C5$ ?( Z  C) s, Q7 ]* ^' N9 c2 u$ _
n_____1FC8
" `: f- _& b) V7 p& wo_____74C1
( Z" j/ t% l; t+ Q; L7 L( Lp_____5FB8
6 q1 e# V: A1 D' y6 \* R' {8 Zq_____6085$ ~8 j- K* p/ D. e# i/ Z* q
r_____3AC4/ b& _" s  y: T/ w2 Q* ]
s_____2F50
# j' ^8 T" X' S' K; {& [: [% H. Ot_____36F8, z2 `9 k0 x6 M4 s8 [
u_____7010
4 ?; I: x/ w8 `7 x6 bv_____0B421 u1 A$ P; ^6 D3 ?7 Z+ i, K& t, M
w_____1C7A" A$ f. @' h5 q) M
x_____16F8
2 V6 @& d7 x+ Ny_____2EE7
# y( c4 E- q2 Jz_____5CF3
8 d, h( u2 n% ^, h& C!_____6233
" w# l% P7 I2 s1 N& @! l* {* \@_____3A45
* V- T  m8 `+ ^3 i8 l* Y; A+ J% P#_____2291
* ~! g' O" N. V9 G, n6 t$_____5D5C
$ \/ v9 @& M% w' S7 o%_____09B9
! O) K6 ^  g# `4 ?' L! E. b^_____43EA! H5 N9 s  ~" N* W
&_____62B9
2 g/ s; H0 P8 v& y*_____6301
2 g" V0 k$ Y. }9 T(_____46599 g2 R( z! f) }
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表