返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 Y& L4 L$ J% {
原始出处:http://www.3ast.com.cm
3 W$ W- n$ N2 a- U' d1 B: [4 ?# R7 R# `
看不懂的直接绕过
+ t8 s9 v3 _) ^加密前为:hwy123456
+ G8 |( P3 `$ N' O, A) Q加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E  B3 a5 G% C$ ~* D
  ^, `' y$ A& U! U2 T& E, }
============================================
/ |6 b2 C' j! ^( A+ y上面是当时自己校内的心情。现在已经解破出来了,分享给大家
2 V. Z8 i! {' C8 R' J也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法5 n" x, ~/ Z) M5 N& {! _
以下是RSA算法文件+ x: g5 ?1 \/ S8 s- ?2 }" W! L
5 `, i  q2 L. T0 E
文件名RSA.ASP
: c* |4 _2 f* R===============================================
# E, j/ x$ r( L' C  [<% , p( [* g& D. o5 {, Z
Class clsRSA
) y* I; h; c4 }, }. |8 |& Z, EPublic PrivateKey 1 f- z; V) o1 ?+ [: V$ N
Public PublicKey ) j5 |) K5 j! H! e7 ^" K/ T
Public Modulus
4 C7 o) L, g7 A& a4 q6 p3 ~  {Public Function Crypt(pLngMessage, pLngKey)
; H( D% J9 d: O! X( Y5 A7 I2 mOn Error Resume Next 7 g" S7 C% |9 {
Dim lLngMod
5 y8 B0 ?8 X: g, w3 w& @1 YDim lLngResult
7 m  e$ t, ]8 {# B- P  a* b" DDim lLngIndex ( l0 I( L# q, H+ \* Q' `( a8 t
If pLngKey Mod 2 = 0 Then
# {/ X; U9 v* y& t- IlLngResult = 1 * R% `! t2 I" f0 d" u, I9 T* r$ b3 t
For lLngIndex = 1 To pLngKey / 2 0 r( c. j/ B# f# o; W+ V& ?
lLngMod = (pLngMessage ^ 2) Mod Modulus
" V/ t6 [9 n3 o8 g  d' Mod may error on key generation
0 y+ y  J6 D7 ^. D' X0 s+ l2 UlLngResult = (lLngMod * lLngResult) Mod Modulus
# O5 s1 x7 ?& v4 PIf Err Then Exit Function
2 W- C: b7 w' s( D+ ^1 r6 uNext 8 {3 d+ M5 B. M  K' K
Else
% y- l; v  V* k; D0 Y' N( p" A9 @lLngResult = pLngMessage
$ s' q! D* x1 K# CFor lLngIndex = 1 To pLngKey / 2
6 E9 ]3 j5 a: j) w; }- u+ |lLngMod = (pLngMessage ^ 2) Mod Modulus 8 P0 Z7 b4 b/ G8 B5 r" q# U
On Error Resume Next 9 k- k; v9 X0 {* N4 c. c& x9 f5 i
' Mod may error on key generation ' R! o% I: U5 N5 C* n
lLngResult = (lLngMod * lLngResult) Mod Modulus 3 i% A4 B) g3 @
If Err Then Exit Function
- `+ C& B* }$ mNext
1 |) \3 [& ^, x; B! A8 `0 o" X; `End If
* q9 _) e( z$ y' q4 H- Q+ lCrypt = lLngResult
/ S8 ?# o. z% L" y/ W: d+ e/ GEnd Function
. J3 S+ J) X  k& Z" d& G! s3 p$ i8 m* `  h# Q
Public Function Encode(ByVal pStrMessage) # E% {, B/ q" @% d  x9 s! Z8 q) h( T! ^
Dim lLngIndex 3 \4 [' E; S8 D" O
Dim lLngMaxIndex : u* W+ P4 s) ], {$ }# h# p
Dim lBytAscii
0 N3 q/ P( n' H6 t* NDim lLngEncrypted
8 h# F8 G8 h1 Z( L2 p. FlLngMaxIndex = Len(pStrMessage) 3 I) g+ U; |: o2 e/ d; u
If lLngMaxIndex = 0 Then Exit Function # w. c6 A( g1 `6 C0 j
For lLngIndex = 1 To lLngMaxIndex 8 n5 S% h" F- C0 {
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) 9 t, L# i$ k" N7 W
lLngEncrypted = Crypt(lBytAscii, PublicKey) # A! X! p4 _2 V
Encode = Encode & NumberToHex(lLngEncrypted, 4) . i  ?# H" L# T+ h
Next 3 ?8 }0 w3 o+ y* R
End Function
/ T. S* O) ^9 n/ \& PPublic Function Decode(ByVal pStrMessage) ( n, J# i) C; E4 R' s$ L( M2 C- {
Dim lBytAscii * e$ u3 x3 H* `0 B+ K6 R3 M5 a
Dim lLngIndex
5 p5 Y+ t+ c# D) _6 tDim lLngMaxIndex , h/ f4 B/ ?" ~/ x
Dim lLngEncryptedData ( C; ]# P- d& ]+ O: d
Decode = "" + i& J' Y& r8 Q  X6 p
lLngMaxIndex = Len(pStrMessage)
# [" e2 t: f+ p# m' b5 u7 K. m( MFor lLngIndex = 1 To lLngMaxIndex Step 4
& L' O8 _5 Y' e6 F9 T: e1 P9 Y: u+ FlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) # A7 C: T0 `  Y$ D! p2 m
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
  `: G6 n6 H8 W3 c" WDecode = Decode & Chr(lBytAscii)
, `" F& o9 i; t: r4 A6 iNext # S+ X+ Q5 Y0 F' O" i  h
End Function
4 N) x$ M1 U" o: bPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 8 l; [. @$ E! m: F0 e" z+ Y2 O9 M
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
( K9 B9 o; m0 y  J% {, tEnd Function   j4 o7 L6 _8 i/ u4 x: }# d, g
Private Function HexToNumber(ByRef pStrHex) 0 K, Z0 k7 O# U2 |" C
HexToNumber = CLng("&h" & pStrHex) 3 X! |$ g+ m+ G1 g% F
End Function , P/ t2 f7 e9 B+ v
End Class 4 L) t) R4 x; ~5 D; h
function Encryptstr(Message) 8 p5 N+ x+ S" c
Dim LngKeyE ' G% N: \" n. C3 ]! \* N3 c  l) I
Dim LngKeyD
8 U2 |) g' Z) ^9 s, }  J6 {Dim LngKeyN
0 T. R* {; W- p4 G( bDim StrMessage 0 M6 x+ {1 D6 x; Q# b; E; F
Dim ObjRSA
. a; D% A; u, E# ^% MLngKeyE = "32823" , k" Y1 {5 G! P- s( F* N
LngKeyD = "20643" 9 \* R' J1 L  a) h4 V9 b/ k- P
LngKeyN = "29893" ! w! ~; O; H( k( {6 k
StrMessage = Message
, z+ ^: _9 _4 b0 gSet ObjRSA = New clsRSA
1 G' X* S3 V$ Q: L: Y: V& x. CObjRSA.PublicKey = LngKeyE + Z6 k. V, v4 [) _  [0 f
ObjRSA.Modulus = LngKeyN ! u- P8 v1 L# n4 S* ?6 ?6 W3 f/ e
Encryptstr = ObjRSA.Encode(StrMessage) 1 Q% t0 x; F1 a2 Q% |
Set ObjRSA = Nothing
$ G7 K$ a" K' O- \$ t4 @5 zend function6 @4 P1 c5 c: _1 k8 A
Function Decryptstr(Message) # V( R- B8 s& g/ V
Dim LngKeyE ( l; w, J8 f! T7 k# C
Dim LngKeyD
. w# k1 P) i4 VDim LngKeyN
% O" B5 ~, d4 @, V  }" V; G7 hDim StrMessage & B8 x$ K7 L3 u! P! w  @7 l
Dim ObjRSA - [# c/ s& R+ ]+ h, q$ C5 Y
LngKeyE = "32823"
' v% v- x* V, aLngKeyD = "20643"
- s  k- |/ G1 l. S0 lLngKeyN = "29893"
: f  i7 f: E" dStrMessage = Message
0 W2 r0 A0 M& ^' {1 NSet ObjRSA = New clsRSA $ X3 f- V1 S( J* u- j
ObjRSA.PrivateKey =LngKeyD
6 X7 W6 c# W3 F' L$ rObjRSA.Modulus=LngKeyN
3 o7 W7 g# m( ^% y$ W. N0 mdecryptstr=ObjRSA.Decode(StrMessage) , f) n9 {* E6 \$ R# `
Set ObjRSA = Nothing
' Z+ ?% b8 d- C) P# `+ Gend function ) @% W7 P3 X: |' o
%>7 R: }: N- d9 P  _" F6 _5 N$ W6 V
===============================================
- q5 {( A9 s- `$ H6 ?
) V! P# N2 ~- q3 q还有一个用于测试这段代码的test.asp1 \4 p4 N7 c& {+ }" L6 \8 m# O) C
有兴趣的自己搭建个IIS测试下4 ?4 n5 U3 H5 X
<!--#INCLUDE FILE="RSA.asp"-->
, t/ z% c( a/ [$ D1 d; y<%0 ^+ E" l+ z% E- X
function Encryptstr(Message) 1 X% x7 N. m5 d( Z" i
Dim LngKeyE - |8 z% l5 P2 S- A( b9 x- ^4 q
Dim LngKeyD
0 f8 I% j: Z6 t+ j" v! ?Dim LngKeyN 7 S! u; o$ \. ]- D) a
Dim StrMessage 1 m* y/ O. `9 |- G" E
Dim ObjRSA - r# u2 W, C& I
LngKeyE = "32823" ; R2 l- ?& h4 t4 H
LngKeyD = "20643"
0 n3 m2 \* N9 C, qLngKeyN = "29893" 9 q! `: _+ I( q+ a4 F3 q3 j/ h& t
StrMessage = Message - E$ M0 m/ B; B- m
Set ObjRSA = New clsRSA ' ~6 g2 q2 H) p. g' ]
ObjRSA.PublicKey = LngKeyE ! ^1 L% Z3 f* Y, o
ObjRSA.Modulus = LngKeyN
7 [5 k: j4 l; ]6 q9 S. M! o2 ~; R+ XEncryptstr = ObjRSA.Encode(StrMessage) 4 d# l% D2 f& V6 n
Set ObjRSA = Nothing
9 Y0 F; g& F. u* pend function & V9 v) N' M5 a3 o: B2 ~/ B" z& a' T
function decryptstr(Message)
& `1 U  \1 C  FDim LngKeyE
6 F$ a* q) g2 b6 @8 lDim LngKeyD - I/ B9 V7 B! H0 B9 u  a+ s
Dim LngKeyN
# x- E1 n# Z# S  v2 s$ UDim StrMessage / j( c  u. X: j. [; f" v
Dim ObjRSA & `/ O" X) t+ I4 J
LngKeyE = "32823"
9 x. E9 _0 ^0 G. J1 ^4 ?" b6 `LngKeyD = "20643"
( P% n+ k6 K$ r" ILngKeyN = "29893"
/ k' b) C5 q" KStrMessage = Message ' N' d) n9 g9 a$ F) M8 @0 G8 A
Set ObjRSA = New clsRSA
3 d% ]: |0 `/ T# n1 q- n6 @ObjRSA.PrivateKey =LngKeyD
4 t6 d1 d* t# yObjRSA.Modulus=LngKeyN   |: i& l* r8 }2 V0 F8 Q
decryptstr=ObjRSA.Decode(StrMessage)
) S! I% X$ d2 k  G) tSet ObjRSA = Nothing
6 S+ K7 a5 B; C2 j; S# yend function - C! n- _2 T' P! N9 O9 i& h+ o! o
dim last,first
( c/ O$ o! E. V8 N. d, s+ Wfirst="!@#$%^&*()" 2 u& t0 {4 U8 ?, k0 r/ \
Response.Write "加密前为:"&first 4 U3 `$ I( F3 R
last=Encryptstr(first) - r/ }, Q1 l" j, {, m
Response.Write "加密后为"&last * X9 |% Y4 [1 c8 m
Response.Write "解密后为" &decryptstr(last) ! I# Q( d7 G9 e: d3 M4 B" u
%> ==============================================
. L+ a/ g9 h* y! B剩下的就是字符的对照表了
+ T: l4 C$ m* v; ]===================字符集================/ z+ }% c7 s. H9 @8 t
1_____6EBB
' g; s2 }2 e0 f& T2 ^) Q- I2_____5C1F
) ~) H7 Z7 G6 p5 i# C. G3 Y0 t3_____4D75
' P8 A7 Y- g7 j  j# g! X* v4_____26CC
5 U4 R7 s) a; b% p9 ~5_____4F884 [0 U* b2 j4 N! j$ q4 ]( D
6_____3F4E
+ W* K; T3 f* V. u) y7_____0A9D2 }0 S( q( c9 Y0 D( Z4 m
8_____1A1C
& O( [% q. q* o2 s) E* r9_____6D20
: j( O  Z+ c& [  w# M0_____1089
% `" D, k: Q! k: Xa_____0F3E
; I2 ~7 V& u, T! a) x& H0 Nb_____3159
8 J9 p9 N2 h+ C3 K2 Y1 p" Oc_____35175 I+ X$ n/ ~) O( n. S0 z
d_____419C
  M9 N  a1 e! I3 ve_____615C# W* f! ^; m) O* m; _( R
f_____556F0 J5 ~3 N* W" z; o1 E3 G: K+ s
g_____2B7F& ?- z4 y0 [6 p9 v
h_____0F9C7 c" {* Y( V" ?! {: P0 u' {: C: Z( @
i_____00FA
/ \7 R2 Q/ C1 x: |% s1 W! Cj_____5A50
8 H/ F! m! ]- {, I' Ak_____28500 Z5 f/ F% |1 ^) x1 A
l_____3E7B! L9 h' t5 n  @, \& \
m_____71C54 Z# p* `# Z1 D/ i4 B
n_____1FC8
. d" w( a/ W9 z  Ko_____74C1' r) @! `" y7 O' A* q
p_____5FB8# Z% [7 t0 V7 |& c2 I' F
q_____6085
3 u8 W9 x  ?4 s) a$ {+ Q% \% vr_____3AC4
/ a) _1 \% I7 Z# b+ U- ws_____2F50
; a& ^8 j' ]7 W6 g' W4 [3 Y4 ut_____36F8
& M/ i/ A. ?6 N( u5 k0 `u_____7010( O4 F" Z3 B  r( }- a
v_____0B42: p: Y% J9 t6 j8 y: g2 E! {
w_____1C7A
8 \* ~5 s; D" {) V9 p7 Dx_____16F8" t4 g( f+ D0 L; O' E3 n
y_____2EE74 W1 C5 f& g# p" r
z_____5CF3
7 j. ^& [0 x  @% R8 a, k. G& s; n& o!_____62330 w: V9 j3 j) l8 H
@_____3A45( {& L" W* K, ~. y) {
#_____2291
7 q9 }6 ^' t. [2 Z- V- }$_____5D5C3 X; ], p1 f" H1 u" H
%_____09B9  Q; z/ \( W9 z( |9 y/ p1 |
^_____43EA
3 _& l/ E3 m/ x* A&_____62B9
+ u* N2 H5 l( E- G& f, |*_____6301
3 H' x3 y4 D( F" O7 |2 p0 p) w(_____4659' G7 s, K3 N- S, z" {
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表