返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm
) e; k- y5 L& _' w# I; {  j原始出处:http://www.3ast.com.cm; g6 [+ o1 X. R# G/ Z, U
1 x, ]  j5 P' W* d+ g& l( v
看不懂的直接绕过
" x7 Y. y$ T5 w9 h3 U. ]加密前为:hwy1234569 J; a/ T) \- U7 `8 }1 C; j
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
5 J" h- F. x' R( e, |# M+ o, M' q5 P1 G1 Z+ ~3 ]8 Y$ z5 V
============================================
% A: m4 c& o, ~% Y* G' D9 N) f上面是当时自己校内的心情。现在已经解破出来了,分享给大家' R5 J2 M0 X3 g$ L3 w) e
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
. N( A3 N0 b5 B0 O8 Y" J1 q0 X. ]4 B5 j以下是RSA算法文件  ]- C/ w  v7 |2 E: M4 E0 u
/ J$ p0 l. \1 H" W
文件名RSA.ASP: Y$ t7 u5 x& F1 a2 ?( g
===============================================
2 F* ]; C2 P2 ]+ L<% " X7 Z8 M. X5 q
Class clsRSA & ?1 s# W) R4 p
Public PrivateKey
( Q% w9 i) O/ ]9 b2 E9 t5 B( J4 D8 nPublic PublicKey
" b# \+ e' E5 o+ w! Z4 i  d/ G1 zPublic Modulus 5 u4 f6 d7 }/ a+ e) o6 Y
Public Function Crypt(pLngMessage, pLngKey)
' k0 J% e; c2 ?7 pOn Error Resume Next
6 Q' a4 R$ p+ k. R* V3 YDim lLngMod
: K# m, e; W1 r' rDim lLngResult " s& y5 i  Y/ e  C2 N3 _3 s/ d
Dim lLngIndex
5 H7 v. ?5 o  [6 c0 C8 ?& \If pLngKey Mod 2 = 0 Then
! V& z# @: J# c! R/ T0 W3 AlLngResult = 1 5 N  {) a- b3 c0 f& x
For lLngIndex = 1 To pLngKey / 2 # }  S6 ]- `+ e( I" `
lLngMod = (pLngMessage ^ 2) Mod Modulus
8 B# q, |) A* `' Mod may error on key generation 3 e9 {- [* W9 q+ ^% H8 |
lLngResult = (lLngMod * lLngResult) Mod Modulus ! G  w4 `# [2 S, U
If Err Then Exit Function 4 Q9 l* `' ^1 E7 Q( D" J" [" y
Next
& z! {) i  G& yElse * e( c7 e1 I- J5 }0 l
lLngResult = pLngMessage
# A+ Y+ ?+ G. C# g1 l9 m% ^' fFor lLngIndex = 1 To pLngKey / 2 8 w7 L* }9 W4 U! L
lLngMod = (pLngMessage ^ 2) Mod Modulus , I4 _1 I4 |0 i" D
On Error Resume Next ) W) h: N# h% H# K
' Mod may error on key generation
9 d9 N0 Q. o7 o3 A: U! G( X9 O4 B4 ?lLngResult = (lLngMod * lLngResult) Mod Modulus * d1 y8 J" c; g$ x/ s6 h
If Err Then Exit Function 9 S6 @) I/ J8 W# h- b; E
Next
2 _, G0 D8 T5 e# d2 a$ jEnd If
$ A/ S& p' C, |' R, j1 p! r# nCrypt = lLngResult
# W" H2 M( e! M9 L6 aEnd Function/ n6 \+ j# b/ d: A6 x3 H$ K( K

) R. Q3 J3 U  h+ Z+ h- o- \: xPublic Function Encode(ByVal pStrMessage)
6 K1 d5 Q1 [9 Q0 O* u' FDim lLngIndex * W; c" K0 X/ P$ a
Dim lLngMaxIndex
  i: b0 w* p  G+ I( Q( ZDim lBytAscii
+ j. y! C6 ?5 k' kDim lLngEncrypted
- B7 V: W! O+ P5 [& n% vlLngMaxIndex = Len(pStrMessage)
# E; R8 G( [) c" R0 D! jIf lLngMaxIndex = 0 Then Exit Function
& z& E9 I4 Q( U* }) a2 UFor lLngIndex = 1 To lLngMaxIndex
6 }" j8 s  c# b1 E' ]. B+ TlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) $ a* r# Y( n3 I" k! f
lLngEncrypted = Crypt(lBytAscii, PublicKey) ) X4 T3 }; e1 c" q: k
Encode = Encode & NumberToHex(lLngEncrypted, 4)
: w6 W& S! e; _4 QNext ) o: h3 ?- v4 D9 F
End Function # T- j7 J! W/ Y, t' s/ f
Public Function Decode(ByVal pStrMessage)
, G' ^* H1 T9 W. m. \) TDim lBytAscii + |6 h- k8 o; u& f
Dim lLngIndex ( g, h# j2 y/ l) M- q( X
Dim lLngMaxIndex % Z6 ]( D' |# x' @
Dim lLngEncryptedData 3 |+ Q) c) \" X
Decode = ""
4 d1 n2 ]' A. p) g+ h! g6 \lLngMaxIndex = Len(pStrMessage)
) d6 D' s* K- BFor lLngIndex = 1 To lLngMaxIndex Step 4
8 b! B  ^! S; T/ U6 blLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) ! s8 {. X& E+ X# J( W5 Y8 k5 g5 f
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
1 y8 ~' V5 e; d* @5 y) BDecode = Decode & Chr(lBytAscii)
# I, b6 M4 T, |Next 0 h' t: x* V" b4 O+ m8 G1 ~/ o
End Function & [  |% c1 T  {; Q+ h
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) ; C8 {1 V3 m4 c- t( b% B8 O4 i
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   [* u: b4 J7 N- C5 _. {( M
End Function
1 z, f5 J- l8 G3 w! B+ L* VPrivate Function HexToNumber(ByRef pStrHex)
( P* ?8 p+ A4 Q" A5 H0 W7 s- DHexToNumber = CLng("&h" & pStrHex) # ^; [' C5 q6 v* L. A% T
End Function
/ T0 p1 ]! c% r* y2 k9 FEnd Class 9 _2 E5 x+ g! x/ s3 o; v; J; K
function Encryptstr(Message) , m$ [1 i( f0 K0 h7 ^: @
Dim LngKeyE 4 @( L& {* A" f7 N$ B/ z) P0 ~
Dim LngKeyD
: W3 d0 g0 q( K% KDim LngKeyN
4 p8 W0 X3 F0 ^Dim StrMessage
. q) G6 z" C4 h& H  P7 w' aDim ObjRSA
% ~6 M# w4 z2 d+ k& f* c2 MLngKeyE = "32823"
7 A, z: X8 U) `" E/ {6 JLngKeyD = "20643" - V! @+ D$ V! ]; w/ s
LngKeyN = "29893" ; ?+ ~% n! s* u+ o$ P7 f* F
StrMessage = Message % V. w% R  R/ r7 e  @
Set ObjRSA = New clsRSA
  U! {. D: S6 @  LObjRSA.PublicKey = LngKeyE
, ]( K* B% G; DObjRSA.Modulus = LngKeyN
* S% z! Z2 w7 m* CEncryptstr = ObjRSA.Encode(StrMessage) + A( G/ E( X& c! A" C( D: `
Set ObjRSA = Nothing
, _, d% Y" r$ ?. @& w- L" I/ Yend function
8 J8 P7 x& L  O* x# i$ XFunction Decryptstr(Message) 7 _* o& M( o8 T7 n1 N( [& I  V
Dim LngKeyE 3 R! m% a% p- P) l5 S& {& D' b
Dim LngKeyD
% f5 c% y0 s* P- t& o; g2 fDim LngKeyN " y  ^* g  D, {$ k/ J
Dim StrMessage
( }- G4 g$ C+ Y" U& aDim ObjRSA
* m" j2 _. D4 z/ m" zLngKeyE = "32823" # m7 z& b' q  o4 k+ X2 b
LngKeyD = "20643" $ @- e& k5 D: V; b) w. Y, U
LngKeyN = "29893"
0 ?6 G5 C  i1 S. OStrMessage = Message
5 _1 L  ~) M: u6 P+ M% wSet ObjRSA = New clsRSA
2 n. |% D5 a& j% KObjRSA.PrivateKey =LngKeyD , d) p1 p  r" N1 B# V1 u7 F
ObjRSA.Modulus=LngKeyN
( F: B: j. Z4 \1 h. s9 W9 mdecryptstr=ObjRSA.Decode(StrMessage)
; N; }$ ^# S; k; TSet ObjRSA = Nothing 3 s- n7 C1 \" `
end function & h5 K# ?1 L( ?! K1 H6 f, T- j
%>
0 R  Y: c; l  ^, {$ ^) G===============================================6 j6 {  x: n# W
) w& q/ Z; G- y6 z
还有一个用于测试这段代码的test.asp. {) |- e1 ~. y, W* o. ~9 e' n
有兴趣的自己搭建个IIS测试下' x' j; f1 P- I9 ~
<!--#INCLUDE FILE="RSA.asp"-->
: L, u% U5 d" c; D% |9 V<%
% \5 t/ I7 k( ?) _. Qfunction Encryptstr(Message)
: K- s2 C! p- ADim LngKeyE ) b$ s2 o+ S+ N4 l3 _' [
Dim LngKeyD 9 Q% n2 p/ F1 ~7 S9 t
Dim LngKeyN
8 J" y& [# J) v( Q1 b- _9 @7 x2 PDim StrMessage
( C% K9 T4 |/ FDim ObjRSA
6 z9 ^& {+ k3 F2 Z* ?LngKeyE = "32823"
  X7 r( Q( t! V1 i- Y; wLngKeyD = "20643" 5 W5 T* d5 c4 q; W  E2 C* \, \
LngKeyN = "29893" * J8 \! r' \+ ^. [# v
StrMessage = Message ( s* J; `9 S3 f- Q0 i4 i9 D
Set ObjRSA = New clsRSA
1 g; u7 l5 h, o% G) H/ yObjRSA.PublicKey = LngKeyE ( u. r( j3 P; ~
ObjRSA.Modulus = LngKeyN
5 x+ M# t- |6 P* ^0 Q$ nEncryptstr = ObjRSA.Encode(StrMessage) 9 I: Y9 T# N( d+ w+ o
Set ObjRSA = Nothing
: j8 ]; g$ x$ a4 o8 ]end function
; H9 q. H* C& N6 p' Efunction decryptstr(Message)
7 M5 J+ ^# q( C; hDim LngKeyE
/ d! g/ A: k6 Y1 Z) EDim LngKeyD 1 }/ p. E2 _2 H7 o% n- {( c: W
Dim LngKeyN , u/ W7 n9 {& v1 S, J
Dim StrMessage ' q/ U4 s; r2 }7 q. Q
Dim ObjRSA . ^# h4 H/ i# r' D
LngKeyE = "32823" + P( Z- I* Q, z7 c8 x  u
LngKeyD = "20643"
  a5 a; ^: _) M9 e2 iLngKeyN = "29893" 9 u6 i1 x" B. r  F
StrMessage = Message / d" Y3 f( l5 H7 Y+ }) @
Set ObjRSA = New clsRSA 1 V- G) A2 @( w4 @7 }/ H$ w$ o
ObjRSA.PrivateKey =LngKeyD * X& U8 h5 d  y. m! G( O
ObjRSA.Modulus=LngKeyN
& B5 _, J- b# z2 j3 ^' W+ zdecryptstr=ObjRSA.Decode(StrMessage) 6 y+ O1 F: @$ ~
Set ObjRSA = Nothing
7 \8 N# e  ^- P3 [& zend function * ^" h% i3 h% {$ O/ Y
dim last,first
* y& s3 X: T* @first="!@#$%^&*()"
/ J* A9 e! n8 bResponse.Write "加密前为:"&first $ _6 C; a% n. G" ]6 J
last=Encryptstr(first)
4 Z3 ]9 I$ _. q, LResponse.Write "加密后为"&last
' o0 D* V. D# XResponse.Write "解密后为" &decryptstr(last) 8 G; Z, n, _( ?
%> ==============================================5 I9 N6 S$ G: G# Y: _& S
剩下的就是字符的对照表了
$ f& `# k/ a& K2 D/ P' t===================字符集================% |; D. ]- {7 X+ X
1_____6EBB2 u) \5 A2 l! d" q3 Y, c. P
2_____5C1F  H- P4 R+ o  c* s0 ~6 T. _3 W/ M) c
3_____4D75% u( c3 Q: w3 K0 A6 U' |; V
4_____26CC
* H# e/ m3 V( s0 B+ ^5_____4F88! z  n  ^: H8 g* a
6_____3F4E* w; {3 o" h2 D. w" W/ E
7_____0A9D. {) m8 ]$ g: r5 S
8_____1A1C
3 E$ s3 x) i% S; J5 E9_____6D20
$ C2 q0 o; q& O: S6 Q( |0_____1089% m9 D5 e& g3 y% k5 @+ L6 t( q( g
a_____0F3E8 f# i6 E) B( h/ Q5 W
b_____3159
/ i6 _# T- T! ^# X2 M* Gc_____35176 x. b  Z7 y* a* s8 r8 g5 p6 @: T
d_____419C. M6 ], u$ Y, W/ c1 C
e_____615C" X4 w/ e) r9 ?
f_____556F, v% H- s6 E8 F+ U1 [
g_____2B7F
3 I( @: Q0 e# y  s- Ih_____0F9C
0 R' ?6 _7 E+ r  Ei_____00FA5 l' P1 d5 n) ]: C9 p' _# t
j_____5A50
8 ^/ x# V; d+ e$ Vk_____28504 t4 c" e  y6 x4 ]9 {7 v
l_____3E7B# A$ N3 L! F% z* V, K
m_____71C5. X) v! i' V( A+ c& v/ V) k! Q) B
n_____1FC8' X: E+ p8 ]( F2 x9 Y7 A5 u# R
o_____74C1
, U7 [0 s! @) ?p_____5FB8
- K# J( ^2 S, @1 }q_____60856 ?. |$ j6 I2 G' i6 n1 L( n
r_____3AC4' E6 I/ b  V! F" U! U5 N7 c2 N3 u
s_____2F50
/ G9 v3 q) ^9 G; yt_____36F8  l5 g" G7 g0 u8 Y: V
u_____7010
9 k$ ]* H% t# b0 H: yv_____0B420 T1 F' n) q9 L  v9 M
w_____1C7A
, e# h: B$ `/ Q  P( q/ kx_____16F8
2 Z  ]  C5 ^% _6 p! ]/ `y_____2EE7
, g0 C0 i/ S3 vz_____5CF3
4 m6 t- e$ ?- y, E5 M- x) D!_____62331 O% P  S- m, v
@_____3A45( M6 h. u6 V2 \% C8 F  C
#_____2291
% L" w7 L; X7 M$_____5D5C9 }) A* \9 [0 l
%_____09B9" B$ C" N& i( Z, _2 `
^_____43EA6 D8 L5 H/ a; o+ r
&_____62B9
# y. {3 B  l" i" v*_____6301
+ t  x  _- U) m/ P7 f(_____4659% w* }2 L) e4 D! j0 Z
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表