你是怎么把密码储存到数据库里?是以纯文字的方式?你可知道这对安全的危险性?当攻击你网站的人能开启数据库浏览,以纯文字方式存在数据库里的密码一览无疑,基于安全上的考量,你想这样适当吗?有什么办法能够让别人看到数据库里的数据,也没办法知道储存在其中的密码?
以上问题你是否知道如何解决?本文要告诉你,如何将你的密码做加密处理,处理过后的密码字符串,就算是公开出来也没人猜得到原来的密码!首先我们来看看一组字符串:
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
%>
