加密處理使密碼更安全[CFS編碼加密]
你是怎麼把密碼儲存到資料庫裡?是以純文字的方式?你可知道這對安全的危險性?當攻擊你網站的人能開啟資料庫瀏覽,以純文字方式存在資料庫裡的密碼一覽無疑,基於安全上的考量,你想這樣適當嗎?有什麼辦法能夠讓別人看到資料庫裡的資料,也沒辦法知道儲存在其中的密碼? 2 V* |4 Y& s2 o2 p6 Z
C" w* l' W- C- @1 L! U
9 ]& p5 ], e% a/ n; n9 \" P+ |: K2 ~
7 j B. ?- Q# v以上問題你是否知道如何解決?本文要告訴你,如何將你的密碼做加密處理,處理過後的密碼字串,就算是公開出來也沒人猜得到原來的密碼!首先我們來看看一組字串: J1 I! b2 G0 `" y) x- X2 Q
& {4 { t2 ]! n. O: z" b8 P
27B827277C70E88DD87E3057BFBE8F ( [/ N) R; U1 C3 u) Z
5 J& l& l' A* b; F! l& G7 s- g! G這是將密碼加密後的結果,你知道加密之前的字串是什麼嗎?其實是『 test 』。不可思議吧!經過處理後的字串,和原本的字串全然不同,我不說你猜的到嗎?如果決定密碼的人不說,這密碼永遠都是個秘密!
, R% J/ b6 j, i( P8 y* l( T; X$ |( D0 h3 T! b/ N$ Y
畢竟這是以原本字串為起點開始編碼,你可能會怕有人用反向工程將字串變回原本的密碼,這點你就不用擔心了,這編碼方式是『單向』的,無法用反向工程恢復!只要將密碼加密後再存入資料庫,你的密碼就多了一份保障!比對密碼時,就將使用者輸入的密碼加密後再跟資料庫比對。講了許多,現在開始告訴你如何寫這段程式。
& U3 f: L2 O" O. k0 N- F5 O" F6 n% S; @ @! j
我們用的加密方法『CFS編碼加密函式庫』,請於《ASP技術廣場網站→檔案下載→相關元件→函式庫》下載其函式包含檔。此為『ASP技術廣場』所創造的加密法,不同於市面上其他的加密編碼方法!下載回來的檔案為ZIP檔,請解壓縮到跟你的ASP同一目錄。
- L' k; w/ j6 K1 V% c+ b S: s& @ @! t1 e1 j6 O
!--#include file="Codefun.fun" -- 7 {. v3 C1 U' U' U- r
|$ Z8 _6 p h+ |
這是用來將函式包含檔加入到你的ASP,請於ASP開頭加上,接著就可使用其編碼函式。 : w+ v1 F) y T4 W: q7 K$ V
( d" E/ _, p$ Q' Y6 h
編碼函式 CfsEncode() 的使用:
. Q8 M, I5 H" ^' B( u) r; m0 G R8 e9 Z
Var = CfsEncode(字串來源)
# Q0 D2 p% m+ V. d9 Z' n" L% e; M2 }& k2 ?' D
範例: : w/ s' o/ X3 [# X
6 ?! |! F7 l4 Q
%Dim SourceDim Var1Source = "test"Var1 = CfsEncode(Source)Response.Write Var1% - |/ e% l& e( Y+ M0 Q
$ n9 e7 O, o/ T
* J+ t4 t- o9 \4 F: i) C: @執行結果: 2 l! N# Q0 V, D2 R/ n' z: v/ ~8 h7 S
$ c# m% }; g" a: W4 Z4 Y" `
27B827277C70E88DD87E3057BFBE8F1 U5 i/ h+ h \7 {
%7 i: O6 _2 L( [0 V S1 p
'********************************************************************************0 w$ Q( n! S# Z
'* *
: J8 ?/ H" o: j0 V; ['* CFS Encode Function *
0 @+ a( p6 q Q! z- @'* *
% `. g- @5 F0 m3 F1 i- O'* Produced by ASP-Zone *
: }3 |8 K$ a: f- T9 y( v8 U' {* z'* *
7 ]) |+ c7 w9 R9 q0 B2 S'* Main website is located at *
2 I, |1 w8 G6 N% \$ `'* http://asp.diy.com.tw/ *0 @, F# H/ |* d& R( X4 U
'* *; M! ^( n! [2 y# }
'* E-MAIL: *8 \8 ]5 w) F) m
'* thiefghost@games.com.tw *8 `' o% B/ f0 g* S& s
'* *
( i1 g4 Q4 k! J$ `* F: r9 H% x'* Use this function: *
& S9 N8 P4 m8 k$ X- Q% z3 R$ B'* !--#include file="Codefun.fun" -- *
4 z! a7 X# ~5 g/ W8 f- [% s'* *2 p- I) T$ m: o4 b8 `. i/ v1 h+ v
'* 2001/8/3 *
; C0 d/ ?- s9 ?2 W) k# a! g'* *; M& ^9 s) H" D4 G- o/ z
'********************************************************************************
7 D1 h/ c4 g3 A$ {
5 Q; S9 J w4 T% b, Z'Encode Function
# F# l0 M( `3 F$ t8 bFunction CfsEnCode(CodeStr)
8 r" b. b2 |8 [- t; n* r3 ?% [" L/ t) e4 [: E
Dim CodeLen9 u J" w. n" s
Dim CodeSpace+ r! u4 j# D) ?3 A4 `. Y; [
Dim NewCode ) L, o* m" C5 B# h! ^
5 d! w. ?. b& S0 k h$ \1 a
CodeLen = 30, J6 I0 L' g, e/ s4 {
CodeSpace = CodeLen - Len(CodeStr)
* K0 m+ ?: \1 d& j9 g" x
4 l1 C* G! `& @2 I9 WIf Not CodeSpace 1 Then5 r, L8 d! N$ P+ q9 G5 M9 i
For cecr = 1 To CodeSpace3 `7 l2 `) T$ d; p- R
CodeStr = CodeStr Chr(21)
q$ s$ q" ~, jNext% P: w& f; W: S; W$ }/ w: N
End If # @0 C& e# w1 F4 V5 }% f+ u
, N9 k1 ^/ j& l7 u. ]7 [" s, `3 j9 C
NewCode = 1 * j$ |+ `# M& \/ i
* X& r: T0 A" D Q7 r! n. FDim Been' Z" N' U! X: }4 p: E1 s* l* R: s
For cecb = 1 To CodeLen
2 l7 M$ W7 V* x" i3 D( w" q' eBeen = CodeLen Asc(Mid(CodeStr,cecb,1)) * cecb% r& l7 ?2 M" N9 u/ E Q9 U1 X
NewCode = NewCode * Been2 o5 ?+ |: [3 O" }: W v
Next
2 Q3 z' S4 }" W+ [) i
" y# y2 I, l X- Z8 tCodeStr = NewCode
7 h# N& Q) l+ ]0 D8 h5 lNewCode = Empty
' ~) p h# I2 E
$ a4 F5 @8 \" x) S9 _For cec = 1 To Len(CodeStr)# m/ j) }9 m2 R! x# ^& H
NewCode = NewCode CfsCode(Mid(CodeStr,cec,3))
/ B7 A5 F+ V; D0 I; gNext 5 h4 T: l7 s+ C" K/ }; a3 r9 N
+ z- G, W6 W1 q5 O `7 I' sFor cec = 20 To Len(NewCode) - 18 Step 2/ w8 g; E$ F& R1 Q/ v1 \; {8 D
CfsEnCode = CfsEnCode Mid(NewCode,cec,1)/ L1 C( r9 s! }! S8 f! U
Next ) Y5 a! ]0 @, F) b: L, ~/ j3 G
0 |. p! f) j1 a6 P( s
End Function * w6 X+ g7 ?0 u/ E+ w
0 N. ]/ g* S, K
* D" y# u6 k8 H0 ~; A0 jFunction CfsCode(Word)
. n6 N, t# J- a* `For cc = 1 To Len(Word)" C5 x/ ]0 o6 }! S9 f- ?3 x+ @
CfsCode = CfsCode Asc(Mid(Word,cc,1))3 |* E Q; h/ [* \: S
Next8 H$ Q! p; j7 N8 J
CfsCode = Hex(CfsCode)
8 A+ `2 B2 r# n; K: F; Y/ W* {End Function
) W X/ d/ h/ P5 L! U/ c. B6 f4 E6 h4 g* w# L) l
%
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