您好,登錄后才能下訂單哦!
在做軟件開發的過程中,必然會涉及到用戶密碼等關鍵信息的存儲。在大多數的情況下,用戶的密碼是存儲在數據庫中的。如果不加任何保密措施,直接以明文形式保存的話,很容易造成用戶個人信息的泄露,給企業和用戶帶來無法預估的損失。
目前,常用的密碼加密存儲算法有很多種,比如:MD5
、3DES
、AES
、SHA1
等。
今天我們主要來介紹一下MD5加密算法。
什么是MD5算法
MD5是一種用于產生數字簽名的單項散列算法,它以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過一系列處理,算法的輸出由4個32位分組級聯后生成一個128位散列值。
使用ASP.NET把密碼字段值進行加密,代碼如下:
using System.Security.Cryptograhoy;//引入MD5加密命名空間 public string GetMD5(string strPwd) { //將要加密的字符串加上前綴與后綴后再加密 string cl = DateTime.Now.Month + strPwd + DateTime.Now.Day; string pwd = ""; //實例化一個MD5對象 MD5 md5 = MD5.Create(); //加密后是一個字節類型的數組,要注意編碼UTF8/Unicode等的選擇 byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); //翻轉生成的MD5碼 s.Reverse(); //通過循環,將字節類型的數組轉換為字符串 //只取MD5碼的一部分,這樣惡意訪問者無法知道取的是哪幾位 for(int i = 3;i < s.Length-1; i++) { //將得到的字符串使用十六進制類型格式化。格式化后的字符是小寫的字母,如果使用大寫(X),則格式化后的字符是大寫字母 //進一步對生成的MD5碼做一些改造 pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X"); } return pwd; }
注意
如果單純使用MD5算法生成的散列值,是可以被破解的。所以我們在實際開發過程中,需要使用MD5算法,結合加鹽算法來生成無法破解的加密字符串。
以上就是ASP.NET數據庫密碼:MD5加密算法詳解的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。