返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm5 t8 q3 Q+ E6 s
原始出处:http://www.3ast.com.cm
2 {& p- d$ S; t4 Q3 i
2 Z  G8 p9 G$ k+ _- x看不懂的直接绕过8 t" W. k! y0 V* |: @8 B
加密前为:hwy123456
; m" q& P3 B0 }加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E, U4 K7 \' [: e3 t

* V8 Q1 q! L, f' c# \7 [! ~- f/ p============================================$ j& _" u& j! r! X* _* m5 ~
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
) s% u6 t+ w) Y4 d4 Z也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
8 S7 P/ ?4 o9 D. a以下是RSA算法文件
5 c! |5 j  [( ]6 o- \. Y7 J0 P, W# ]. d. N  p4 [: {
文件名RSA.ASP2 ?; C1 u# N4 z2 L& ]; x$ q1 y+ |
===============================================0 @$ G' f8 Z7 Y: y, t
<%   i" H8 t- |3 D. T- T! h
Class clsRSA 1 m2 \, ?( @; \  M+ g# U. A4 ]* p
Public PrivateKey 8 m, B: h6 x' u& T
Public PublicKey , o0 V" n& x5 q! r7 Z$ j# H
Public Modulus
1 U% ]# @( a7 B6 }$ M2 UPublic Function Crypt(pLngMessage, pLngKey) , v4 ?& n5 Z5 n  f
On Error Resume Next $ p4 `$ M% e7 ^5 P4 s( ]
Dim lLngMod
: K0 U& R& \) D+ s& kDim lLngResult
( W* g  c2 _+ m; Y/ c! \+ l' j2 b6 LDim lLngIndex ) [( _0 I3 }  f, ]6 J
If pLngKey Mod 2 = 0 Then
% k( {- H3 n2 J% E% g3 I1 ElLngResult = 1 3 [% e! u0 c) n3 a" @
For lLngIndex = 1 To pLngKey / 2
% `  M* Q# K/ |$ M3 }lLngMod = (pLngMessage ^ 2) Mod Modulus & S9 V" \$ r3 _
' Mod may error on key generation
/ S! }" R3 i- r% t4 h- hlLngResult = (lLngMod * lLngResult) Mod Modulus ) Q% N. ~, G4 J+ [  A5 U( s. J
If Err Then Exit Function   p6 M. q! u, w' ]
Next
% B2 S  E* J- j3 {' I9 W$ U5 s( U5 mElse
3 s; S* s. f1 g1 B4 _lLngResult = pLngMessage
8 p. R9 S0 f# J0 O; kFor lLngIndex = 1 To pLngKey / 2
& Q3 {# f$ w* P1 ~6 KlLngMod = (pLngMessage ^ 2) Mod Modulus " m6 g6 J& \* ]
On Error Resume Next
$ Z/ C; R: n+ R% d( E6 }' Mod may error on key generation   v4 y3 ~9 n2 i( k; V
lLngResult = (lLngMod * lLngResult) Mod Modulus ( o4 h9 P: j4 O6 J" K3 U+ e
If Err Then Exit Function
/ z5 F+ t. I$ R7 k4 t3 f, ENext   t) b; D# m! Z( R( `, \+ j* {
End If 2 r+ ~# g7 [: H7 u
Crypt = lLngResult ' r7 s4 g8 e8 a' ]; |; q8 K
End Function! h: ?& t1 ]+ B' T1 P! Y) `4 Y. V

