使用MD5加密數(shù)據(jù)庫(kù)中的用戶密碼(二)_Access數(shù)據(jù)庫(kù)教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:解讀八種方法防止數(shù)據(jù)庫(kù)被下載下面提供的的方法分別適用使用虛擬主機(jī)空間的用戶和有IIS控制權(quán)的用戶! 一:購(gòu)買虛擬主機(jī)空間的,適合沒(méi)有IIS控制權(quán) 1:發(fā)揮你的想象力 修改數(shù)據(jù)庫(kù)文件名 這個(gè)是最基本的。我想現(xiàn)在也沒(méi)有多少連數(shù)據(jù)庫(kù)文件名都懶得改的人吧? 至于改成什么,你自己看著辦,至
使用MD5鑒別是否合法用戶既然用戶密碼是按照MD5加密以后保存在數(shù)據(jù)庫(kù)中的,我們知道,MD5是單次加密算法,所以,不可能將加密以后的信息轉(zhuǎn)為明文,也就是說(shuō),已經(jīng)沒(méi)有辦法知道。這就出現(xiàn)一個(gè)問(wèn)題,如果用戶使用賬號(hào)、密碼登錄,怎么知道用戶提供的密碼是否準(zhǔn)確呢?
這就不得不提到我們前文說(shuō)到的MD5的特征,我們知道,任意一段明文數(shù)據(jù),經(jīng)過(guò)加密以后,其結(jié)果必須永遠(yuǎn)是不變的,也就是說(shuō),如果需要驗(yàn)證用戶密碼是否正確,只需要將用戶當(dāng)前提供的密碼使用MD5加密,然后和數(shù)據(jù)庫(kù)中保存的密碼字段比較就可以了。以下代碼就可以實(shí)現(xiàn)這個(gè)功能:
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<Script runat="server" language="VB">
Sub Login(sender as Object, e as EventArgs)
'1. 建立數(shù)據(jù)庫(kù)連接
Const strConnString as String = "connection string"
Dim objConn as New SqlConnection(strConnString)
'2. 建立Command對(duì)象
Dim strSQL as String = "SELECT COUNT(*) FROM UserAccount " & _
"WHERE Username=@Username AND Password=@Password"
Dim objCmd as New SqlCommand(strSQL, objConn)
'3. SQL參數(shù)
Dim paramUsername as SqlParameter
paramUsername = New SqlParameter("@Username", SqlDbType.VarChar, 25)
paramUsername.Value = txtUsername.Text
objCmd.Parameters.Add(paramUsername)
'加密密碼信息
Dim md5Hasher as New MD5CryptoServiceProvider()
Dim hashedDataBytes as Byte()
Dim encoder as New UTF8Encoding()
hashedDataBytes = md5Hasher.ComputeHash(encoder.GetBytes(txtPwd.Text))
Dim paramPwd as SqlParameter
paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 16)
paramPwd.Value = hashedDataBytes
objCmd.Parameters.Add(paramPwd)
objConn.Open()
Dim iResults as Integer = objCmd.ExecuteScalar()
objConn.Close()
If iResults = 1 then
'正確
Else
'錯(cuò)誤
End If
End Sub
</script>
<Form runat="server">
<h1>Login</h1>
用戶賬號(hào): <asp:TextBox runat="server" id="txtUsername" />
<br />密碼:
<asp:TextBox runat="server" id="txtPwd" TextMode="Password" />
<p><asp:Button runat="server" Text="Login" onClick="登錄" />
</form>
使用加密方式保存密碼到數(shù)據(jù)庫(kù)的限制
在決定是否使用加密方式保存密碼以前,我們還需要考慮一些問(wèn)題。因?yàn)镸D5是單次加密算法,加密以后的信息不可以解密,所以,如果用戶丟失密碼,任何人都很難找到用戶原來(lái)的密碼,這時(shí)候,網(wǎng)站也就相應(yīng)的失去一個(gè)很重要的功能,那就是用戶提供其他信息來(lái)取得忘記的密碼的功能,這不能不說(shuō)是網(wǎng)站的一個(gè)大缺陷。另外,采用這樣的加密方式,必須完全修改以前的用戶資料,要求用戶完全重新注冊(cè),這也是這種方法比較困難的一個(gè)地方。
總 結(jié)
以上我們?cè)敿?xì)介紹了MD5加密用戶密碼的實(shí)現(xiàn)方法,同時(shí),也介紹了采用加密密碼方式以后,用戶鑒別的實(shí)現(xiàn)。并討論了使用這種加密方式的應(yīng)用限制。在實(shí)際應(yīng)用中,我們可以將次方法做適當(dāng)?shù)男薷暮脱a(bǔ)充,以更加適合我們的應(yīng)用需要。
分享:如何刪除Access數(shù)詞庫(kù)中的空記錄用零長(zhǎng)度字符指示不存在數(shù)據(jù) 若要在 Microsoft Access 數(shù)據(jù)庫(kù)中指示不存在數(shù)據(jù),可以在“文本”或“備注”字段輸入零長(zhǎng)度字符串 (零長(zhǎng)度字符串:不含字符的字符串�?梢允褂昧汩L(zhǎng)度字符串來(lái)表明您知道該字段沒(méi)有值。輸入零長(zhǎng)度字符串的方法是鍵入兩個(gè)彼此之
相關(guān)Access數(shù)據(jù)庫(kù)教程:
- Access數(shù)據(jù)庫(kù)安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語(yǔ)句刪除表關(guān)系
- Access報(bào)表打印如何自動(dòng)分頁(yè)
- Access完成累計(jì)余額的計(jì)算
- 搭建Access為主的Mdb數(shù)據(jù)庫(kù)
- 一句sql更新兩個(gè)表并可更新對(duì)應(yīng)的字段值具體實(shí)現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語(yǔ)句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準(zhǔn)則進(jìn)行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計(jì)數(shù)據(jù)庫(kù)
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
Access數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫(kù)教程推薦
- ACCESS數(shù)據(jù)訪問(wèn)頁(yè)配置實(shí)例
- 恢復(fù)從 Access 2000、 Access 2002 或 Access 2003 中數(shù)據(jù)庫(kù)刪除表的方法
- ASP實(shí)現(xiàn)access隨機(jī)顯示不重復(fù)記錄解決方案
- 解析Access與Sql Server之ASP代碼比較
- 如何堵住電腦中的Access漏洞 拒絕惡意網(wǎng)站
- 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)
- Access 執(zhí)行SQL的方法
- 如何給ODBC連接打開(kāi)連接池
- Microsoft Access秘密、技巧和陷阱
- 搭建Access為主的Mdb數(shù)據(jù)庫(kù)
猜你也喜歡看這些
- 如何用Access輕松打造圖書(shū)管理系統(tǒng)
- 加密你的Access數(shù)據(jù)庫(kù)asp打開(kāi)方法
- 中文Access2000速成教程--1.3 在“設(shè)計(jì)”視圖中設(shè)計(jì)表
- 淺議ACCESS統(tǒng)計(jì)不重復(fù)記錄個(gè)數(shù)問(wèn)題
- ACCESS數(shù)據(jù)的優(yōu)化和安全
- 轉(zhuǎn)換Access數(shù)據(jù)庫(kù)以獲得更優(yōu)性能
- 如何使用三大措施保障網(wǎng)站安全運(yùn)營(yíng)
- 搭建Access為主的Mdb數(shù)據(jù)庫(kù)
- PHP高級(jí)技巧:使用PHP模擬HTTP認(rèn)證
- 解析Access中如何自動(dòng)建立表的連接表達(dá)式
- 相關(guān)鏈接:
- 教程說(shuō)明:
Access數(shù)據(jù)庫(kù)教程-使用MD5加密數(shù)據(jù)庫(kù)中的用戶密碼(二)
。