返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm1 a' ?) ~! B7 G9 [1 q. r
原始出处:http://www.3ast.com.cm! s# _9 U( n, L9 `
" Q: x( A. I: k: I) n
看不懂的直接绕过
3 P" h* ]. d+ m# W' t& S3 p加密前为:hwy123456* w/ s( ]' m3 d# f1 g0 m! {) D0 t
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E& n' B+ \7 o' V, j& T
7 b9 _3 M2 @- ^0 l! e2 }) q
============================================, p3 \$ \1 X0 i/ N: j% a/ S
上面是当时自己校内的心情。现在已经解破出来了,分享给大家
; c2 \* y7 L% \) l* S也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
$ `* u' Q' y$ Y0 B9 D以下是RSA算法文件
$ V8 r2 Z8 G2 k
9 Z, w1 F" t. T& ?文件名RSA.ASP- \3 q, M0 t( X: o9 [* \9 O
===============================================
* S5 b, J4 n2 e; t" o, ~, q4 ]! x<% 2 u" A# q8 Z. L6 o
Class clsRSA - f# y8 L7 @5 I' p: A9 H
Public PrivateKey
# U/ J) u/ i, S* n; QPublic PublicKey 6 I6 O( J* [0 F6 Q: p' |
Public Modulus ( U+ A/ G" |0 w! ]/ n$ k: p
Public Function Crypt(pLngMessage, pLngKey)
, w* s% A" z# ?* t: B% Y6 dOn Error Resume Next
9 `# [5 X# r7 \7 V# b! E1 bDim lLngMod % y, J1 g, B; S4 R# S7 E
Dim lLngResult : [$ I: N, N7 Q) O1 U
Dim lLngIndex
0 @+ L4 U$ ~- z" DIf pLngKey Mod 2 = 0 Then ) |9 W% ~/ c0 B/ U( y
lLngResult = 1 # T7 J' X0 r4 z; F# X
For lLngIndex = 1 To pLngKey / 2 ; U9 p1 F- c  ]% ~7 y6 w
lLngMod = (pLngMessage ^ 2) Mod Modulus . J! M8 u3 K" ^6 F
' Mod may error on key generation
1 @! W+ a- L' i0 HlLngResult = (lLngMod * lLngResult) Mod Modulus
% o! o! g3 K1 L" b2 V' OIf Err Then Exit Function " y# ?! e, p" p
Next / `% S, T2 V$ A0 d' }; C; _
Else
. \' \: I' G- L' M# d2 k( J* QlLngResult = pLngMessage
. O" L* l; M3 U4 f9 XFor lLngIndex = 1 To pLngKey / 2
$ P! A) O6 I$ T9 KlLngMod = (pLngMessage ^ 2) Mod Modulus
1 G/ v- _3 o* I5 zOn Error Resume Next ; ?5 d' Q) _1 p0 e9 w+ z2 g- @
' Mod may error on key generation   E& w8 {9 u2 p6 E: F+ \, x
lLngResult = (lLngMod * lLngResult) Mod Modulus
0 t) f- ~2 s( M8 LIf Err Then Exit Function
" n; ?& F; N6 r1 p' J& rNext . \: C: S$ Z+ M
End If
" v1 A0 W4 {: N- mCrypt = lLngResult
- v. ]. w; {' f. q& F8 ~7 jEnd Function
3 D% m$ n' H4 }" U2 G3 a* Q$ a& w; g: e
Public Function Encode(ByVal pStrMessage)
' u0 F3 k; Z# c4 Z' X& L" dDim lLngIndex   p  w3 b) Y& P2 ?0 D6 p
Dim lLngMaxIndex   J: W0 k8 _" O
Dim lBytAscii
# n( Q1 r% }- q' ZDim lLngEncrypted
' Q2 i: W) w) z) rlLngMaxIndex = Len(pStrMessage) ) p8 t8 U  N5 v# d4 c# b6 T
If lLngMaxIndex = 0 Then Exit Function
" [0 \* I/ o, EFor lLngIndex = 1 To lLngMaxIndex
0 S# ~. {% L* Q% ~( l- }0 rlBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
6 A8 B7 O% b/ H5 S1 slLngEncrypted = Crypt(lBytAscii, PublicKey)
9 Z% S% q+ _  d, TEncode = Encode & NumberToHex(lLngEncrypted, 4)
8 h" ^" ^3 t1 w3 c5 @. H) e. ENext 0 Z8 n" Q. K. H4 P" A  H* q6 e# c. J3 G
End Function 2 n, U' M7 s8 u3 j4 v
Public Function Decode(ByVal pStrMessage) 1 G* R! E9 ^# h0 H' S
Dim lBytAscii / v, ?# u3 {' [( O: H, C
Dim lLngIndex 0 z/ f8 n' j/ V
Dim lLngMaxIndex 8 M% v1 d0 j; C- \: v5 `
Dim lLngEncryptedData , k# [& c4 J8 R2 K0 P8 V
Decode = "" ! {  z; T% G: `8 o' t
lLngMaxIndex = Len(pStrMessage)
6 h: q& L* f* J0 L& [# r: U$ uFor lLngIndex = 1 To lLngMaxIndex Step 4
8 p" X" w8 s) m" qlLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4)) 6 Q# t$ j! w% E6 z2 d
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
- }: s; W4 ^6 s" U- A* b% T, GDecode = Decode & Chr(lBytAscii)
0 D  m. I: ~6 [% P* J& u' J. ^Next
& P0 c6 M: M' P. |! C9 oEnd Function # \" Q2 `, o" h$ e  u! \
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
- H% ^- R) y, [NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
4 i( z3 |3 `6 L( S" e7 s8 OEnd Function   f( D$ s/ ]* T* |6 ]
Private Function HexToNumber(ByRef pStrHex) - e: u8 A" |0 E* m7 Y( X3 i
HexToNumber = CLng("&h" & pStrHex)
+ N" `4 u% Q' s1 MEnd Function 6 i9 B' C' S) X
End Class 9 B  m9 ]& q% K" Y  v$ R' q9 [
function Encryptstr(Message)
+ T7 H; |& d7 [1 P: o$ Z: U  ?Dim LngKeyE - ^' S/ w2 |/ C6 C9 f# C8 ]/ t
Dim LngKeyD
# q4 o. @/ I1 `- o' gDim LngKeyN
0 `7 O6 D4 H" m' K" i; yDim StrMessage 8 D( {- ~/ F/ s! P8 D
Dim ObjRSA + f% l4 q1 O9 J5 _
LngKeyE = "32823" 5 G/ @* w/ D: G  ^. c8 Q! z
LngKeyD = "20643" ; e9 z' [7 ~6 \% w3 x& q
LngKeyN = "29893"
: P7 v9 }4 g: f/ LStrMessage = Message
+ T. T2 B! ~- e* M" m( F% cSet ObjRSA = New clsRSA : m; U/ [5 x" t/ m& I# d! r
ObjRSA.PublicKey = LngKeyE
3 U- s% d7 [6 w- T1 HObjRSA.Modulus = LngKeyN
9 J9 |' R% h( t% JEncryptstr = ObjRSA.Encode(StrMessage) 9 Q$ D1 `2 g7 `* B2 i- l. L
Set ObjRSA = Nothing
# x  L+ |( Y7 _5 M3 }6 R& `. E( mend function
  g) P( `/ [6 H  k: J( H2 DFunction Decryptstr(Message) & A  x( ~$ ~$ r: W# j: ^
Dim LngKeyE 0 c- n' v4 z& h
Dim LngKeyD
2 w6 O1 G6 h. UDim LngKeyN 9 m$ P1 e9 Q$ P1 Y7 m: z
Dim StrMessage 5 D- X8 V8 f$ d) u$ P) |
Dim ObjRSA 2 p. C7 g9 Q1 t/ a  i  _8 H
LngKeyE = "32823"
/ j0 @7 ]/ y( ]2 Y4 XLngKeyD = "20643"
9 ^# H( \! R3 |8 m' RLngKeyN = "29893" 5 Z( t& `1 W4 b5 r2 ^
StrMessage = Message
, P2 [5 [) q- W2 A5 n# mSet ObjRSA = New clsRSA
6 T0 P) l7 Z, R, C% V' `- kObjRSA.PrivateKey =LngKeyD 0 y5 C: F% d& G: `
ObjRSA.Modulus=LngKeyN $ y6 x9 Y: }* m$ e, p4 z
decryptstr=ObjRSA.Decode(StrMessage) % I) i, I! p1 w& u0 [
Set ObjRSA = Nothing
6 j- M  ^! P, u8 kend function 6 j6 j& D0 \3 H/ I  T
%>/ w! f0 K* I, ~# w! I
===============================================
0 v" u/ S8 M4 Q& M5 h3 Q0 c9 X# ~6 H" m% j5 G4 H- O4 B! d
还有一个用于测试这段代码的test.asp8 {. s3 {3 T0 }) U
有兴趣的自己搭建个IIS测试下
& s3 ~+ Y  E8 ^/ l1 h' F<!--#INCLUDE FILE="RSA.asp"-->
: l9 B% N8 J% b<%
+ Q8 B2 l6 s- |; z2 Ofunction Encryptstr(Message)
. Y5 ~. A& L) i7 Y/ n, d7 y' WDim LngKeyE + ]/ A0 R* D4 c  E& ~
Dim LngKeyD
4 i4 L- l8 O- _" Y. l  XDim LngKeyN - n+ |" e" f$ J- K; q/ q
Dim StrMessage
. i5 C! _5 y9 RDim ObjRSA + r+ O, c$ |1 W3 c0 Y8 R6 `
LngKeyE = "32823" 5 A/ {- Z3 I, |8 O
LngKeyD = "20643"
  L7 c* |: t1 ^LngKeyN = "29893" & G8 J/ v6 p+ Q+ I$ R: k) T! u8 ?1 M- P# V
StrMessage = Message & G( B- M4 S1 k
Set ObjRSA = New clsRSA 8 G3 a  l2 B. G1 `$ w
ObjRSA.PublicKey = LngKeyE
- J5 j) E1 m! [. ^ObjRSA.Modulus = LngKeyN & p. {6 [. d( i( l* [
Encryptstr = ObjRSA.Encode(StrMessage)
9 X7 w5 @) V0 M  X5 C5 n: fSet ObjRSA = Nothing
1 m, T. `2 m# s% t# K9 J. F: Y! Y5 nend function
* m5 d0 d7 B8 z* M; xfunction decryptstr(Message) 1 X. W: u, h, v, |: z4 u
Dim LngKeyE
6 ~+ d  {, c* y8 EDim LngKeyD
4 O6 J$ y! `. C% w  g& ADim LngKeyN
1 ]( L7 Y/ v) n" o) |Dim StrMessage % K& c# B: ]6 z  \* \
Dim ObjRSA $ T6 e( E$ e+ C
LngKeyE = "32823" 8 g) i& {1 a5 N# F: q
LngKeyD = "20643"
. X; n# t! d% e5 y+ bLngKeyN = "29893"
6 {3 R* E7 u4 W4 q# J! k  TStrMessage = Message 5 ~% j& o1 G# T% b4 K0 r0 L' f
Set ObjRSA = New clsRSA ) ~1 ~2 o! s' ^; W- P/ b
ObjRSA.PrivateKey =LngKeyD % r- z& S# m' X% v9 _1 I4 {8 y
ObjRSA.Modulus=LngKeyN
' U: `# m# |2 |2 ~6 @' xdecryptstr=ObjRSA.Decode(StrMessage) 5 Q3 w  L3 T' g7 e! O
Set ObjRSA = Nothing " g! Y1 e2 `% G4 Y$ b6 Z1 i
end function   h/ a9 q$ g& y: ?# Y
dim last,first
2 x1 [. E. ~, c; a+ lfirst="!@#$%^&*()" ' ^3 F8 p2 E( n8 Z  w, W' l
Response.Write "加密前为:"&first ( |) @% j4 i) h# U# L
last=Encryptstr(first) ) x- i5 J3 U/ |  Y' Z8 S# a) R
Response.Write "加密后为"&last " N2 L1 y' j8 t# b- j' J  T" P% o
Response.Write "解密后为" &decryptstr(last) 1 r% a1 a7 h' ?( _7 Y; T
%> ==============================================8 e+ ^0 A1 r7 F% g. m8 d/ b1 l
剩下的就是字符的对照表了
) h! R. ?) X: l; ^0 N2 o===================字符集================4 t: q$ N- K/ h7 Q  g1 A$ l" ^
1_____6EBB
! K4 U! M6 ?8 {* e9 c& ^2_____5C1F
5 Q! C5 V5 y8 R, A3_____4D75
3 b  p& h, ~  T4_____26CC9 v1 Y  c) p+ x- Q9 ]& o2 n: l
5_____4F887 S( p/ t9 V! a0 ^  I- ^
6_____3F4E
/ i) r. F' ^: Q8 w4 S4 [- Q0 W7_____0A9D
8 S& W) y& J) m: ~8_____1A1C
  q8 q8 @1 J3 s4 q( G  d  _# t! N9_____6D20  B/ {$ e6 T( v, b% Q; T  G6 o
0_____1089* M9 P$ x9 W& f
a_____0F3E
' t  c5 h! e* e0 T! K) q6 n$ ^b_____31596 m( L5 h' o- k# z
c_____35178 K6 g% W6 w5 s0 U. V
d_____419C- k4 B1 i4 T3 A' H0 ?* U. }" B
e_____615C0 x! W. m/ A5 }8 K
f_____556F3 w" O, f' ?6 `
g_____2B7F
( z' L4 x" ~/ ^4 \2 v; zh_____0F9C
" ]. A3 `6 {. V6 V  ~( mi_____00FA
+ {1 t$ Z4 c) `6 H% Yj_____5A50: T% \3 `( \0 k! d
k_____2850$ U4 k- K. t, T' A7 w& B2 W- N
l_____3E7B# I! c: I: ^3 f" B! R
m_____71C5
8 S( b+ o& W1 |n_____1FC8
' Z) A5 M& M' v4 a4 n6 uo_____74C1
% Y9 b2 o4 u) Q- }( m. B+ ?8 Sp_____5FB8
/ A$ P& R1 ~) n4 n! f$ D& Oq_____6085- y/ d. z( `  u5 T3 E6 Z
r_____3AC4+ x6 g$ T0 A& F/ w# \1 \
s_____2F50
" ]- V! k) |3 v7 T- }% z" ~t_____36F88 {$ O6 G2 ^: h2 C  E4 k; Y6 w
u_____70104 A9 e* a* A) ~/ P0 X9 X
v_____0B42/ {. @5 O+ p/ w8 i
w_____1C7A! l' t6 {0 t4 Q+ Y1 H
x_____16F87 [, S8 y% e: p' e+ i3 K  r
y_____2EE7% O' N: ?" V! A+ N: c$ c
z_____5CF38 N' g. X: L+ ~# s2 |* E
!_____62335 k) Z- |" n! I5 D/ {7 H4 ?
@_____3A453 q, Y; h& X  E3 s2 r* {
#_____2291% |* v* B8 o  P, |& k7 V
$_____5D5C
9 [2 _* h/ `* ?- B1 f: s- `%_____09B9& ~2 H2 l( K0 ^; Q+ x: s& t# C0 @
^_____43EA& k  _. }+ T. D
&_____62B9
" E; _8 J7 X; N0 ?( l*_____6301
, I5 `* y& Z; V! F5 U1 T! t(_____4659
2 w! W" G- {3 |8 V' t& X. Q& u)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表