国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

用 md5 加密數(shù)據(jù)庫中的用戶密碼

2019-11-18 16:27:57
字體:
來源:轉載
供稿:網(wǎng)友

在前面的介紹中,我們提到網(wǎng)站往往將用戶的賬號、密碼等信息使用非加密的方式保存到數(shù)據(jù)庫,比如賬號使用類型為VarChar的UserCount字段,同樣,密碼也是采用類型為VarChar的PassWord字段。但是,如果我們打算采用md5加密方式存儲密碼信息,就必須改變密碼字段PassWord的類型為16為二進制方式,這個其實我們也不難理解,因為在前面的介紹中,我們知道加密以后的輸出,是使用二進制數(shù)組的,所以,這里必須做相應的改變。
  當用戶注冊成功,正式建立一個賬號的時候,數(shù)據(jù)庫中就必須為這個用戶增加一條記錄。以下的程序代碼實現(xiàn)了建立一個賬號的功能,在頁面中,程序要求用戶輸入賬號、密碼等信息,然后,將這些信息作為賬號信息存入名為UserCount的數(shù)據(jù)表,在這個表中,用戶密碼是使用MD5加密保存的。下面就是實現(xiàn)以上頁面的具體代碼:

<%@ Import Namespace="System.Security.Cryptography" %>

<%@ Import Namespace="System.Text" %>

<%@ Import Namespace="System.Data" %>

<%@ Import Namespace="System.Data.SqlClient" %>

<script runat="server" language="VB">

Sub CreateAccount(sender as Object, e as EventArgs)

'1. 建立數(shù)據(jù)庫連接

Const strConnString as String = "connection string"

Dim objConn as New SqlConnection(strConnString)


'2. 建立Command對象

Dim strSQL as String = _

"INSERT INTO UserAccount(Username,Password) " & _

"VALUES(@Username, @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 hashedBytes as Byte()

Dim encoder as New UTF8Encoding()


hashedBytes=md5Hasher.ComputeHash(encoder.GetBytes(txtPwd.Text))


Dim paramPwd as SqlParameter

paramPwd = New SqlParameter("@Password", SqlDbType.Binary, 16)

paramPwd.Value = hashedBytes

objCmd.Parameters.Add(paramPwd)


'加入數(shù)據(jù)庫

objConn.Open()

objCmd.ExecuteNonQuery()

objConn.Close()


End Sub

</script>


<form runat="server">

<h1>建立一個賬號</h1>

用戶名:<asp:TextBox runat="server" id="txtUsername" />

<br />密碼:

<asp:TextBox runat="server" id="txtPwd" TextMode="Password" />

<p><asp:Button runat="server" Text="建立用戶賬號"

OnClick="CreateAccount" /></p>

</form>

 在以上程序實現(xiàn)的頁面中,“用戶名”和“密碼”輸入框要求用戶輸入自己的賬號和密碼,用戶輸入自己的信息以后,按“建立用戶賬號”按鈕,就可以建立一個賬號并且存入數(shù)據(jù)庫。我們同時需要特別注意,因為以上的程序使用到了MD5加密和數(shù)據(jù)庫等功能,所以,在代碼最開頭,我們引入了幾個稍微特別一點的名字空間,這是不可缺少的。
  我們可以看到,PassWord字段的信息是二進制方式保存的,即使數(shù)據(jù)庫被人取得,也不可能知道密碼具體是什么意思。當然,密碼也就不會泄露。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹤峰县| 自贡市| 武功县| 彝良县| 黑龙江省| 当涂县| 安顺市| 崇礼县| 洪湖市| 湖南省| 信宜市| 新余市| 璧山县| 天峨县| 岳阳市| 奉节县| 体育| 西华县| 嘉荫县| 正宁县| 驻马店市| 凤庆县| 太仆寺旗| 惠来县| 龙胜| 讷河市| 集贤县| 盐城市| 鄂托克前旗| 阿拉善左旗| 黑龙江省| 曲阳县| 林芝县| 桐梓县| 宁海县| 海南省| 拉萨市| 体育| 灵武市| 阿勒泰市| 德阳市|