返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm4 w5 N$ r/ I$ |; W3 g4 s0 r0 {
原始出处:http://www.3ast.com.cm
6 }/ u: u/ @. ^4 J( l2 K
, h% k* }, d+ q" i; I/ @+ a, @' _看不懂的直接绕过
9 P; U9 O4 h; D4 P" l8 `! y加密前为:hwy123456
* z& j6 M2 ?) a( S! X加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E4 f3 \0 Q0 A3 z6 d0 j$ Z5 S" S

4 p4 u% {! O& U% @/ M/ a============================================
$ l9 |$ C0 Y  s5 F3 r上面是当时自己校内的心情。现在已经解破出来了,分享给大家
8 @% Q- n1 B9 J9 T4 V) G也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
2 [- F( [9 f8 U; {1 j6 o% w以下是RSA算法文件
4 ?2 P( H) Z9 K6 b
/ k  x# f: a+ J2 K) }) A- c% _# _文件名RSA.ASP. {( L; h" v( I: |5 i
===============================================
' _. K/ ~7 m; Z9 m, Y<% 5 I7 s% N7 i2 K9 K
Class clsRSA 8 }' p4 O" p9 i- c' F
Public PrivateKey
& J& k7 t5 [* S" u1 |5 V  L6 T5 M% MPublic PublicKey # e. _8 L2 {! W3 N) P4 T
Public Modulus 2 y3 q% v. [  B
Public Function Crypt(pLngMessage, pLngKey) 0 [6 H. L5 K, z$ X% h9 L
On Error Resume Next
& E4 u0 H1 c1 o  Q+ UDim lLngMod 9 q. B0 D: t, ?& z- u0 r' P
Dim lLngResult
3 f9 Y! L$ \# J; _! JDim lLngIndex 4 V0 \% m* ]5 ~+ l, a5 U
If pLngKey Mod 2 = 0 Then 9 Y: e, h# x1 a/ p3 e
lLngResult = 1 9 o/ K* |+ Y- ?- D  n7 m/ S' g
For lLngIndex = 1 To pLngKey / 2 ! j; j9 X& ^& U: k. h( v# U1 h% a
lLngMod = (pLngMessage ^ 2) Mod Modulus % |, I, F. T: K- d3 u
' Mod may error on key generation
+ o8 b3 F, M" Y# Y2 p0 j1 OlLngResult = (lLngMod * lLngResult) Mod Modulus . M/ I# y% Q/ Q4 f: k0 I7 [5 `
If Err Then Exit Function
& D: v1 s+ q* |- z, e& x$ INext
; q# {2 Y, B  h" M7 ?7 QElse   r6 k1 B' Z% F8 j& E/ R% k
lLngResult = pLngMessage
. g9 C( C: W  vFor lLngIndex = 1 To pLngKey / 2 + ?. \. M0 T$ Q5 a
lLngMod = (pLngMessage ^ 2) Mod Modulus
  w5 B- q4 S; q# r: Q5 qOn Error Resume Next   I5 z1 x7 n; _% d6 G2 O
' Mod may error on key generation $ T( j" c) ^3 A5 E
lLngResult = (lLngMod * lLngResult) Mod Modulus 8 d/ L- E5 H3 K# K. H) u- d
If Err Then Exit Function * T+ K; N. ^6 s( b# b4 e- l! `' o0 E
Next $ Y* f- D3 c5 i9 c
End If
- n( ]' `4 [+ |" V# V' |% ]Crypt = lLngResult 9 y4 ?. m* x# y
End Function
8 N0 ^0 p; ?& j, g2 }" T8 \* n+ w8 l4 a9 z
Public Function Encode(ByVal pStrMessage) 4 C: l6 L1 B5 b$ k  f# g
Dim lLngIndex 7 z3 `6 H3 M& t7 s) K
Dim lLngMaxIndex
- c5 B6 J5 h& lDim lBytAscii
( Z! j: \% X0 z+ ?3 r. S8 c" G0 Q. ZDim lLngEncrypted , T' ^2 n2 I+ X. M" B
lLngMaxIndex = Len(pStrMessage)
! ~+ ?' [2 @) ?6 F( K/ P4 T: tIf lLngMaxIndex = 0 Then Exit Function / U9 V4 a* L" q3 O% _# T+ W' T7 N8 G: T
For lLngIndex = 1 To lLngMaxIndex " Y) D; _* T' O3 {" H+ s- y
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ; ~/ h% P. j( _$ q0 z: F
lLngEncrypted = Crypt(lBytAscii, PublicKey)
) o8 i7 M2 I4 K6 M- w! jEncode = Encode & NumberToHex(lLngEncrypted, 4)
6 ?0 f/ k" |& W8 [# n6 O( l/ oNext " C& `- V5 f% e3 O* f5 B% g; G
End Function 5 N8 U, _6 f; p2 {$ U
Public Function Decode(ByVal pStrMessage)
% R, C/ A  a' |Dim lBytAscii : v9 E. i% H- t9 j. I. h
Dim lLngIndex
% t' M$ J$ D" w, U$ I4 _% m% sDim lLngMaxIndex " l6 L  v: B* ^( E% K4 _' L  `0 S
Dim lLngEncryptedData ' H: Z8 h# l% @" l& v. ~9 W7 O1 N
Decode = ""
& I$ x0 ]4 M7 B7 j* Y8 `5 {lLngMaxIndex = Len(pStrMessage)
' n) |: F7 f  w3 \+ G8 ^For lLngIndex = 1 To lLngMaxIndex Step 4 ' O5 z$ `7 m2 K: ], b1 [. K
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 U3 s) b$ N& y, j; [; G
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
5 Y1 Z) c4 b4 \) Z4 s# _Decode = Decode & Chr(lBytAscii) $ L( ?+ K4 n3 G/ |
Next
6 P8 |3 v8 s+ X7 H6 M* yEnd Function
8 B( C+ a6 ^! Z& v5 L; @; I2 WPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
  v0 ?2 S1 o: k! W; d$ G+ gNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
# u. B/ v) N  A8 T7 d: [6 I, ZEnd Function
# X$ B; s2 ]% f# jPrivate Function HexToNumber(ByRef pStrHex) - F! C# ]& P* l1 D# Y& K+ r
HexToNumber = CLng("&h" & pStrHex)
/ ^0 O* m' X; P& \8 R7 WEnd Function
3 M! e, t" v5 y; HEnd Class
: [7 w5 a! t# @1 u$ L" \  U. [function Encryptstr(Message) 1 g$ `. ]1 Y! K/ ?: V) D
Dim LngKeyE ! C; ?' @" O. x9 s( E9 [) X
Dim LngKeyD
! }( {* N7 U7 d  S1 e! e+ C2 @* `Dim LngKeyN
4 f- {! T$ Q2 m' G0 v7 u7 f% HDim StrMessage
# Z3 Z6 c/ T2 Z3 s. w& G$ WDim ObjRSA
" m& `# u; y3 ~3 \2 R1 |LngKeyE = "32823" 8 s5 b' r6 Y. L
LngKeyD = "20643"
2 b) |& H2 I& u/ q$ `. i  DLngKeyN = "29893"
$ \, d2 y* \# |! N& {5 GStrMessage = Message 2 D9 a. i( w( d0 i! L1 x4 n
Set ObjRSA = New clsRSA 7 K, v+ {3 V; F* D; |. Z! h& y
ObjRSA.PublicKey = LngKeyE - w) F$ \1 l% l. e  n* M
ObjRSA.Modulus = LngKeyN 2 c/ E0 Q2 V" M
Encryptstr = ObjRSA.Encode(StrMessage) 8 O2 q5 ]& L9 X) z3 G
Set ObjRSA = Nothing
* p% k3 D: e/ Pend function
$ [" H, @  N" B. HFunction Decryptstr(Message)
4 G- r' [' b: {/ E, vDim LngKeyE
) n4 b& y" ]% W3 O3 gDim LngKeyD
& _$ n$ d, s9 ?5 TDim LngKeyN , G% Q% z) F4 s" J
Dim StrMessage
4 s* Q+ p6 z+ T8 u; ~Dim ObjRSA
* K; Q  }0 `1 Z# QLngKeyE = "32823"
, U% N& E* ^5 G( CLngKeyD = "20643" 1 ]$ u0 G6 C9 H4 x1 Y8 e
LngKeyN = "29893"   {3 e  P: c1 \" k* Y+ ?* l
StrMessage = Message
7 |/ A, w7 L- R& ESet ObjRSA = New clsRSA " D  D" Z# d# ?. q" Y" I
ObjRSA.PrivateKey =LngKeyD 4 s. S# P6 Z" I( v
ObjRSA.Modulus=LngKeyN ; K7 b. n, C1 F0 k! j/ ?+ a6 E
decryptstr=ObjRSA.Decode(StrMessage) 1 G8 q* |4 k7 k2 r
Set ObjRSA = Nothing
4 k, }' }7 [" `/ o7 z# B! _6 |. eend function
9 m; I" E4 ~0 B- _3 k%>5 i& v' ?0 k3 S
===============================================
- h4 G# R  g0 U: G* v# W# q/ T  n1 ^! y( M- h9 w
还有一个用于测试这段代码的test.asp
( B3 b3 _$ r& q' Y1 \5 ~& G有兴趣的自己搭建个IIS测试下
2 f0 C8 v8 d, m<!--#INCLUDE FILE="RSA.asp"--> . [' ~/ n: j  g1 ^
<%
9 \; N: Q0 A* ~5 h7 O# [function Encryptstr(Message)
3 t$ T1 ?/ S& \. H/ G4 tDim LngKeyE
6 _1 V* S% I! E! cDim LngKeyD
8 Z$ h7 a" Y6 Y( pDim LngKeyN
& o/ J2 S- c5 X& ^6 g/ sDim StrMessage 5 l$ L8 n5 t2 M4 H2 d; X
Dim ObjRSA
/ A. P$ I* Q4 p9 J7 i  U0 k6 [" {LngKeyE = "32823"
& H. @' I/ S7 x$ h3 J1 ~LngKeyD = "20643"
+ h7 z* h. G6 LLngKeyN = "29893" ) [! v& I+ b) C( A( l. v" K% y
StrMessage = Message , l$ N" B. r/ D0 v1 c* c8 }
Set ObjRSA = New clsRSA ' s" U0 Y( v+ @# |
ObjRSA.PublicKey = LngKeyE
1 E$ b) P9 S( _7 E. W* {ObjRSA.Modulus = LngKeyN ' q( d3 U4 D1 v
Encryptstr = ObjRSA.Encode(StrMessage)
) P3 Y; D" m% }  U1 r7 CSet ObjRSA = Nothing
" m/ P7 T9 @/ S- K& T; Aend function 5 P. ^3 E; \! S) _( P# K, t- G, i
function decryptstr(Message)
. a2 ], I( @' e+ oDim LngKeyE ' e; C; q2 ?' U7 p/ i
Dim LngKeyD
4 ?8 @/ s3 h2 G. F4 `% ]5 DDim LngKeyN ; [, C! v% l, I4 b- Z
Dim StrMessage ; V- \- D* R, {3 V% Y* e
Dim ObjRSA
+ j9 V8 B0 e0 P) qLngKeyE = "32823"
' Y) Y$ n$ ~  o  A4 E' a- _9 m# ILngKeyD = "20643" " y% G1 V- V7 J; a( d. ?
LngKeyN = "29893" ' x# h  p' q! G+ a+ c& |
StrMessage = Message ! N4 m/ ~& v* M2 p' z5 Z
Set ObjRSA = New clsRSA
4 g8 \7 O; K* y+ P$ ~ObjRSA.PrivateKey =LngKeyD , Q1 a- s/ p1 T- M- s
ObjRSA.Modulus=LngKeyN
) V$ V- a- B, s  ?; |9 J+ hdecryptstr=ObjRSA.Decode(StrMessage)
, x# V$ S* b& B3 v0 d1 zSet ObjRSA = Nothing 4 O  N7 _5 \. v1 i7 L0 i) O
end function ' r' A* w0 Q6 U0 @4 ?& E9 y. v
dim last,first 9 H" F4 T5 h& T9 S
first="!@#$%^&*()" 4 u% W8 p) w3 ]# o* t
Response.Write "加密前为:"&first   j2 N% }2 m/ C% x) g
last=Encryptstr(first)
- F) ~& e$ P& U% f& ]Response.Write "加密后为"&last $ G( A( l7 S3 b: [$ T. U
Response.Write "解密后为" &decryptstr(last) 6 a- G8 u; B2 q( ~4 P
%> ==============================================# V, \) p  T) _6 i) }
剩下的就是字符的对照表了
5 `$ K8 X* B1 g# R+ j6 x. s===================字符集================& s* i7 @6 U% l2 V0 D
1_____6EBB) B7 a. r/ W. e) e
2_____5C1F
5 X  J3 w. D+ f4 `, E3_____4D75
4 h' h! S: l0 c/ x$ N: H9 e4_____26CC
7 \1 D! @" V/ m' k% H7 L5_____4F88
6 ?6 K- P3 G& L- {" U6 I' w6_____3F4E
) ^8 p! I& E  N1 i- L7 m- E7_____0A9D
; q7 v2 k" l. u7 C2 H2 f7 T8_____1A1C
( W0 U6 e+ J) I8 d/ e& _: L9_____6D203 J0 S. }( e( y* |
0_____10894 c. `' k8 K6 a
a_____0F3E. [, L6 |; E! V: M. R6 x- [
b_____31594 [; N" k$ w* r" A: E6 R
c_____3517
; Q, G& e( T% ]" w4 S$ pd_____419C7 P) F6 t( `* t/ \$ _1 R
e_____615C$ D4 B4 t0 l/ J! I# [
f_____556F
1 m* `4 y6 t( ]7 U% ~g_____2B7F
3 n, R" }3 ?7 q+ a2 L+ G( ?h_____0F9C
5 B: ?8 `% w6 t- M& [i_____00FA
/ E1 ~5 C  J5 f7 d# @j_____5A50
* U  d5 N  W9 F$ o; I* k( y6 P6 U  Kk_____2850
5 s( z% c; N3 X" o" wl_____3E7B
4 ]% m6 R. D9 U% i. _m_____71C5$ J. Z# n0 [9 W0 D. H
n_____1FC84 M0 A. i0 q9 e
o_____74C19 K: ]' D' j, u- E: [& S
p_____5FB8
8 }& J  c, `/ [; \1 qq_____6085
7 _1 \0 ?8 D! @$ B. ?0 Cr_____3AC45 B6 r" C/ j6 i9 y2 o3 [
s_____2F502 L1 E0 a2 y: d. x6 n7 }
t_____36F8
9 n5 C+ {4 s) x) f# f& su_____7010% Y/ H* ^, L$ D+ S) v$ w" l
v_____0B420 n. H1 X1 Y; B! Y, X- S$ h4 [/ a
w_____1C7A
/ w  X, i1 ]. j' o, n. yx_____16F8
: K4 a7 J$ @) S4 a6 s3 J* @/ }y_____2EE7
5 W. b, ^1 ~7 q- S1 X- g- n, Tz_____5CF36 I0 \3 f. |4 m
!_____6233
* h8 k  |  V7 P6 P/ @@_____3A45$ \) Z: K0 A5 d/ ?
#_____2291( s3 V' \) S& Z* u/ j; ?
$_____5D5C% V5 M" V2 |* m8 K
%_____09B9
' d5 p: @. I& Z- C! _3 s^_____43EA
+ c% w( Z& q# V& K1 a# N&_____62B9: x4 N  ?; p$ e
*_____63018 K& o: D/ ~0 f: |& f" t) n- ^% q' s, O5 t" n
(_____4659
7 `. Q6 x( u" q7 `4 @; d)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表