返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
; W% P, O" K8 G' D: t+ V' `9 G原始出处:http://www.3ast.com.cm
* R9 B' w- o& ^* ~
/ w" ^, ]& m5 Q看不懂的直接绕过7 \: G; \+ z  a+ m( ^! ]! d
加密前为:hwy123456
) ~2 w3 o) `; [7 O* K加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E2 w! E1 x5 G2 t) e1 }( u/ s- o/ |: M

: }$ A4 k; R& _- x9 T============================================- n' F3 I- T) O
上面是当时自己校内的心情。现在已经解破出来了,分享给大家) Y2 O- l! y) k" n
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
+ [! X1 m1 k; d: K以下是RSA算法文件
/ s9 m& w- {4 H8 W- [& \- h9 ], a/ h9 A- v$ N
文件名RSA.ASP/ x/ ^2 W4 |- D. q- |7 d
===============================================
, p$ ]0 P1 I- S6 N" I<% 1 Z* I6 O& a* z, |" i( k
Class clsRSA
; _1 l4 w4 H8 R4 b  E  K7 f3 T# QPublic PrivateKey
8 h; s7 }( J* G) Y  b, APublic PublicKey * G& q3 S8 d: ~4 s% p2 W
Public Modulus
6 |) T* X: J  D: K* W/ DPublic Function Crypt(pLngMessage, pLngKey) / _# V: m: K/ m) n* L" B
On Error Resume Next , @4 n6 J( c1 Y7 v9 I9 ?* m# n7 Y
Dim lLngMod
$ ^4 s2 @6 A8 ~6 d  ~Dim lLngResult
5 r$ J4 B" {8 c5 [( @! ^6 X  a2 XDim lLngIndex
& O9 o3 o' c$ {% u; X: T" x1 y3 gIf pLngKey Mod 2 = 0 Then
/ _9 b. ~/ G/ ?# ^5 N& rlLngResult = 1
- ?7 [4 ^4 H3 W; Z, s; _% S* GFor lLngIndex = 1 To pLngKey / 2 " ]9 X2 C' V) {5 Q) l
lLngMod = (pLngMessage ^ 2) Mod Modulus
- j0 C* V' `! t8 r. z# h8 u# x9 r  b' Mod may error on key generation $ u& \2 N- X; p, a+ \
lLngResult = (lLngMod * lLngResult) Mod Modulus & n! B  D" Z. x; |
If Err Then Exit Function
) q3 @% O# u. RNext , X/ {8 H$ k/ R( Q9 F# H" X# R& A; |. [
Else
) [1 f" A7 i4 J. ]lLngResult = pLngMessage
8 i( E$ B" ]4 q) ?( o/ K1 q) E3 zFor lLngIndex = 1 To pLngKey / 2
' g- K" @0 V' X) R6 i2 QlLngMod = (pLngMessage ^ 2) Mod Modulus
* L* {* W' n/ QOn Error Resume Next # J% k% ?7 e: H& V
' Mod may error on key generation
1 H3 K% T4 u% S7 U. R5 ClLngResult = (lLngMod * lLngResult) Mod Modulus - L. x8 A4 h* m& P, _
If Err Then Exit Function
- B8 D& i8 [% B3 p8 o8 Q, I# c9 @Next
1 V2 b% `8 A2 W  ^5 \End If 5 z9 T4 |/ P6 _5 Z' u
Crypt = lLngResult + |' R4 y3 ^0 i9 z5 G! w
End Function% c& Y& V& i2 h9 O, d& z) r

  B1 ?; e% X  c' R" m3 ^Public Function Encode(ByVal pStrMessage)
* L! e: K0 p2 R/ F. F6 @3 {Dim lLngIndex
* s4 R1 H6 j6 v' {" K0 G/ A- \5 WDim lLngMaxIndex ! a4 S. B1 ^$ D: K  n
Dim lBytAscii " j* Y% Y6 I7 y4 v' ?1 |1 q
Dim lLngEncrypted $ @: h$ q9 P+ Z
lLngMaxIndex = Len(pStrMessage) 4 R% i0 _+ y" e% s8 p; e
If lLngMaxIndex = 0 Then Exit Function 3 \' G# H1 V9 f0 a! [. o& L
For lLngIndex = 1 To lLngMaxIndex
6 H. z: d1 C0 D% ~9 f: glBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 4 B/ K# a0 z& e0 P5 J: u
lLngEncrypted = Crypt(lBytAscii, PublicKey) # `( @6 u- g/ Q  L, |0 k/ S- l; @
Encode = Encode & NumberToHex(lLngEncrypted, 4)
+ n) `2 |7 V4 [( ENext ; x. N7 o" ]3 z0 o- [
End Function 5 ?: a) F" |/ j1 i
Public Function Decode(ByVal pStrMessage) & H& |4 E0 S$ n% X
Dim lBytAscii . ?& E/ t% u& J
Dim lLngIndex
: v2 M. n5 ^  u$ q+ aDim lLngMaxIndex
# {" O6 J: `( x4 b1 O0 w# ~Dim lLngEncryptedData   b! h8 v5 e* K8 w& Z
Decode = "" 7 D) A& k8 ^$ l6 c1 Y
lLngMaxIndex = Len(pStrMessage)
7 j2 f; b5 |$ S# T4 l2 H' _For lLngIndex = 1 To lLngMaxIndex Step 4 6 r" |! F/ Y  M( J) C
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 8 B6 ?+ ~9 o( r1 {
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
$ B! `) ?7 L) b. }' BDecode = Decode & Chr(lBytAscii) ) h3 y9 A; l0 F6 K" F
Next
5 [0 D! d1 S" e8 MEnd Function
& Y* A2 E( o5 d9 l$ g% y8 A- GPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
( e6 E" e3 o0 L  V+ lNumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) 9 [' T6 W4 c, j, N" m+ P, h, F! R
End Function
: j9 `1 o/ X- t  i$ x5 }Private Function HexToNumber(ByRef pStrHex) 9 n" z+ d3 h4 g2 N: ~% K. j
HexToNumber = CLng("&h" & pStrHex) - S, j! w- m( O
End Function
: u9 ?* E! `$ H% C) G8 |% E6 iEnd Class
* \+ U4 r( l- f, c' l- ?% e' ^* Zfunction Encryptstr(Message) 6 [- M0 q6 k6 D
Dim LngKeyE
3 B: h, Y9 J4 A3 qDim LngKeyD 7 h/ G4 t% B) g+ h& \
Dim LngKeyN
7 S( H- D+ w5 m/ G7 bDim StrMessage 4 N* o: d2 W9 y9 P
Dim ObjRSA
' f& o8 f' A5 u* y$ hLngKeyE = "32823" " Z! d' X: K2 i* ^* F' s# h$ v
LngKeyD = "20643"
6 p5 h% `! f0 o9 PLngKeyN = "29893"
, m0 A1 E  E) Z1 jStrMessage = Message - V, d' j. i/ I3 U1 l$ D
Set ObjRSA = New clsRSA & s* N! y  y3 p1 E+ z3 B' T! P' _
ObjRSA.PublicKey = LngKeyE ; @& M- d( X7 n  o. Q! p
ObjRSA.Modulus = LngKeyN ( F/ n+ V) h4 ?$ t
Encryptstr = ObjRSA.Encode(StrMessage)
5 Z6 L# o; r% n6 DSet ObjRSA = Nothing ' p% i1 E9 h! L9 o- }) o
end function3 f* @3 X, ?+ M9 |
Function Decryptstr(Message)
% H" o: d0 H& S0 o% t0 v2 _" TDim LngKeyE
2 _! I) l! I: PDim LngKeyD
# c% E* u! V+ yDim LngKeyN
6 z) n; T. ]1 `4 J( l" S8 TDim StrMessage
7 B# I( G! }9 }" ]! JDim ObjRSA
6 V5 _  w/ \- ~% f4 g" t6 g( fLngKeyE = "32823"
; {# S: y& ?% e1 V8 O9 E! W9 _LngKeyD = "20643"
. u# A- E4 h/ T! E) d: {, }LngKeyN = "29893" , w( }( Z* I) i; t6 @8 q
StrMessage = Message . Q! u$ W6 B% A  L1 k+ Z0 T
Set ObjRSA = New clsRSA   c7 j2 M2 u, {  ]& l7 u" R, G
ObjRSA.PrivateKey =LngKeyD # u8 P5 _2 K/ E3 |; u; B5 r7 u
ObjRSA.Modulus=LngKeyN
, ]3 I4 S7 d. T- L4 ?' a0 mdecryptstr=ObjRSA.Decode(StrMessage) ! Y5 ~$ \2 O* p1 H
Set ObjRSA = Nothing
: A1 ]3 `# c8 E; {$ c  v5 r* Nend function
/ Q  @, Q2 L- ]# y6 A6 V: [' S%>0 s# F8 m7 n' @$ g8 T
===============================================
/ F5 |& m. ]. T$ F7 K* e
3 w9 {9 Z( y3 ^5 y& x6 X' K还有一个用于测试这段代码的test.asp( h  F" R- i! {; G
有兴趣的自己搭建个IIS测试下0 O. d2 Q, W( G
<!--#INCLUDE FILE="RSA.asp"-->
- L) r1 k  H- v9 K2 Z<%% _- U* l$ y  J$ K0 a7 r
function Encryptstr(Message) - P5 h' R0 ]! _$ J7 Y8 j
Dim LngKeyE
" O' A6 h2 ]1 {) Q, {Dim LngKeyD # l, w0 V- f$ \, [
Dim LngKeyN
  B! n( Q' x  e+ i8 i9 C5 \" BDim StrMessage
- V. b& b& h5 B& K; dDim ObjRSA ! J; p7 |. ?0 J! e
LngKeyE = "32823" 3 a( N! m9 K2 H, e
LngKeyD = "20643" 9 I" F) l+ g0 _: v( m
LngKeyN = "29893" " u5 K  K1 O3 t/ M' ]4 N0 Z( O
StrMessage = Message
5 S( x& m# M# eSet ObjRSA = New clsRSA
! B& Y1 D. [( D7 O) eObjRSA.PublicKey = LngKeyE 8 b- a- x& z6 Q- t5 I4 v$ H7 r
ObjRSA.Modulus = LngKeyN
* k& R& d3 A( Z! ^+ O0 }7 HEncryptstr = ObjRSA.Encode(StrMessage) 2 y0 s0 Z. q3 f5 z8 y- i( l0 _
Set ObjRSA = Nothing 3 d7 E7 ?* G+ k9 b7 Y4 V; X% O
end function ; Z. m7 ^& M) Q, \
function decryptstr(Message) - h  g& Q5 V% W' C
Dim LngKeyE 1 E4 ?" N2 h- `5 G! F* O' J
Dim LngKeyD
3 A& W$ n- e9 F7 ]+ I- l; ]3 BDim LngKeyN
9 C, P0 n3 L' \Dim StrMessage 4 }5 F! H, M: A+ L6 M9 Y9 Y
Dim ObjRSA
; L' t9 r: k0 S& n7 qLngKeyE = "32823"
2 q* [. u/ a( A& ?' X2 T4 f8 w( E( WLngKeyD = "20643"
5 Q, m! e7 H/ oLngKeyN = "29893" 6 m- B3 s4 a$ \
StrMessage = Message
3 i7 F4 g3 g7 X" C9 W* aSet ObjRSA = New clsRSA 8 O2 s/ P/ d0 B$ P" |, x
ObjRSA.PrivateKey =LngKeyD
% U! B8 F5 J) J8 I% `/ S" L. t9 u3 CObjRSA.Modulus=LngKeyN
0 z$ B2 ?9 V) C: b$ }decryptstr=ObjRSA.Decode(StrMessage) 4 p, ^8 d# r/ P4 b0 E  ?' z
Set ObjRSA = Nothing
* A1 s2 y; u4 C+ A8 C4 j7 Dend function " n" b- J; ]2 E4 J
dim last,first   D/ I, w5 N5 Y0 X3 m3 ?
first="!@#$%^&*()"
3 ^; l! T+ h5 J4 T  m" m' J/ SResponse.Write "加密前为:"&first
2 S. R/ i$ R& u: H2 \2 ]3 U. o5 {% rlast=Encryptstr(first)
& n* s" D: A3 DResponse.Write "加密后为"&last 7 j' L: a4 A) ~" p1 s: l! l
Response.Write "解密后为" &decryptstr(last)
# [% t4 J% f" X9 S6 T* \; d2 {) P%> ==============================================
8 }  b6 H0 [7 ]2 _3 b剩下的就是字符的对照表了  G4 ~$ G, @1 K  \1 D$ Q
===================字符集================
/ f6 r2 y8 R( \; x% p1_____6EBB
" j0 a$ o6 Y7 \/ x3 G1 u0 E: T& \2_____5C1F
2 k( k  x& m& D% T$ ]- }' O3_____4D750 [9 V" m! h# t1 q  j
4_____26CC
' B, d: u6 Y8 E2 h4 y5_____4F88
$ K2 \# |: T7 a# r+ o/ i6_____3F4E
/ l6 ]. B" W' F3 Z& s' s" B; {7_____0A9D
5 q2 [! L/ _" N2 I; K3 J2 R: q: A6 i5 n8_____1A1C
, a# ]# }# G4 b& m  l9_____6D20: l* t. x# Q: D
0_____1089
! A9 a1 V( |- p' D/ Ga_____0F3E0 b+ U8 j3 K$ w* D
b_____3159% `) k2 R  D0 t! b5 }
c_____3517
1 \- X) i. x+ M! I  Yd_____419C
# [+ I$ v* z' Je_____615C
) _4 H% G9 J. ff_____556F
) W/ ^. N1 q9 Y! A. X; P$ ?# L" Qg_____2B7F4 e7 H, L( v1 s) f+ i$ O3 U
h_____0F9C
# ?, r6 }+ d9 V+ w7 n7 Li_____00FA
1 ^8 ]) y% [6 T3 o9 p1 Pj_____5A50
' l: o! f! d% t% F5 W- qk_____28508 o8 i) ^3 C  l. A. a
l_____3E7B
' Q4 [) U. y3 F( J& Vm_____71C5  {9 Z# x' v/ l0 p; o& x# ?3 a7 v
n_____1FC8
) ]7 W7 }& Z6 \8 `/ Q4 p' Uo_____74C1
% e" e, x7 V0 `1 h8 Z3 Lp_____5FB8# @: A/ A; U# P" s* ?& W% A
q_____6085
. x) `+ E8 \  h+ ~r_____3AC4
3 y0 @$ S. v! n7 _7 zs_____2F50
2 V/ `, X; I5 Y* ft_____36F8) q! d7 A! X" ~1 D  U0 n  T
u_____7010
# v7 p6 m8 a! U' q$ }+ O* Dv_____0B42; {4 m7 A: G) K/ }4 p0 m2 e5 ?" B
w_____1C7A2 r: [, u5 j9 p4 B
x_____16F8' u  a3 Y& ^5 ~" @8 y
y_____2EE7
. }# y8 s6 }, h7 {9 A, ]z_____5CF3
7 I/ A5 @* U) L5 c# j& ]!_____6233, z8 ]) q2 Z( {! S" Q: f4 h+ T7 B9 x
@_____3A45$ a+ y. w& b- X* S. o) o
#_____22915 ?2 G9 X, |: w6 m
$_____5D5C) N& v$ B4 Z; g7 h
%_____09B9
, F' U# ^2 f/ M4 x9 G5 I& [^_____43EA* B1 I) V% f2 n/ E# m
&_____62B98 E: y3 m) w* N6 s# @" {
*_____6301# \" H! w: }0 c
(_____4659. F/ L/ q0 r6 j
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表