登山-C#-對密碼進行加密儲存
阿新 • • 發佈:2019-01-29
由於明文儲存密碼會有很大的風險,所以一直想用加密的方式進行儲存。
看了網上一些文章後,決定選擇MD5加隨機salt的方式進行加密。
基本的思想就是在建立使用者是隨機產生一個salt字串。然後用密碼拼接salt字串,然後用MD5對拼接後的字串進行加密存入資料庫,這樣就可以避免明文儲存,而且這樣別人破解的成本會很大,基本無破解的意義。
/// <summary> /// 對字串加密 /// </summary> /// <param name="passwordAndSalt"></param> /// <returns></returns> private static string EncryptPassword( string passwordAndSalt) { MD5 md5 = MD5.Create(); byte[] passwordAndSaltBytes = System.Text.Encoding.UTF8.GetBytes(passwordAndSalt); byte[] hs = md5.ComputeHash(passwordAndSaltBytes); StringBuilder sb = new StringBuilder(); foreach(byte b in hs) { sb.Append(b.ToString("x2")); } return sb.ToString(); }
寫了一個如上的公用的方法,需要對什麼字串加密,直接傳給它就可以返回加密後的字串。