返回列表 发帖

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

原创作者:柔肠寸断 [3.A.S.T]  http://www.3ast.com.cm( b! N9 z% a! g5 R& r
原始出处:http://www.3ast.com.cm9 x3 F0 Z) V: W, w

6 e" ~# J( \9 u5 }  p: B看不懂的直接绕过
+ }+ \/ n1 j( B# h2 ]加密前为:hwy123456- t7 t! N9 z  ^% E
加密后为0F9C1C7A2EE76EBB5C1F4D7526CC4F883F4E
* k1 c9 V+ D/ \! @" j' B: l/ D
4 R0 N" a2 }6 R============================================
9 t% O8 T( ?/ g8 Y$ ]& k上面是当时自己校内的心情。现在已经解破出来了,分享给大家) r- K  \2 K. s% o0 I( a; Y
也就不隐瞒大家什么了,这个是国内某知名大学的后台加密算法
, g( R2 N8 R2 u2 J* r( Y+ I以下是RSA算法文件
" @! f% C1 D- m3 w" |. G2 N4 J) Z6 A! W8 N! ]% C  o' ^
文件名RSA.ASP
4 _7 O! s3 R, a8 n  \3 n===============================================+ C7 ?: B% j7 n8 t/ U* I
<% 7 q, }8 D# E+ [# r2 _3 _7 o5 `2 X
Class clsRSA 9 y! @. j, m# w) i
Public PrivateKey
6 C; ^9 |$ L9 s$ \: w+ |Public PublicKey # q) j: n9 l- f3 ~
Public Modulus
+ ]( Y0 e+ m/ R, j5 m* x3 FPublic Function Crypt(pLngMessage, pLngKey)
* Z! U% y% d! a* S! uOn Error Resume Next 2 {+ E! n2 q- [& w' o0 \
Dim lLngMod ; `9 R8 T2 p! h; C2 C  N0 G
Dim lLngResult 6 \- t" m6 w; I3 k! w
Dim lLngIndex & d1 R8 C/ x$ Y( ~+ x: ^
If pLngKey Mod 2 = 0 Then
2 H6 ?4 |6 k$ H( h6 X  E# slLngResult = 1
3 p. U2 B; u$ ?For lLngIndex = 1 To pLngKey / 2 - ~+ P% A$ U( {& Z) i0 l
lLngMod = (pLngMessage ^ 2) Mod Modulus
& v& O7 D; d; B' Mod may error on key generation 1 B6 k! X  f" i; Y/ v# }
lLngResult = (lLngMod * lLngResult) Mod Modulus
* w: t  ^/ X3 D" BIf Err Then Exit Function % A9 Z- u, i+ c# ^
Next : ?  c* u" P) C4 P
Else 8 V9 R2 i* q/ I- ^" L, _8 K
lLngResult = pLngMessage / X+ z9 k% ^3 x1 I+ V7 y. J
For lLngIndex = 1 To pLngKey / 2
. Y7 g/ {& I0 C  ^3 J7 LlLngMod = (pLngMessage ^ 2) Mod Modulus
& V9 `" k5 Y6 S7 k% |* mOn Error Resume Next 9 n0 y/ [. }7 R1 b" r
' Mod may error on key generation
* b: a' o5 X) b# {7 BlLngResult = (lLngMod * lLngResult) Mod Modulus - K  L% F3 W: T1 x
If Err Then Exit Function 7 L" D8 d# k2 A; q0 w  Y
Next
% ]; Y3 I' Q; x+ r- @6 F% d" kEnd If . I5 ^! o( N$ C! j- w; o. {. B
Crypt = lLngResult
( P0 G( y5 `; P2 q' f! Z7 OEnd Function" l6 x. x" P1 l' ^) T( [5 f
6 E# |" y3 R5 {- P, [4 \
Public Function Encode(ByVal pStrMessage)
# V  R9 k* D9 A" y1 I1 VDim lLngIndex ( o7 [- E. a" ]$ z( A* h
Dim lLngMaxIndex # A% ~. t% F& h, B" b
Dim lBytAscii
) ^; C" h2 I6 k$ r( P  I4 ADim lLngEncrypted + u! t9 e  `& {! a
lLngMaxIndex = Len(pStrMessage) & T' X8 m) _& l5 v  T& r
If lLngMaxIndex = 0 Then Exit Function 4 y# `. ^5 |7 g% Y/ L* D
For lLngIndex = 1 To lLngMaxIndex + H9 y4 c. b& s& \% Y
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
9 R/ a2 ^6 v6 K; d: N1 T; ~" X' NlLngEncrypted = Crypt(lBytAscii, PublicKey) , C3 j  t* Q5 v3 r' P; I% Z
Encode = Encode & NumberToHex(lLngEncrypted, 4)
0 g. w- D* p! p: N& t4 y& T4 O/ ENext $ y8 _  T" j. |1 H* u6 ?
End Function
% x& J. o, m% u. ZPublic Function Decode(ByVal pStrMessage)
; x3 @; N- z6 n9 w& B$ ~1 l6 a0 hDim lBytAscii
' ?& i' z: ^3 k- ]# |Dim lLngIndex
4 @. h6 o+ p9 h) U3 YDim lLngMaxIndex % n- q+ l% w; C, t2 o) X# @
Dim lLngEncryptedData ' }( c0 C' ~7 [+ v0 b
Decode = "" 4 x* z, z) `% y
lLngMaxIndex = Len(pStrMessage)
8 U( [3 G% Q4 CFor lLngIndex = 1 To lLngMaxIndex Step 4 / {5 V, {6 X$ p8 U
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
" j" _8 |8 r/ t. r% QlBytAscii = Crypt(lLngEncryptedData, PrivateKey)   g# Y8 w4 ~( g  z
Decode = Decode & Chr(lBytAscii)
& r& J4 f! n  i$ a  V8 v8 ^Next
7 q8 A( B! F0 s* l+ _1 D/ _# rEnd Function
2 L2 K8 Z! W* ]# `) h' q+ xPrivate Function NumberToHex(ByRef pLngNumber, ByRef pLngLength) . e. Y. S, }# K( ]
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength) - y& y% V  \4 a* O+ P
End Function % ^/ {( Q  z8 a8 F, u# C& @% _. k
Private Function HexToNumber(ByRef pStrHex) 1 }/ l+ @$ p7 u& |* @$ Q8 o
HexToNumber = CLng("&h" & pStrHex)
) k+ x3 {/ E9 s! K5 @End Function
* ]6 R* ?3 w* {End Class
8 v) E; U. m4 rfunction Encryptstr(Message)
7 R# j- j5 F0 |2 |" sDim LngKeyE 2 Y( ^0 P7 H, A" `6 b6 {; V2 B% @
Dim LngKeyD
6 z: y1 q7 s! R. f( t, DDim LngKeyN , U; \- n, i" L! r* t5 W
Dim StrMessage 7 b0 |: c$ w0 I, O
Dim ObjRSA
6 f2 U8 E3 {4 M7 vLngKeyE = "32823"
! I, ^7 w3 G; e' f  @( rLngKeyD = "20643"
' \- ?5 t1 `: y! b: k) eLngKeyN = "29893"
4 j  A6 a% w" M! zStrMessage = Message   H7 a' T0 u: G# V+ `% U9 a
Set ObjRSA = New clsRSA 0 D. ?4 R$ H% X. H  @2 G
ObjRSA.PublicKey = LngKeyE 9 j4 i% o& m: F& Q* O: Y
ObjRSA.Modulus = LngKeyN ) `1 g% I% c3 a/ ?+ Q( a# b
Encryptstr = ObjRSA.Encode(StrMessage)
% i* |. Z* h! ESet ObjRSA = Nothing - U* `" ]9 J: x1 E3 b, V- N. v6 k
end function
) m3 h1 k6 a! c9 a3 sFunction Decryptstr(Message)
- f  L: ?. P1 q4 z% ^) \Dim LngKeyE
; b2 j- c8 n" @3 L, N$ rDim LngKeyD 9 Y/ o+ G4 C2 m% t: x
Dim LngKeyN , h+ }) l! M8 ]' f/ V6 Q: M/ n' V
Dim StrMessage
) |' z  i) H* z. d4 W# j0 P8 ZDim ObjRSA ' A1 [5 @- n+ T3 L) v; g5 P
LngKeyE = "32823"
7 \" P1 Q9 d9 u/ N3 pLngKeyD = "20643"
* c/ w6 D4 @* s4 O" ULngKeyN = "29893"
$ A) E$ H7 o0 J  |& P, e+ ^StrMessage = Message
8 t! O* f( g7 m) [7 M! N# vSet ObjRSA = New clsRSA + a9 j* a- I: Y% A( _
ObjRSA.PrivateKey =LngKeyD   @; ]9 p( B/ t" ^( O) }, D; j/ {2 W
ObjRSA.Modulus=LngKeyN / X) e; s9 }9 o: Q8 [  c; c
decryptstr=ObjRSA.Decode(StrMessage) / S& a2 l: f1 s, t$ A: y$ Z$ S
Set ObjRSA = Nothing
- H! X* b5 K, ^end function 9 ^$ S) `0 u7 U5 Z
%>' q/ `* ]* s. G; t' O! H: {8 R4 z
===============================================
! R$ d3 c' A: ]* }3 z) U. T; L5 b% ~  i- F0 o4 [, C' ]# b7 ?: H
还有一个用于测试这段代码的test.asp
# i* U. {4 b! B有兴趣的自己搭建个IIS测试下) Z& w+ e! x; I- i( [
<!--#INCLUDE FILE="RSA.asp"--> 0 X1 K% w  A) T! D) d, L
<%8 q" {# C/ q$ f2 ], [
function Encryptstr(Message)
, E% ]  z* T0 J8 R% g" TDim LngKeyE 2 S7 J* v9 x. A/ ?3 e
Dim LngKeyD ' h0 n  E% e. A- t
Dim LngKeyN ! f- E% x3 z) G" E, {
Dim StrMessage
8 |' e( e# F: Q6 G7 [$ cDim ObjRSA * j: s. N2 Z0 h( \9 m
LngKeyE = "32823" 3 v) Q; d. Q, B
LngKeyD = "20643" , h& t& B/ l- m$ f; c* X
LngKeyN = "29893" 0 O5 L: f# ^3 d& `, d# }9 l" k( g' w
StrMessage = Message
& A9 [9 C+ v* S. N1 f6 {# F0 ~$ ASet ObjRSA = New clsRSA 0 w6 K2 d) ]9 P8 D
ObjRSA.PublicKey = LngKeyE
5 @0 i* E. v6 e/ `6 H! r/ l, L" D0 lObjRSA.Modulus = LngKeyN $ Z" z- @8 ?* a8 s0 K! C- I# S
Encryptstr = ObjRSA.Encode(StrMessage)
) T+ n; r7 {; sSet ObjRSA = Nothing
- g  X+ m& ]# @: b* S  F3 Send function 1 |: t7 d5 @. r! F4 v
function decryptstr(Message) / i4 r5 j+ S) l' l& S
Dim LngKeyE 5 ?$ g5 W, Y. U; d0 e
Dim LngKeyD ! h6 n  c; [5 Q" R5 Y. A
Dim LngKeyN " H# ?# V5 t, e* M' @- }+ |% q8 ]
Dim StrMessage 1 @5 V. p1 I+ L2 i0 Q
Dim ObjRSA 4 |) {# q7 w) {& v; D8 Y
LngKeyE = "32823"
- ~8 \( H! V+ O9 v8 M2 h7 I% @5 DLngKeyD = "20643"
" @4 Z6 p' Y) O' |$ y2 n% h9 GLngKeyN = "29893" 0 \9 h# D1 p0 x* }
StrMessage = Message
( X" d2 f& J  G5 v, l: s. o: PSet ObjRSA = New clsRSA
5 Y$ ^! m3 l% I- IObjRSA.PrivateKey =LngKeyD " {5 |" C$ E9 S( S* d! I0 {) I
ObjRSA.Modulus=LngKeyN
) R( Z& Y( x  P& Bdecryptstr=ObjRSA.Decode(StrMessage) 6 c$ M) h; S. q3 K: \) e: ?
Set ObjRSA = Nothing " T) x) N5 J2 A( `
end function
1 b, W9 v+ D6 B1 B* n2 t. ?6 |dim last,first
% X' b; q2 `  l4 _3 _/ B: R9 dfirst="!@#$%^&*()" 6 a) g) f% ~! J" y
Response.Write "加密前为:"&first
' {5 @$ l  [2 J$ o" Glast=Encryptstr(first)
$ g4 ~) z( M& i! |, bResponse.Write "加密后为"&last " P. D7 y7 b- h$ f5 |
Response.Write "解密后为" &decryptstr(last)   K: ?+ y7 t- H  N/ O/ O. T
%> ==============================================
, I( R7 m. o$ w: Q5 {; e剩下的就是字符的对照表了
; W7 k6 B$ {/ [/ A1 `, P0 i===================字符集================
& P  d# |1 t7 E) ~. Q0 @5 ]1_____6EBB
6 a( }% n7 }" U0 D) g! y0 s4 [. x2_____5C1F
/ P% E2 L4 q/ |, M1 R* m3_____4D758 Q9 [/ a9 f$ V4 X' j9 n! \" J
4_____26CC
' R7 b0 v) V2 \) j) O1 e; S5_____4F88
& C6 l  O: c9 e' {! g3 A6_____3F4E
! t2 h8 p/ h# T7_____0A9D% V0 o  h/ e; @
8_____1A1C
  D( e6 ~( h8 A( d3 p, Z/ d4 \9_____6D20; l0 y' O# P/ O3 n: L) ]
0_____10892 p! {  j* ]  @" I$ d5 w
a_____0F3E- K3 l  l( w: t2 @# }( D
b_____3159
) ~# p$ @4 W; @& i/ gc_____3517
/ h& s8 w. z- ?! m, m6 X7 ld_____419C0 k  j/ b5 J9 P1 k
e_____615C" x! v* b! s, t# H6 Y3 T9 @
f_____556F& @. @) W# X! K6 Y! Z) ?2 b7 v7 h
g_____2B7F+ k( N- Y1 E( ~% j9 S0 ~) Y
h_____0F9C; D6 t' z4 T. U/ b( A2 S: ]
i_____00FA
& Y' e1 ^& b4 j. ]$ Y' K6 [j_____5A50
5 P: D: M8 s& i" `  Ck_____2850
/ {1 I. n& O# O: O; i( M1 kl_____3E7B
. a( @$ [. i+ V! _+ P$ pm_____71C5
# O) _% d1 o0 |) P9 o7 Nn_____1FC8% _8 i$ Y+ {( g2 E( o( Z
o_____74C1
0 O( P  X0 ^5 J$ fp_____5FB8  _/ l& L) a' e% y) H/ x: P
q_____6085
2 ?) ?' K$ l. J+ ^0 z  U; Rr_____3AC4
& }; r8 a; W5 s7 Q( [; [( qs_____2F50! x; p- A4 d! G% d  j
t_____36F8
# k/ @! O$ [( \$ Du_____7010  r7 X$ Y4 |; U& f# `
v_____0B42
2 \$ u0 Q  R" g% Hw_____1C7A8 N3 x9 r. X& A' w# R
x_____16F8
) S1 T7 ^4 N  r" D, U5 o8 C0 ty_____2EE7' H  }$ w! k' {/ {. m. t4 D, b
z_____5CF37 j. C( s1 s& u3 J
!_____6233# g7 ]4 Z" q% p# S, N3 ~- b
@_____3A45) d0 s! O5 ^" w5 I! X
#_____2291
! z* x5 V  N5 Q! E( x3 E+ D; B1 \+ ~$_____5D5C
0 T% c$ q$ H, }! H%_____09B9/ `- P% n& }) T- }% d' s( `
^_____43EA) g, a2 B' I5 k% `- A
&_____62B9
, P/ k: v, o& R9 t*_____6301
  D" [; w: o: n+ k* U5 W(_____4659
1 |, O" g5 R( k7 X+ W. `1 W5 g)_____5C82
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

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

收藏了。。。。。。。。

TOP

返回列表