天天看點

C#--使用者密碼處理------混淆密碼加密

近期剛好做新架構的使用者資料安全這塊

密碼的保護措施:混淆加密--------------------------------拙見----------貼上代碼--請指教

1:生成混淆資料,---存入資料表字段

2:擷取密碼混淆加密字元串-----存入資料表字段

     /*---------------------------------------混淆字元串-----------------------------------------------------------*/
     /// <summary>
        /// 根據26個字母(大小寫)和1~9數字組成的字元串中随機生成一定長度的字元串
        /// </summary>
        /// <param name="len">長度</param>
        /// <returns>傳回字元串</returns>
        public static string CreateRandomStr(int len)
        {
            return GetRandomString("123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ", len);
        }
     //擷取随機字段
     public static string GetRandomString(string pwdchars, int len)
        {
            Random randomSeed = new Random();
            StringBuilder builder = new StringBuilder(len);
            for (int i = 0; i < len; i++)
            {
                builder.Append(pwdchars[randomSeed.Next(pwdchars.Length)]);
            }
            return builder.ToString();
        }
/*-----------------------------------------加密資料------------------------------------------------*/
     /// <summary>
        /// 對字元串str加密後再增加混淆串字元key一起進行加密後得到的字元串,兩次都是采用MD5(string str)方法
        /// </summary>
        /// <param name="pass">字元串</param>
        /// <param name="key">混淆串字元</param>
        /// <returns>加密後的字元串</returns>
        public static string GetPass(string pass, string key)
        {
            //調用MD5生成密碼
            return MD5(MD5(pass) + key);
        }
        /// <summary>
        /// MD5加密(去除“-”)得到字元串
        /// </summary>
        /// <param name="str">字元串</param>
        /// <returns>加密後的字元串</returns>
        public static string MD5(string str)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.Default.GetBytes(str)));
            t2 = t2.Replace("-", "").ToLower();
            return t2;
        }      

繼續閱讀