您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)ASP.NET中Membership如何使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1.加Salt散列
我們知道,如果直接對(duì)密碼進(jìn)行散列,那么黑客(統(tǒng)稱那些有能力竊取用戶數(shù)據(jù)并企圖得到用戶密碼的人)可以對(duì)一個(gè)已知密碼進(jìn)行散列,然后通過(guò)對(duì)比散列值得到某用戶的密碼。換句話說(shuō),雖然黑客不能取得某特定用戶的密碼,但他可以知道使用特定密碼的用戶有哪些。
加Salt可以一定程度上解決這一問(wèn)題。所謂加Salt,就是加點(diǎn)“佐料”。其基本想法是這樣的——當(dāng)用戶***提供密碼時(shí)(通常是注冊(cè)時(shí)),由系統(tǒng)自動(dòng)往這個(gè)密碼里撒一些“佐料”,然后再散列。而當(dāng)用戶登錄時(shí),系統(tǒng)為用戶提供的代碼撒上同樣的“佐料”,然后散列,再比較散列值,已確定密碼是否正確。
這里的“佐料”被稱作“Salt值”,這個(gè)值是由系統(tǒng)隨機(jī)生成的,并且只有系統(tǒng)知道。這樣,即便兩個(gè)用戶使用了同一個(gè)密碼,由于系統(tǒng)為它們生成的salt值不同,他們的散列值也是不同的。即便黑客可以通過(guò)自己的密碼和自己生成的散列值來(lái)找具有特定密碼的用戶,但這個(gè)幾率太小了(密碼和salt值都得和黑客使用的一樣才行)。
下面詳細(xì)介紹一下加Salt散列的過(guò)程。介紹之前先強(qiáng)調(diào)一點(diǎn),前面說(shuō)過(guò),驗(yàn)證密碼時(shí)要使用和最初散列密碼時(shí)使用“相同的”佐料。所以Salt值是要存放在數(shù)據(jù)庫(kù)里的。
2.ASP.NET Membership中的相關(guān)代碼
(省略關(guān)于Membership的介紹若干字)
本文Anders Liu僅研究了SqlMembershipProvider,該類位于System.Web.dll,System.Web.Security命名空間中。
首先,要使用Membership,必須先用aspnet_regsql.exe命令來(lái)配置數(shù)據(jù)庫(kù),該工具會(huì)向現(xiàn)有數(shù)據(jù)庫(kù)中添加一系列表和存儲(chǔ)過(guò)程等,配置好的數(shù)據(jù)庫(kù)中有一個(gè)表aspnet_Membership,就是用于存放用戶帳戶信息的。其中我們所關(guān)注的列有三個(gè)——Password、PasswordFormat和PasswordSalt。
Password存放的是密碼的散列值,PasswordFormat存放用于散列密碼所使用的算法,PasswordSalt就是系統(tǒng)生成的Salt值了。
看完上述內(nèi)容,你們對(duì)ASP.NET中Membership如何使用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。