1. 程式人生 > >登山-C#-對密碼進行加密儲存

登山-C#-對密碼進行加密儲存

由於明文儲存密碼會有很大的風險,所以一直想用加密的方式進行儲存。

看了網上一些文章後,決定選擇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();
        }

寫了一個如上的公用的方法,需要對什麼字串加密,直接傳給它就可以返回加密後的字串。