返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
* j# f1 o4 }1 C8 m原始出处:http://www.3ast.com.cm( L% q( |( O2 `' N1 Q

2 y+ |9 h8 R" H  I看不懂的直接绕过$ i" s+ C% F& v; [' A
加密前为:hwy123456/ f* i" G7 \! n7 d% z
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E3 s) ?* p4 r8 W0 x; J8 q  Y8 R, _
4 D. X# S+ O" }7 `% u* ]+ y$ J0 T, S
============================================
% V' q- w3 c! x/ {上面是当时自己校内的心情。现在已经解破出来了,分享给大家8 y; g2 m/ a$ f+ X8 v1 F- ^/ p
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
  e5 R6 D7 B5 Z, z  d3 X" t# \以下是RSA算法文件
7 {' C- E3 a9 v& s$ `# E
- }# o; ~0 \1 H: L1 M6 \文件名RSA.ASP2 R. i7 @. `" m, F2 d
===============================================& h7 s+ U; A5 H+ k6 V! k4 ?
<% 6 U+ x; _3 X6 e4 H; l8 E- Z
Class clsRSA
" {/ e% K$ h% }* x. X2 g9 W: V9 IPublic PrivateKey - _$ _/ \4 ]5 M' w, x- I. E' O
Public PublicKey
7 {& Y' x3 g1 f! C3 DPublic Modulus ) K% n- e# r* w& J5 Y) U, S
Public Function Crypt(pLngMessage, pLngKey)
* t0 @+ z/ i" E4 Q" KOn Error Resume Next - q7 l5 _4 [' o8 w4 R  l
Dim lLngMod 5 a' _; i* I- ^* H, h  i8 p
Dim lLngResult & e0 n, {7 R. Z3 ?$ f2 G
Dim lLngIndex
6 |4 |6 B; u$ Y7 R' K1 t- QIf pLngKey Mod 2 = 0 Then
" H7 S: g4 }! [- T. z  AlLngResult = 1
5 x9 j, o: v, A9 R6 {8 ^( f2 wFor lLngIndex = 1 To pLngKey / 2 " e7 [+ a* ^% I; \4 [
lLngMod = (pLngMessage ^ 2) Mod Modulus
0 y4 k, T% P( o) }% A+ y' Mod may error on key generation 6 r# [" Q- B' c, E0 `
lLngResult = (lLngMod * lLngResult) Mod Modulus 7 u3 e$ ^, P; G2 d, `2 z9 h2 C
If Err Then Exit Function
2 R* Q- C( W* h& g0 \Next ; P; ~/ |4 E- B3 d* `7 u# D: @
Else , C! H* M+ I7 j8 r1 \4 i6 F5 Q
lLngResult = pLngMessage
0 ^; Y" `' `; L+ o; ~3 _4 GFor lLngIndex = 1 To pLngKey / 2
" Z1 w2 h7 w2 Y3 O$ `& n, LlLngMod = (pLngMessage ^ 2) Mod Modulus 6 d; l* J# Q# }2 @
On Error Resume Next 2 N7 T1 Y) S: K
' Mod may error on key generation 5 L6 E. B( ^- ]! b' ?1 W
lLngResult = (lLngMod * lLngResult) Mod Modulus % x: B- U" j- g: z, i+ ~
If Err Then Exit Function + V7 C+ w* \+ B$ Y2 ]
Next : A" C# `0 a) u: P0 [; }1 |
End If
* i; ~9 Y! G+ ^5 yCrypt = lLngResult
* O, X6 x9 Q2 U5 hEnd Function  P: X5 B- N- n

# x3 j) l+ B! G0 V: S1 xPublic Function Encode(ByVal pStrMessage) 4 a8 d: Y0 C( D' O& M  C
Dim lLngIndex " y3 g' }$ ~/ z4 G
Dim lLngMaxIndex / t" @, o2 z, v, J  g" G8 w3 i
Dim lBytAscii
7 o. F, B' p& x. aDim lLngEncrypted
$ r1 |/ V: z; }# u# blLngMaxIndex = Len(pStrMessage) ( s- l( M0 g+ y0 T) y5 T
If lLngMaxIndex = 0 Then Exit Function
2 z  a: U8 @: e5 u4 AFor lLngIndex = 1 To lLngMaxIndex $ O0 w4 i9 c' _2 e5 W
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) ( p/ s5 y7 N5 m" O2 l0 ~8 P
lLngEncrypted = Crypt(lBytAscii, PublicKey) & f4 E  c6 L5 G( t
Encode = Encode & NumberToHex(lLngEncrypted, 4) % Z5 o) U/ _" I4 V/ a6 @. g' E
Next
" G* u% V% {' v" s% ^8 M, L  YEnd Function
7 u0 ^# k% f$ g9 v" P, o3 UPublic Function Decode(ByVal pStrMessage) 7 e  T$ W% F) G& M4 T" H  Q
Dim lBytAscii " |( }: P& n- S. D& F; {# N
Dim lLngIndex
1 h, P0 j2 C" E  r% j1 IDim lLngMaxIndex % _* t, z, G3 S( e' k
Dim lLngEncryptedData " E! U# E; e! j  h' ~7 U9 |0 c, i
Decode = "" 7 P" w1 X  E) e, f/ C4 G3 X' x
lLngMaxIndex = Len(pStrMessage) 0 v& l2 _- F9 D
For lLngIndex = 1 To lLngMaxIndex Step 4 # s, M, d$ F" ~: V# d4 _" c& O
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
+ C7 m% H+ X- h% `lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 5 Z5 H) B6 ^# a+ h  h6 T. r5 x
Decode = Decode & Chr(lBytAscii)
8 ]9 @* E9 F* E' _Next
  g- L3 U1 d# n2 K* y% FEnd Function
" r* B, y$ E  e9 Z* ~Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ( \# L- R$ K& f% h4 X& g
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( u9 F0 y+ J2 b: `0 NEnd Function 9 n* N# Z0 c# l7 z: i9 P
Private Function HexToNumber(ByRef pStrHex) ; J/ ~- T- P3 K! O. y' s, f/ y
HexToNumber = CLng("&h" & pStrHex)
6 [% h% n" F% B' F6 u& c% \End Function / K, d, [' ]4 b2 X; p1 [
End Class
% N4 |. ?: X, A1 Wfunction Encryptstr(Message)
- J( V2 w/ |1 BDim LngKeyE 4 A8 y- b; E* V3 @
Dim LngKeyD
! k, i2 |7 r, m9 D4 f% n" K! D  hDim LngKeyN , e# u5 l& x2 ?2 j, E$ i
Dim StrMessage
& ~8 N) t, r; \! A4 \8 NDim ObjRSA / g7 A5 S8 w0 C
LngKeyE = "32823"
4 H( b% z* B4 Z' kLngKeyD = "20643"
9 s. H$ |5 ]" H# P$ c" kLngKeyN = "29893"
. d: \" r) Z1 K/ PStrMessage = Message
7 T( Z" ?. b5 r, ?3 lSet ObjRSA = New clsRSA 2 c* N( f) w. ]  j$ x% P
ObjRSA.PublicKey = LngKeyE 6 x" h- V9 M$ V2 \  C$ n  k# |+ D% I
ObjRSA.Modulus = LngKeyN 2 i1 x2 G% \4 G7 {
Encryptstr = ObjRSA.Encode(StrMessage) 6 S* o- D* @, W2 z9 m
Set ObjRSA = Nothing
$ C) i* }, z$ M; c' f, k% nend function9 i5 n0 o$ d; Q, v1 a
Function Decryptstr(Message)
$ t, ^$ R; K( c1 A; M5 N* z, FDim LngKeyE
4 f: e; i8 J: o! f  xDim LngKeyD 5 t0 I( K9 N/ S2 T: B* o5 A
Dim LngKeyN * {9 n% {8 J4 D) H" X8 n# E' [
Dim StrMessage
( s: e- A4 W+ V* t; p  V/ ]Dim ObjRSA
  o7 |7 z! C! j) O. W: g% W! p+ z  ILngKeyE = "32823" " ?9 g0 ~/ E+ f4 s2 m4 C, c- _
LngKeyD = "20643" 7 f6 M4 N, I+ d- O- t  Q3 H
LngKeyN = "29893"
6 h) a+ u' X( `3 J( q  P0 L9 i9 uStrMessage = Message / t( G2 D1 y7 l: l4 d, n/ h
Set ObjRSA = New clsRSA
) g0 A. o1 Z% J- V) D5 VObjRSA.PrivateKey =LngKeyD
0 m0 W' ~  S! G8 U; Y" yObjRSA.Modulus=LngKeyN
$ Y* {1 S  E4 j& W, K0 }6 adecryptstr=ObjRSA.Decode(StrMessage)
. G' ]6 }: S0 [8 w' C+ ]  ASet ObjRSA = Nothing
- ~& X6 j5 Q4 g3 oend function ( I$ R* i" O) y  h2 l9 F  U/ Q1 R
%>" I$ @7 j# x" }# d4 k4 c* ]
===============================================
6 E, y# b; |5 D0 k6 p9 @0 K, G/ B* d" r5 K% O- t! p
还有一个用于测试这段代码的test.asp$ O! u0 z; s; r0 t
有兴趣的自己搭建个IIS测试下. `$ `- _' Z3 V
<!--#INCLUDE FILE="RSA.asp"-->
4 [' H* l, w& C0 d6 ]<%
2 o$ [; b0 T# Lfunction Encryptstr(Message) 9 E1 M/ f9 n0 v7 u9 Y$ }
Dim LngKeyE
! `( Z, P' o( {; ADim LngKeyD . ?. E# n, v' _
Dim LngKeyN
  a" v3 M- o) k, zDim StrMessage
8 @# F( s; g+ l3 c$ WDim ObjRSA
" m, @2 a8 U' @5 ALngKeyE = "32823" 3 O- a. b) ^: c* l3 p2 `2 n0 k; F
LngKeyD = "20643" $ `" Q, z4 Y8 ^) [1 b
LngKeyN = "29893" & |( L# j* Z4 S
StrMessage = Message
4 L2 ~/ w, D) L: n2 X7 GSet ObjRSA = New clsRSA 0 t! H4 b! a& _: p
ObjRSA.PublicKey = LngKeyE 2 N/ g- y5 U; b, f" x1 I( n
ObjRSA.Modulus = LngKeyN 4 D4 S, a% V$ p1 n& Z: Z' w
Encryptstr = ObjRSA.Encode(StrMessage) ( W* ]* x% t) r2 [
Set ObjRSA = Nothing
, f" s& ~9 [' ^# F* r/ aend function
+ L3 m9 f! v  k+ l2 T, hfunction decryptstr(Message) / E* Q: W: Z1 C, I0 `% @2 W; ~7 t7 l8 s
Dim LngKeyE 8 u& A6 T/ W6 {
Dim LngKeyD
6 M. p5 M  @- u, _Dim LngKeyN
& s$ g% D% h3 W; j5 iDim StrMessage ( b. A  v9 B$ t
Dim ObjRSA
5 S) H$ [2 F' I7 B0 n. W4 xLngKeyE = "32823" 9 t6 S* Y' s0 L1 F
LngKeyD = "20643" ' Y& G/ |  ~/ ?
LngKeyN = "29893"
+ R2 Z& a( M+ F1 k% F" u% EStrMessage = Message
4 z! O) A- F. ~+ O0 [, vSet ObjRSA = New clsRSA
% d- ?5 w* i6 g; u" vObjRSA.PrivateKey =LngKeyD
+ `8 K9 L2 v( u, {ObjRSA.Modulus=LngKeyN
7 t0 \# ^  h1 fdecryptstr=ObjRSA.Decode(StrMessage) % @$ g, A0 Q3 B
Set ObjRSA = Nothing ! ^8 f! Z$ Z9 |9 N; F
end function
7 P4 J! B: D6 M6 g& jdim last,first
* e, F4 d0 I9 m4 P# ~, i0 Sfirst="!@#$%^&*()"
5 z. ]  u) F& R" L% A9 wResponse.Write "加密前为:"&first ( P  z. b) \8 P% c- C9 a$ [1 e
last=Encryptstr(first) . v! h" u/ V3 }8 a/ m; }& `- g
Response.Write "加密后为"&last
1 Z# k$ u, d- M4 m7 HResponse.Write "解密后为" &decryptstr(last)
5 p! g* h+ K  d%> ==============================================
  ?/ t' x. D5 c剩下的就是字符的对照表了
& h  S% R" I8 J0 R: n% }5 X===================字符集================3 J% B6 h0 y0 x1 p
1_____6EBB, B0 g6 o' t$ R4 [" R  \
2_____5C1F
) k5 p" J7 j- h' v3 s  `; r+ f3_____4D75" U9 M- p  m# J+ n$ T0 W
4_____26CC
, x* b; Q( }0 ^, i5_____4F88
1 M. h4 A% h- O5 Y( {$ V2 j/ {6_____3F4E5 c* d" R; z/ g/ v0 M1 C
7_____0A9D
( c7 Y* F- e/ H% g7 e8_____1A1C
& h8 F2 d9 ]8 \6 X+ x3 _9_____6D20
5 _- A/ D0 `  [0_____1089
/ u/ |* X* A" K$ ~9 c- i% G2 \4 T# Za_____0F3E8 K/ m9 {7 q6 D7 K+ k
b_____3159
* [$ e8 Z/ l" d6 o) Y( nc_____35171 f/ d7 e" x0 R6 `
d_____419C  k% D0 W/ }' |; y: R1 _$ e5 H- T
e_____615C$ B! R3 a/ j/ K8 K/ J' A, m! C, q+ G
f_____556F8 u! P* H5 {, L  L
g_____2B7F
* z, j  [: W# sh_____0F9C  T6 O" q, r, r; m$ c' Y2 X
i_____00FA9 p8 f. g# `7 p/ i3 N# \  y% w7 V
j_____5A50
4 }7 f# z* s+ P6 \# uk_____2850) M! ^$ K  S9 Y
l_____3E7B% L4 w/ n. x  x2 \* Q8 @
m_____71C5
& V$ b9 x0 B( B# t8 i$ _$ Kn_____1FC8: T& b8 Y5 x7 g5 x: \. ^1 r
o_____74C1
/ B& [# M  \% i, A9 Mp_____5FB8
$ m5 V7 Z5 L! |$ ?4 F6 N( lq_____6085
  F& q( Y; f& V3 Wr_____3AC4
( T8 x! y2 w( c. ]: w. qs_____2F50
% _; Q2 `2 c, S1 Mt_____36F8
% E: I1 x+ S! G9 C; iu_____70101 C: E) `9 {! B. h: L7 F
v_____0B42
5 j/ T( [, r* L7 i+ M/ d* H4 h5 Ew_____1C7A
4 B$ ~+ ?5 |: S- Vx_____16F84 N# G6 \  o3 L2 _8 z* |, r
y_____2EE78 F( I. z, n6 [2 G& i
z_____5CF3
( Z% w2 }; s& u5 E: M!_____62333 @9 ]& G8 J" o# Z
@_____3A45' ]) U, o2 c9 {2 i- T1 O& p/ Z2 p
#_____2291& H+ I- }/ p) o% O3 a
$_____5D5C  u' v4 l" z/ M( [& q8 B/ t5 U
%_____09B9
+ K$ W& h+ P( I- }$ k^_____43EA8 T) a( d$ G# w* Q
&_____62B9
( i3 O/ Q! P7 T* w0 p! c  g*_____63013 ]/ V! b$ Y. A0 J
(_____4659
+ R( R- @7 M# i; s5 z7 q: z)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表