返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
5 e7 G' r! W2 X2 H# k& X9 i# W原始出处:http://www.3ast.com.cm
" w$ U+ n/ E+ O
( H" n- ]$ Q+ Q* e看不懂的直接绕过
# d- i. i1 p; d加密前为:hwy1234564 p2 W4 T" G+ b
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
- m; ]8 M) e9 ?' `* S1 I
* X& K% Y% a5 N; h+ s3 ]============================================& f- J9 h- ?8 J9 h
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
2 s, R0 ^* O# S/ b2 p6 |也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
) e" ]# O: [3 T7 t( D5 P以下是RSA算法文件( U! y- l' [( f) A6 F# j

2 C+ Q) u! ~) Y- b8 ^文件名RSA.ASP
; l* q" s+ J% |* U4 A===============================================& z9 B  p8 t; m% r: v
<% ( Y5 ?9 r" l( d5 E, V
Class clsRSA 4 _* ~+ X- I* l8 f9 e
Public PrivateKey
& T  Q8 |; M. T* P7 ]1 ~Public PublicKey ! b# m) @( T. f
Public Modulus
# q5 S. T. ^6 DPublic Function Crypt(pLngMessage, pLngKey)
) n! E5 a8 G+ i% S' z) gOn Error Resume Next
: m8 ~# w! x2 Y% ZDim lLngMod   T' \9 f& o0 l% Q. T# G
Dim lLngResult ' \, {$ Y) k& y
Dim lLngIndex
! E$ F3 O& e" j7 B: Y4 @7 {If pLngKey Mod 2 = 0 Then
3 ~' c  Z, l- r; X  PlLngResult = 1 & e; ]) B/ E3 ~! k
For lLngIndex = 1 To pLngKey / 2 " ^. Q/ @, X& o: P  D
lLngMod = (pLngMessage ^ 2) Mod Modulus * ^5 ~2 l  [9 C& W
' Mod may error on key generation 5 O" I6 g$ K. S2 G+ d3 `5 s+ ^$ g$ G
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 `8 w- M: Z, k$ B  P
If Err Then Exit Function
/ Y' h$ M, E* y* w+ }* C% CNext ) S8 ]$ U& `, |2 B: b
Else
6 ^  W. P2 j! m4 e! TlLngResult = pLngMessage
3 T2 ^) M! w  }5 e7 o! {For lLngIndex = 1 To pLngKey / 2 " |) R& g5 `4 J7 ?% x
lLngMod = (pLngMessage ^ 2) Mod Modulus
2 q, S* y, {+ \' j4 i& sOn Error Resume Next ) ^4 X5 R- ^7 t! |( A3 H
' Mod may error on key generation 9 q0 P/ Y5 @4 f8 E
lLngResult = (lLngMod * lLngResult) Mod Modulus
+ ?. @2 m$ Y$ {If Err Then Exit Function
) S0 o- j5 _+ s1 ~' N+ G, B  GNext
7 E5 h% s  [3 |! z8 u; B$ FEnd If , I. J, Q0 ?6 W+ t0 B: o" \. v
Crypt = lLngResult
& @& n4 p' g' ?+ Y' ~End Function* Y, w8 ?+ r& [+ I/ T: t

0 T! p( D: h. @4 kPublic Function Encode(ByVal pStrMessage)
5 G2 s  r+ D9 c# Y0 ?Dim lLngIndex
* l- k* {1 n. I& o6 S( n. B1 {( {Dim lLngMaxIndex 4 f" v+ f/ E0 y/ _" l
Dim lBytAscii 3 n' C( p, y) n" j9 q
Dim lLngEncrypted
- M' A, \9 [: Y3 I6 k% I7 M( YlLngMaxIndex = Len(pStrMessage)
8 F/ \/ q' V8 M( T7 v- fIf lLngMaxIndex = 0 Then Exit Function
" I) U+ I% J: n, l& @/ J1 e2 YFor lLngIndex = 1 To lLngMaxIndex ; N# I, @+ F* D* a
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 X6 P% @3 |) |( k) U9 l
lLngEncrypted = Crypt(lBytAscii, PublicKey) - V* s# E/ j% T2 P# d5 _" C
Encode = Encode & NumberToHex(lLngEncrypted, 4) 9 j5 w& z7 m% z0 z: m0 ^
Next
: E! _! q- }+ Q5 D5 vEnd Function , n# l! D0 W# `: C; k& z$ I
Public Function Decode(ByVal pStrMessage) ! R1 A0 S/ l4 c) y: z
Dim lBytAscii
% ^5 y$ L# m9 t$ t' m0 W) eDim lLngIndex " f) k$ E$ U; q1 S! D
Dim lLngMaxIndex
& @& r+ ^6 w8 R" U0 ODim lLngEncryptedData
: E0 d! G" B1 Q9 o* K9 WDecode = ""
( b% Y" C( F- N( Z' @# k0 j5 z/ ClLngMaxIndex = Len(pStrMessage) 7 ~& n8 o8 O$ c
For lLngIndex = 1 To lLngMaxIndex Step 4 , U& d  c4 z6 @6 @0 z8 b- _
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 5 v1 \! o) S5 q' K& U
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
2 \% a5 ~7 ?; {7 B1 k- B$ bDecode = Decode & Chr(lBytAscii) 2 T9 G5 o7 q6 Y" M% e
Next + U( e# Q* A9 [4 C
End Function
9 j+ q, v: j& K, |Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 9 d* Y4 {. O7 E* I* T! U0 i
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( l8 ?/ K. J6 f- |0 I. G5 @! ~End Function - ~" k1 i" [# S3 C& T( F
Private Function HexToNumber(ByRef pStrHex)
5 [7 l" B; s5 e/ q1 \, r& S5 ~HexToNumber = CLng("&h" & pStrHex) - M; n. {/ r+ f( k% z; G: ^* a/ y
End Function
# Y! O8 G( A8 n" u7 n* xEnd Class
* S8 i( ?6 K" \8 X" ~$ Efunction Encryptstr(Message)
% A& S9 R- a8 c" F8 n0 ?Dim LngKeyE
% U+ h. e: E' n2 s% DDim LngKeyD ) K8 f' L, u* G0 \/ p% k4 r/ U
Dim LngKeyN 2 k. {( M2 j: L
Dim StrMessage
! R! A( w5 c' H6 R6 N0 A" E" d, x1 W! d  hDim ObjRSA 5 D9 F4 Q8 h4 t, I- u1 ]/ |* ]. a
LngKeyE = "32823" 4 b& z1 F6 C8 o: Q+ E2 y" P
LngKeyD = "20643" 0 ]! W$ S- q+ I$ v  X; t9 o7 X
LngKeyN = "29893"
. L- j+ V( z) `6 S- ~( JStrMessage = Message " l, K" j2 ^( G* r. B# x1 F
Set ObjRSA = New clsRSA ( ^0 j! A  n' j) y
ObjRSA.PublicKey = LngKeyE
& ~8 k% |7 g$ f- _. g$ T! }ObjRSA.Modulus = LngKeyN 2 y1 _2 z9 k$ Y9 P0 [+ r( A
Encryptstr = ObjRSA.Encode(StrMessage)
9 y: p9 O: N! h0 bSet ObjRSA = Nothing
# R( ?. Q; V2 c1 q" g3 K: \+ w, Wend function
8 R( S/ z5 G2 d* [1 f- CFunction Decryptstr(Message) 3 a7 S: t8 b- @) N2 ~# Q
Dim LngKeyE
7 J# g4 }4 S1 ]" Y: YDim LngKeyD . G2 Q6 A$ @* k' j* T
Dim LngKeyN
* X1 _3 b& a9 j: X; m; ^6 ~Dim StrMessage
7 p* X( M# k+ iDim ObjRSA 4 k$ ]) @9 Y' o
LngKeyE = "32823"
7 x( P9 {8 k# I+ S: ALngKeyD = "20643" 1 ]. H% D& U8 p# s9 f; t
LngKeyN = "29893" : a, K3 }/ L" k: l
StrMessage = Message
6 H, L) t8 i4 v+ QSet ObjRSA = New clsRSA ' a/ C$ Z6 J9 D1 E6 h2 z) ~8 P6 |
ObjRSA.PrivateKey =LngKeyD   S% F" @) |2 f
ObjRSA.Modulus=LngKeyN
* B, J. @6 t: L1 R0 [! o* o( [decryptstr=ObjRSA.Decode(StrMessage) , [% @4 c# P1 A' F
Set ObjRSA = Nothing # e! @9 |1 }! X0 M
end function
; t8 k" t* F1 }9 a8 j4 h. \4 J%>
: _& f' Y4 B. R9 ?6 o: R* d===============================================
6 f; ]/ ?; k0 M4 O+ f# V  C3 d  b$ k" m( A
还有一个用于测试这段代码的test.asp3 B2 |% k3 c( p; E
有兴趣的自己搭建个IIS测试下! f8 _9 ?% t3 r: y7 V$ c
<!--#INCLUDE FILE="RSA.asp"-->
. a9 n1 d7 R4 W  q<%
9 Z' a2 M% }" Efunction Encryptstr(Message) - \. V; I# X0 j6 O: @! `+ i5 f
Dim LngKeyE . t  N8 ^+ `& @# U3 |
Dim LngKeyD : r& S; R, g% g; L: |$ T+ F1 d0 |' Z
Dim LngKeyN
5 S) L1 b$ W* z$ [1 O! j' a+ hDim StrMessage
+ |) u, P- a. C0 [4 m$ @8 x; D  kDim ObjRSA
* W" U7 C1 t$ D/ H  qLngKeyE = "32823" . m4 M# z; r: ?
LngKeyD = "20643" * }3 H$ u8 H7 X3 F6 _1 p- u
LngKeyN = "29893" 5 y- P. {' a* G
StrMessage = Message
! v/ i4 l0 E9 W% f1 e5 sSet ObjRSA = New clsRSA : \& Q/ O! S# K+ {! a! @% l
ObjRSA.PublicKey = LngKeyE . G6 O5 k2 C8 D9 o0 R
ObjRSA.Modulus = LngKeyN 9 O" ?9 F- n/ ]& R* D
Encryptstr = ObjRSA.Encode(StrMessage) / Q3 y- |, j, i4 \- l" N) q
Set ObjRSA = Nothing ; q% g, e/ i7 Q* j
end function
' v3 I6 M3 d% }function decryptstr(Message) 2 g9 T, ?/ x( u: q
Dim LngKeyE
- g0 c4 W, A) y# l( ^3 j& dDim LngKeyD - Z' z' w+ z5 Y7 v5 n) _' {
Dim LngKeyN / X& ?  S5 F8 `5 {# i+ b
Dim StrMessage & ~" Z1 k+ Y/ b) n, ]
Dim ObjRSA # @" ^0 J0 d9 T9 D6 t
LngKeyE = "32823"
9 I: E% ]  Q8 h" I/ G/ `LngKeyD = "20643"
2 O. ?6 A7 ~5 U/ }( z7 P! |LngKeyN = "29893"
0 [0 N0 F8 |0 r5 [  l1 JStrMessage = Message $ i; }9 d5 t& l7 H: A
Set ObjRSA = New clsRSA 9 o' Q  H$ C, G/ u
ObjRSA.PrivateKey =LngKeyD
3 [: o6 Y7 F( H) a9 a) BObjRSA.Modulus=LngKeyN 8 y, q/ M2 v) |, m1 ?
decryptstr=ObjRSA.Decode(StrMessage) 1 ~- j4 ~  u2 y1 [: C' a
Set ObjRSA = Nothing
, c( C% D' X& e3 n3 T( xend function / Q' U, ^' s+ G
dim last,first " |+ E& w. }) l8 q0 [6 r% b
first="!@#$%^&*()" # @+ K4 J: [4 M: J  s# S
Response.Write "加密前为:"&first : d, i8 a- w( v: ^+ R1 x! J
last=Encryptstr(first)
, ~6 c6 j3 |3 D# t' t, s, s$ iResponse.Write "加密后为"&last & q7 N5 F: f0 r6 M! G
Response.Write "解密后为" &decryptstr(last) $ m* ?- E9 |% A  d5 Y1 Y5 y
%> ==============================================
4 X3 s8 }2 R  h8 D4 x# Z( L3 k$ ]  a剩下的就是字符的对照表了' L5 X: f8 E8 N2 |4 q, Z+ w/ L
===================字符集================/ e# F3 @; y7 F2 |; D. L
1_____6EBB  S+ \% w* z8 ~& w7 m; K
2_____5C1F
4 _& y- ?0 T8 W) t3_____4D75% T) e: B1 c7 U4 ^0 A& n/ ]
4_____26CC
( |7 s" @( d& J% {$ c5_____4F882 o4 L: W+ B1 M) L7 d% S9 G( L
6_____3F4E
! R1 F/ j4 Z7 V' \7 ]9 F; h! a7_____0A9D
/ b3 z4 P+ a, V+ l9 y8_____1A1C
* K5 D) F2 C9 G  r  G; a% J  E9_____6D20
" S0 `2 i4 [& I* |$ n; }( n0_____1089
0 j8 E2 _9 i! q5 X3 f: Ga_____0F3E# d9 W) Q) O9 Q, g3 A
b_____3159
  s0 U4 D# S( F3 J, kc_____3517/ X( j5 K) [8 ?' u  _& |. y
d_____419C) y" f3 K: V3 a% s
e_____615C
' f; D/ v# x* g3 Df_____556F4 Z* Q+ m, F* Z# j) ^9 E: A
g_____2B7F
& Q, _; i: n+ M, ~. w% I3 F" S7 Ah_____0F9C* G; t9 @& o0 w# Q+ ]$ X
i_____00FA& Y  q/ d  C! Y) K, S( j
j_____5A504 V( N4 U% G6 m% K/ I
k_____2850
5 m4 g2 M. D6 {+ N' t! j: J- zl_____3E7B2 E/ q, L/ {$ i$ M7 K
m_____71C5
# O9 i/ |6 [' l0 Rn_____1FC8/ O7 U8 b/ Z2 s+ A6 Q8 Q
o_____74C1
" n  j: q1 @+ L5 Lp_____5FB8* u* @; `. B% z$ m: b
q_____6085& X& l1 G6 Z" \
r_____3AC4
$ {0 O. e' a# j; J- Z+ ]- os_____2F50
* p. [1 F9 L1 S; z  [0 dt_____36F8  s4 j) k1 J0 v$ n- [
u_____70109 S/ A; g+ S$ J. v
v_____0B42
/ ^( u. `+ v" O2 d  Rw_____1C7A
+ n' D! t9 y9 b# g4 @: ]x_____16F8
8 Q- Q. b3 ^( f, v8 D  by_____2EE7) k3 D+ X0 y( g" B( D9 d
z_____5CF3; t. z. X8 G- A& i6 m$ Y8 g. l( ^
!_____6233" P4 K* Y) F, G7 _+ c
@_____3A45& b+ U' ?! ]$ \* g* B$ k
#_____2291
; X0 y) O! X8 l) I! ?  ]2 J4 r+ x, Z$_____5D5C) \- T; ~% ]) L
%_____09B9
( x" S1 ?4 D2 j/ l: A' j2 S^_____43EA$ @. M6 M- g' R! W7 l! Z
&_____62B9
8 v; b2 H. x! v! d: l*_____6301( H+ a; ^) I* F: n5 e
(_____46594 H* K/ y% V- w
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表