你是怎麼把密碼儲存到資料庫裡?是以純文字的方式?你可知道這對安全的危險性?當攻擊你網站的人能開啟資料庫瀏覽,以純文字方式存在資料庫裡的密碼一覽無疑,基於安全上的考量,你想這樣適當嗎?有什麼辦法能夠讓別人看到資料庫裡的資料,也沒辦法知道儲存在其中的密碼?
以上問題你是否知道如何解決?本文要告訴你,如何將你的密碼做加密處理,處理過後的密碼字串,就算是公開出來也沒人猜得到原來的密碼!首先我們來看看一組字串:
27b827277c70e88dd87e3057bfbe8f
這是將密碼加密後的結果,你知道加密之前的字串是什麼嗎?其實是『 test 』。不可思議吧!經過處理後的字串,和原本的字串全然不同,我不說你猜的到嗎?如果決定密碼的人不說,這密碼永遠都是個秘密!
畢竟這是以原本字串為起點開始編碼,你可能會怕有人用反向工程將字串變回原本的密碼,這點你就不用擔心了,這編碼方式是『單向』的,無法用反向工程恢復!只要將密碼加密後再存入資料庫,你的密碼就多了一份保障!比對密碼時,就將使用者輸入的密碼加密後再跟資料庫比對。講了許多,現在開始告訴你如何寫這段程式。
我們用的加密方法『cfs編碼加密函式庫』,請於《asp技術廣場網站→檔案下載→相關元件→函式庫》下載其函式包含檔。此為『asp技術廣場』所創造的加密法,不同於市面上其他的加密編碼方法!下載回來的檔案為zip檔,請解壓縮到跟你的asp同一目錄。
<!–#include file="codefun.fun" –>
這是用來將函式包含檔加入到你的asp,請於asp開頭加上,接著就可使用其編碼函式。
編碼函式 cfsencode() 的使用:
var = cfsencode(字串來源)
範例:
<%dim sourcedim var1source = "test"var1 = cfsencode(source)response.write var1%>
執行結果:
27b827277c70e88dd87e3057bfbe8f
<%
********************************************************************************
* *
* cfs encode function *
* *
* produced by asp-zone *
* *
* main website is located at *
* http://asp.diy.com.tw/ *
* *
* e-mail: *
* thiefghost@games.com.tw *
* *
* use this function: *
* <!–#include file="codefun.fun" –> *
* *
* 2001/8/3 *
* *
********************************************************************************
encode function
function cfsencode(codestr)
dim codelen
dim codespace
dim newcode
codelen = 30
codespace = codelen – len(codestr)
if not codespace < 1 then
for cecr = 1 to codespace
codestr = codestr & chr(21)
next
end if
newcode = 1
dim been
for cecb = 1 to codelen
been = codelen + asc(mid(codestr,cecb,1)) * cecb
newcode = newcode * been
next
codestr = newcode
newcode = empty
for cec = 1 to len(codestr)
newcode = newcode & cfscode(mid(codestr,cec,3))
next
for cec = 20 to len(newcode) – 18 step 2
cfsencode = cfsencode & mid(newcode,cec,1)
next
end function
function cfscode(word)
for cc = 1 to len(word)
cfscode = cfscode & asc(mid(word,cc,1))
next
cfscode = hex(cfscode)
end function
%>
