近期剛好做新架構的使用者資料安全這塊
密碼的保護措施:混淆加密--------------------------------拙見----------貼上代碼--請指教
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;
}