8 |% B" E4 Z5 m/ M* BPublic Function Encode(ByVal pStrMessage) + ]; U$ m- {9 ?0 L. ^
Dim lLngIndex
- l$ @3 w8 T& sDim lLngMaxIndex & {% d# w& w9 m$ H: S+ S
Dim lBytAscii & x, z/ ^4 T# ?, _1 u
Dim lLngEncrypted + H% m8 Z0 r' [! d5 S
lLngMaxIndex = Len(pStrMessage) 8 n4 ]6 o* n5 P+ f$ r8 K+ w, _
If lLngMaxIndex = 0 Then Exit Function
, y  S4 K, M# U9 q- kFor lLngIndex = 1 To lLngMaxIndex 9 x5 E0 l! [8 r2 P6 ^6 p
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1)) $ y- }, ^( H/ Y8 G- i
lLngEncrypted = Crypt(lBytAscii, PublicKey)
4 N6 A' X& m6 IEncode = Encode & NumberToHex(lLngEncrypted, 4)
( g  M3 B* V# Y) v! ]' H8 Q8 f" tNext
# m$ ]4 @  \2 @+ @4 q! E# JEnd Function 5 c+ Q6 V/ O! l
Public Function Decode(ByVal pStrMessage)   f/ \- h- v4 s# S. S
Dim lBytAscii 5 g8 n2 m/ F( m: B1 g
Dim lLngIndex
# w  f+ d+ v+ Z3 e1 b8 RDim lLngMaxIndex
3 i# C1 S7 h: ?+ b$ YDim lLngEncryptedData $ i& w/ b* ?' R7 q- F( K( a
Decode = "" 3 t- t( {8 x1 @$ W# T6 R. e5 v
lLngMaxIndex = Len(pStrMessage) 6 w0 `  a4 d6 h4 ^' B; z: Q% X; _, i
For lLngIndex = 1 To lLngMaxIndex Step 4   X' ?5 m- ^6 M$ @* R  S2 I
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) " G  d; W: E" x$ v2 ^
lBytAscii = Crypt(lLngEncryptedData, PrivateKey) 8 D7 \/ C' b' |% G- g! \$ |
Decode = Decode & Chr(lBytAscii)
: x9 d& I+ ^' ~6 i) ?, RNext 0 v6 C1 W* W: F# |4 q) t* G9 Z. m
End Function
( u. _2 x; z* ]8 ]! v+ WPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) 4 p& J0 B; S: [2 ]
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
1 N: M4 x' P' d  J7 V4 ]" REnd Function - @3 s+ O* \) `
Private Function HexToNumber(ByRef pStrHex)
7 V/ H) H+ |6 C: J" BHexToNumber = CLng("&h" & pStrHex)
2 O$ N+ z! m" _+ h$ W  X& x6 C, N1 J( vEnd Function   r5 v$ z% C: ?7 B/ E' L! o
End Class ; b6 U" x' O. U9 M
function Encryptstr(Message) $ U- |9 \* ?- x6 @; K& E
Dim LngKeyE
" R+ v' R6 _% b. KDim LngKeyD % G. W+ \. J+ B. X* E
Dim LngKeyN - g0 z5 o9 Y0 i# G
Dim StrMessage
# j2 _0 c, o5 n% N' D! PDim ObjRSA % ?3 x8 l% Z. t" }+ g  k& ?) v
LngKeyE = "32823" ; C8 c# V# a" a$ Z" [
LngKeyD = "20643" # A4 Z: H: u' D! V( X" N
LngKeyN = "29893" " P, A$ a5 ^/ ?7 O; Z; C0 e, J, Q
StrMessage = Message % V& i) B- Y' |! E% y, G" q
Set ObjRSA = New clsRSA 6 p8 W! S6 X" f, I- [
ObjRSA.PublicKey = LngKeyE 9 X! P4 V3 ?- C6 H/ l3 _% f
ObjRSA.Modulus = LngKeyN
* ?( P/ z: c6 i, D  l! N5 K% aEncryptstr = ObjRSA.Encode(StrMessage)
: e* I) ~2 k. V/ G( \6 s2 L$ RSet ObjRSA = Nothing
% O- I/ {; a6 k; O, Hend function! Z0 d" a% Y# F
Function Decryptstr(Message) : `3 {% Y8 M6 C; c
Dim LngKeyE 1 Y9 ~+ u! R: z& L$ k
Dim LngKeyD
' B- y* q( r8 Z& W. ]Dim LngKeyN : q" G! C. D6 ~7 O" b* Q
Dim StrMessage
* u4 }! G: m" y, v, \! ]Dim ObjRSA ( m8 X: I8 r7 T/ s# ^1 S: Z! b
LngKeyE = "32823"
. {. E% v) u; U8 h* Z+ E" J% WLngKeyD = "20643" % d( t0 T! |- o- @( u2 v
LngKeyN = "29893" 4 a( _2 j9 F% h: }# x
StrMessage = Message ' i  h8 ^6 I* c9 f) ?
Set ObjRSA = New clsRSA ' i, R5 \/ h3 A* A3 l
ObjRSA.PrivateKey =LngKeyD
' u# t: y7 i4 y' I8 P3 |  u) g6 hObjRSA.Modulus=LngKeyN
/ }# E9 ?! `& d3 l  g" Ndecryptstr=ObjRSA.Decode(StrMessage)
1 u, P; v" `4 \( |% M4 }Set ObjRSA = Nothing + H- ?( O; I; R& @/ ~- v. c7 T
end function
6 `" t$ {" m" r& _: @%>
  n5 i& I4 j4 X8 L- A===============================================
; H% g+ W5 v8 B6 n! K5 O( u- c5 }0 Z
还有一个用于测试这段代码的test.asp
& ]3 d8 x. e9 W! C0 n1 ~7 [9 q有兴趣的自己搭建个IIS测试下  A4 L! ?; n0 |
<!--#INCLUDE FILE="RSA.asp"-->
9 {- t0 M3 ]  w<%
$ k2 n/ t( u; @- g+ {function Encryptstr(Message) " I5 R3 U$ T; u4 V* z% g# z
Dim LngKeyE
3 E' a8 q6 ]* r1 @' n( KDim LngKeyD & Z, r3 ~+ g& e) K3 e
Dim LngKeyN - J: x+ s7 M9 z2 m! y3 w- I0 x
Dim StrMessage % d) O' B" S6 q
Dim ObjRSA 5 s, ]5 M1 ^+ `0 |
LngKeyE = "32823" $ f9 J3 w. W; q" }$ b. }" d
LngKeyD = "20643"
) P+ z, _0 Y2 G  V. w2 \LngKeyN = "29893"
: Y: m2 t% h* q! @- J/ P0 ?StrMessage = Message ! F) u6 F' S; h8 ~$ j0 A
Set ObjRSA = New clsRSA - \+ m1 s! ~3 q! x9 n
ObjRSA.PublicKey = LngKeyE + _4 G3 ~$ t# ?. V- i. y2 c- I. W
ObjRSA.Modulus = LngKeyN 7 s9 h9 d1 G* q, B; E
Encryptstr = ObjRSA.Encode(StrMessage)
3 U- A& k7 ?! iSet ObjRSA = Nothing 5 Y6 ]6 L7 J# E7 ]( y$ V
end function
# r0 h2 L$ i& M; J" N" g5 f& Yfunction decryptstr(Message)
& q0 R9 m3 r0 a! A6 @Dim LngKeyE 0 j( o' C7 @! c5 g3 H
Dim LngKeyD 0 t; f. t) _3 f/ x
Dim LngKeyN
( e6 S4 b: G' U! L; ?Dim StrMessage
! b8 |# \/ _! b! n+ E/ ?  T2 Q& WDim ObjRSA
3 N; D; P- L( ~, h" @3 \" DLngKeyE = "32823"
" Z1 ]$ ~) X, f) R; q# zLngKeyD = "20643"
. d: }& g+ O% R. ^8 d( JLngKeyN = "29893" ! i6 n7 L; v4 W+ S8 Y. ~& g: K2 Q
StrMessage = Message
5 o. H* I" D6 iSet ObjRSA = New clsRSA + W+ [5 [4 D# z3 _' t8 m3 w! {5 Z
ObjRSA.PrivateKey =LngKeyD % e0 ]+ \) M: a" M1 E
ObjRSA.Modulus=LngKeyN
; _% A( F- a. U. n( `# M$ f) @8 ~& Kdecryptstr=ObjRSA.Decode(StrMessage)
; L. S$ Q& [; D) a/ USet ObjRSA = Nothing
6 o2 z/ S9 s" u6 E. F% pend function 2 i& Y& S# l# f2 X
dim last,first
# [$ `9 S3 s$ \" E9 ^first="!@#$%^&*()"
( R  V- M% ?. O8 `: I7 L+ ZResponse.Write "加密前为:"&first ( o! u, O1 i( h! t/ d8 \/ y
last=Encryptstr(first)
6 W) \/ g  x- S; R/ F) T& ^, iResponse.Write "加密后为"&last
' k4 Z" |9 q0 Q* i9 JResponse.Write "解密后为" &decryptstr(last)   G6 t2 H2 O: ]( o7 c( _* {: G: ~
%> ==============================================
1 B; D: v2 ?( b. q* |  j剩下的就是字符的对照表了
) J) m/ u* {, u6 Z. l1 I===================字符集================
+ Y  g7 q, L+ X' W3 I1_____6EBB
- n' ~2 o: w8 U* i2_____5C1F2 p% i* e8 p+ b, ?3 c
3_____4D75
3 f" R, G0 H$ X- t3 W8 ^4_____26CC
+ Y5 E7 k& Z/ W, i( }$ U4 }; v; z5_____4F88
3 m, \& D: ]8 Q1 y, Y2 |' A2 o3 I! U* Y6_____3F4E
3 `" Q8 ]! v9 G/ Q$ F7 _7_____0A9D
1 a* X' Q: j& @3 A" |8 q8_____1A1C; Z7 ]- }$ L" ]" a. P
9_____6D20" t' [3 V0 [% h3 [* p5 l
0_____1089
/ g" t! l2 t' M" y: i. Za_____0F3E
7 I' f; ~, q% C5 h5 X% k! w, {* ]b_____3159
0 B/ N8 Z! P/ Yc_____3517
7 ^* s  T9 [" e: o* _d_____419C
3 L! P0 e" m4 O% l# k; M2 ^e_____615C6 k- x9 K4 x5 n* s/ L4 A" F
f_____556F
# V, l" N0 t) o& [1 S: C* `( s) K2 ^g_____2B7F& Q0 E" D6 L( X& r0 u1 s
h_____0F9C
' f) L0 ~8 E5 j9 o- v5 Y0 w! ni_____00FA
( S3 @/ S- Q& u$ e8 E- A: Mj_____5A50
  Z1 C- v$ V  z+ D! j8 Rk_____2850
: e! G* s, F, y% b5 hl_____3E7B/ ?' m' n' ], d1 B5 `& e
m_____71C53 A! D  ?, v+ n
n_____1FC8
" T. c2 N7 ]6 @+ y5 i. Do_____74C1
, N# D$ S% H7 ^0 |) xp_____5FB8
  y7 c  K! @0 @8 x& I+ K& Wq_____60856 Z9 M, i/ L9 s
r_____3AC4, z0 l8 j; O; V/ P
s_____2F50
# M4 g* m/ P# |" y0 Vt_____36F8
2 M; g; {0 u, a7 G; P! zu_____7010* S0 m/ G2 T4 U+ u5 X# k1 f
v_____0B42
3 Q, \# B/ y! n) f. B% Lw_____1C7A0 }. `/ H1 S9 ^9 L1 O
x_____16F8
4 A6 s/ T+ g# R& h) jy_____2EE7
5 a/ n) m2 f+ o5 _z_____5CF3
; I: p( u+ g1 m0 ?!_____6233
/ O( s* r4 r2 K2 g  L@_____3A456 m$ `4 q2 X1 l6 a1 o0 U
#_____2291
9 }0 Z6 X! V6 j+ M$_____5D5C
! ~% f7 u5 f( M1 e6 G. K%_____09B9! O5 }& B8 u9 {4 [. w
^_____43EA
, E9 @- O. f. `- Q&_____62B9, m# w  J4 r' S
*_____63012 M  X" u# S) p! l8 i6 R
(_____4659( G( j! n0 s  H# `: P
)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表