返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
! `" ^2 k. W( U( {$ f原始出处:http://www.3ast.com.cm
* B: {) q0 X. w/ `3 j" G4 v! n2 f7 Z0 ~& ^  f! H
看不懂的直接绕过% |* ^: P9 z- E, D& ?8 `: n
加密前为:hwy123456( V2 U1 w$ W! H3 w1 Y
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
3 @5 V. V" t3 t6 n8 k! h7 S! Z" N, [- p1 L! b7 {
============================================$ e* j9 z- {; @" {( q. L1 ~
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
  `4 `5 v" P* M" g8 d也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法) {2 C4 P, K% I
以下是RSA算法文件
2 A; O. R9 [; X. A" u& Z& C, x( e/ m" E
文件名RSA.ASP
, c6 k* K* C& y1 z; F/ H: s8 m. [===============================================$ Y" y& e/ J$ U* N& ]0 _8 S, |
<%
( P8 [2 m+ e, V/ v/ {& }4 F; `2 BClass clsRSA / T! A1 |1 a0 a" D$ k  S, E
Public PrivateKey
* b( F; v1 C! Q- s# gPublic PublicKey   o2 P& Q% D2 Y! j% r; l
Public Modulus 8 [# m3 G. v) r* t
Public Function Crypt(pLngMessage, pLngKey)
* Q8 f- M6 p0 p6 q8 V8 V2 oOn Error Resume Next ; @9 U6 {6 g7 s2 b
Dim lLngMod 8 |: j: O8 K# G/ f0 {+ _
Dim lLngResult & \1 \5 H! Y$ p& U4 n, O& a3 U: y
Dim lLngIndex   E1 y0 G% `! H8 ~( R& o
If pLngKey Mod 2 = 0 Then
+ a& u( Q' s5 L: K4 IlLngResult = 1 + h! ]" f5 a, o3 v
For lLngIndex = 1 To pLngKey / 2 2 w! Z, S' Z- Y( l) b' ]
lLngMod = (pLngMessage ^ 2) Mod Modulus ' t* L  k, P& I6 g
' Mod may error on key generation
9 X) w3 I+ Z6 E- R& E9 glLngResult = (lLngMod * lLngResult) Mod Modulus
" x7 |1 J7 B* J- v; _' }/ v8 rIf Err Then Exit Function 8 }4 u) g8 Q& f1 A2 u! r5 Y* c8 o" Z
Next
: h7 h! z2 _2 s7 E7 A+ RElse 3 y/ X8 @$ L7 E( d. b# j9 M( \3 K  |) h
lLngResult = pLngMessage
; j4 B) ?) |6 d# A% l+ ?# |; MFor lLngIndex = 1 To pLngKey / 2 7 {# _: x0 i+ f" F" I
lLngMod = (pLngMessage ^ 2) Mod Modulus
, w9 X0 d. P# ^$ M' ?* K4 c5 @5 @On Error Resume Next
4 k, M# r- O* t6 R' Mod may error on key generation 5 m) n9 A3 f0 R) E9 D7 _/ `
lLngResult = (lLngMod * lLngResult) Mod Modulus 4 k$ b. @# l+ _4 S; Q4 {& W
If Err Then Exit Function ; X) L6 y. y: D0 \9 l3 M2 M3 h! B8 j
Next
+ R: n& Y4 O: J. R( |: j$ @7 q7 M$ h, XEnd If
/ z1 K, M$ T9 n6 uCrypt = lLngResult
6 Y% |9 {7 u! ^0 z& ?# cEnd Function
: v, @$ s- F( P% n
+ X2 t' {% X) Z6 r  C0 t* nPublic Function Encode(ByVal pStrMessage)
9 _0 q5 f; b6 J3 U3 ZDim lLngIndex
# \$ Y, L- s& X( I% X# WDim lLngMaxIndex % O7 P. V2 k  |
Dim lBytAscii
2 @  {& w" a5 v) t: Y/ aDim lLngEncrypted 8 o, @/ r! U4 d+ ~" ^
lLngMaxIndex = Len(pStrMessage)   V5 x  w' M  J0 b: ^! P
If lLngMaxIndex = 0 Then Exit Function # ^$ A; i- X( P; p
For lLngIndex = 1 To lLngMaxIndex
1 S' [+ _$ G! ~7 ~# I0 clBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 5 O: t( Z7 f* F. D) Q! N4 u; {
lLngEncrypted = Crypt(lBytAscii, PublicKey)
- m* J5 d. n5 C# |3 q9 fEncode = Encode & NumberToHex(lLngEncrypted, 4)
! Y  a# i/ Q7 a2 V7 T9 WNext 5 m4 K0 h" z9 h5 ?# }' F
End Function
7 Q) O2 }* H3 ^% }1 k9 {9 w7 iPublic Function Decode(ByVal pStrMessage)
2 E7 h0 E; h2 r: f( E7 \& J. ZDim lBytAscii - c1 b$ ~9 e3 k& |
Dim lLngIndex ' R7 v; K' o' G3 K8 Q
Dim lLngMaxIndex , N* ?+ h0 e6 p1 o& e
Dim lLngEncryptedData 9 e- p/ {1 U; \0 T9 w/ g
Decode = ""
5 x/ P& o, B- a* s; g0 @  klLngMaxIndex = Len(pStrMessage) 7 i2 ]' \4 ~" O* I
For lLngIndex = 1 To lLngMaxIndex Step 4 + f4 r6 R4 G0 x9 ?
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   \: b9 m5 L- w9 r" E- [
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) : l; U: o0 t3 a4 H0 {6 s% c5 m
Decode = Decode & Chr(lBytAscii) ) M; @( e9 i: o& u( d
Next " \4 |0 A7 v% o+ W* W
End Function / G+ {" x: g6 A+ d, H6 F  ~* E
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) % h, ^1 @2 F$ |; W: j8 F3 {& V
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
7 W& b5 l/ M8 q# E6 R3 I; iEnd Function 3 V& {0 ^9 f3 T
Private Function HexToNumber(ByRef pStrHex) : A0 R1 J" ]* u
HexToNumber = CLng("&h" & pStrHex)
/ _% x7 r* f- h/ ^  K( z# bEnd Function 7 o  \1 P% N/ m
End Class 3 j* a$ G! b6 W; m- P7 t
function Encryptstr(Message)
8 [( n5 l. _# t! a- T3 w4 uDim LngKeyE & v% a9 `7 @1 ^0 b
Dim LngKeyD
% @# ^" S3 Y$ U5 J3 |2 y& ~Dim LngKeyN
2 O0 n, B! _% f* Q* ^" n% D0 X; hDim StrMessage
7 k2 z) f; E4 W" R5 ~  iDim ObjRSA * m  Q2 k) m6 R- E+ |: T
LngKeyE = "32823" ( u0 B; `# y8 `
LngKeyD = "20643"
4 ^: p  M' z' Q* k& XLngKeyN = "29893" ' y6 z! a; l6 X$ u5 J: ?
StrMessage = Message - w* S2 u8 X& u
Set ObjRSA = New clsRSA . G9 N$ a$ D& A2 C9 f% J$ J5 _0 H
ObjRSA.PublicKey = LngKeyE 5 a8 f2 Q+ B- X0 j. {8 N
ObjRSA.Modulus = LngKeyN
# F( I8 B/ @8 Q; I% O' n6 DEncryptstr = ObjRSA.Encode(StrMessage) ! ^' R, ^0 G% I9 L2 P. I
Set ObjRSA = Nothing , p6 \! |! Q1 }, n; o
end function
- l$ A! x# C) ~Function Decryptstr(Message) ) l5 G9 b# q; F
Dim LngKeyE # r' z+ C: m$ B# J3 s( W
Dim LngKeyD / N, [7 s/ s# {) W; u. ]' G
Dim LngKeyN
8 ?, E- N. f9 R) h3 aDim StrMessage
% z6 }6 ^& G% k, e6 \Dim ObjRSA . f" M. k0 V$ z
LngKeyE = "32823" 1 F* S1 q+ T$ P0 \7 B8 {* n
LngKeyD = "20643" . r9 L* q. o/ X+ L* R6 \" ~# u
LngKeyN = "29893" : @/ V; Q: H) X4 H* {
StrMessage = Message - ^1 F$ G$ P" y; C! C
Set ObjRSA = New clsRSA * {5 _5 G4 F: p
ObjRSA.PrivateKey =LngKeyD   |% X" b1 ^7 }  _$ l6 I
ObjRSA.Modulus=LngKeyN
& ]$ s0 W" N5 g7 ?7 v' idecryptstr=ObjRSA.Decode(StrMessage)
- B' J. t8 D3 q- G3 bSet ObjRSA = Nothing
" o/ V9 p" s3 P6 N- pend function $ B$ T) H; g$ h7 ?5 D* R/ m% T1 ^
%>- {9 ?4 g% {4 F% \
===============================================7 N4 M0 E& q3 m

/ N9 W% F% p7 r1 j还有一个用于测试这段代码的test.asp
: ?2 }9 O# X/ n+ X7 P, m( i有兴趣的自己搭建个IIS测试下# T. i. s! i: e9 g4 d2 g! |
<!--#INCLUDE FILE="RSA.asp"-->
9 V5 A4 n0 m  G9 `9 v<%
6 |- m9 [& E* }! V; A; }+ T! Y5 yfunction Encryptstr(Message) 1 @$ I% K3 t" s2 [  J( Q9 c' B
Dim LngKeyE 5 h2 Q+ V9 z3 w1 }: t2 N) C
Dim LngKeyD * m2 O, E. S5 I: x- W, k: I' v
Dim LngKeyN ( \2 K0 ]! ?- `  K% E
Dim StrMessage * s0 B$ c% ~+ R6 X5 g- \5 w3 Q
Dim ObjRSA 7 N( {9 J( E& h' }* a  K) \0 k
LngKeyE = "32823"
5 y0 l( n1 A0 H, B7 n2 KLngKeyD = "20643" / q3 ~4 x# }5 g$ @: G; m# M
LngKeyN = "29893" 7 o  T4 T5 r( k
StrMessage = Message + H! ]6 O2 y, j& k- l0 Y
Set ObjRSA = New clsRSA
$ A1 K$ s" K$ c) DObjRSA.PublicKey = LngKeyE
: D5 |. L9 b4 pObjRSA.Modulus = LngKeyN 5 F; j- T& y1 f8 D
Encryptstr = ObjRSA.Encode(StrMessage)
( L$ @7 s5 G( _; p& w2 p1 _2 N' RSet ObjRSA = Nothing 9 ]0 `* k+ W4 v* N8 j
end function . e) G5 Z; p, ]) `' C
function decryptstr(Message) & X# A- [# {4 L9 U, ^
Dim LngKeyE
7 i2 ^0 j) f! P+ l& |, Z; TDim LngKeyD ' t0 p5 R4 ^1 G8 W' z( K
Dim LngKeyN - ~9 |1 L/ p0 N% Q
Dim StrMessage # J5 k& r3 _$ V8 }) {4 u
Dim ObjRSA
4 _" }. s2 H0 Q/ iLngKeyE = "32823"
, O- M2 ]7 j% z% ]$ YLngKeyD = "20643" 1 I0 F( ], O( y2 W3 y1 z3 K4 U+ ]
LngKeyN = "29893" ) y8 F1 V/ V4 C# k: [
StrMessage = Message 1 t; m0 G$ M( e, a2 t" l
Set ObjRSA = New clsRSA ; k! k% `; ?" ]. g4 T
ObjRSA.PrivateKey =LngKeyD & i) t9 ~7 _; N( K- Z: Y6 X
ObjRSA.Modulus=LngKeyN # m" C+ r( O* g& Y& n7 w; \
decryptstr=ObjRSA.Decode(StrMessage) 9 B2 V& r: n2 s& M( |% R
Set ObjRSA = Nothing 7 `( T7 c- u# g
end function
2 ]$ V# f: x  ~3 ~dim last,first
0 D/ v4 r! O+ y4 F! D- S7 afirst="!@#$%^&*()"
$ j0 \# R& v5 y: N. b* CResponse.Write "加密前为:"&first
7 L+ Q3 [! S1 r) w- k' m$ o, {last=Encryptstr(first)
) \, Y4 _/ k$ g" sResponse.Write "加密后为"&last
6 y& {3 v, Q2 S- [, b- E* uResponse.Write "解密后为" &decryptstr(last) 2 s- {* R! E1 M# u2 j3 X
%> ==============================================4 D  v7 K4 K# @5 E" {( |+ G3 m+ D1 y
剩下的就是字符的对照表了3 u  }( _1 E5 ~
===================字符集================
# T; J, x, F+ w; o3 X8 w1_____6EBB
. R3 }* E$ a8 R1 o* ?( }9 L2_____5C1F
8 k- Q( G, z: k+ T3_____4D75# U# U& {. ^& [  F
4_____26CC. H: t$ T0 M3 a, V: Z
5_____4F881 j1 V, Y7 j* [
6_____3F4E
! Q' _3 Q! s+ O5 p7_____0A9D
; {4 X* P  L8 r2 t5 i' s( l+ O8_____1A1C! k1 }9 ]- }" C; q
9_____6D208 Q$ D! A& u1 O7 W4 c# d, y
0_____1089
  g+ I% E1 F1 P# ga_____0F3E$ t2 L, @- w4 \( D7 K& x$ f/ d: b. h  Q
b_____3159) Q. o2 a; h5 e3 t- G
c_____35174 c- A: T" _8 c# D
d_____419C
% i: K! X$ Z! q0 L* y( Oe_____615C. c- A$ d. v; `# ~! V% I- X% i
f_____556F: g9 q; |$ p. G4 E: W2 d
g_____2B7F
- d0 b1 X( G' Y- x7 T" c- `7 ~0 v: j9 Xh_____0F9C
  Q4 U6 ^+ O' v  J0 `0 g5 hi_____00FA
" [$ H" m0 R: S: B  v- X, Uj_____5A50, {% V4 K; F7 y( r
k_____28500 N5 R( W& e0 M8 y
l_____3E7B, j/ H7 g2 ^( f- E# J' e1 }! J
m_____71C5
7 h  U$ k; U/ ]1 s2 |* O% yn_____1FC8
% {; V9 f* t4 X4 j5 Ao_____74C17 `# S, Q- I0 U6 T
p_____5FB8% @& E- o* L/ j, [0 `
q_____6085
; u+ L4 S# o3 K; i9 Kr_____3AC4
% m0 |5 H8 X; `( H+ [s_____2F50
! e$ ?! t1 z7 S- W1 [4 a9 |+ H9 ct_____36F8
% T" ~% t  d9 X7 Y7 uu_____7010
* p4 ]: ?7 ]" K3 S" hv_____0B42( z% Y+ }. l* N- W9 t
w_____1C7A( ]8 d; C+ i  t7 P9 q4 |/ Q4 Q
x_____16F8
. k: a3 n0 G- P' r" [y_____2EE7; C( z3 D1 u& y0 A9 f
z_____5CF3
& g, t- Y0 i6 O  U( u" B8 q% Y!_____62337 r& a, {. D, o  i8 K: \
@_____3A456 Q: X9 f8 U2 W2 v  }5 T
#_____2291
0 o# J' m0 v/ I* m% |$_____5D5C6 x- z5 F6 O- Z2 K5 W. g
%_____09B9
; M: [% I1 M, n5 t1 q" M^_____43EA7 U" M1 R5 _1 J( |# n, i
&_____62B9
1 h, o% |! o: m6 |4 B" h# t6 b* a*_____6301' C; k* [! h  {" B
(_____4659
1 f/ P0 H5 a8 D) v)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表