可以使用Membership GeneratePassword方法
string password = System.Web.Security.Membership.GeneratePassword(14, 0);
如果您需要創建自己的鹽和散列一個新的密碼生成這樣的隨機密碼,這裏是做多一樣的會員代碼的實現:
public class Cryptographer : ICryptographer
{
#region ICryptographer Members
public string CreateSalt()
{
byte[] data = new byte[0x10];
new RNGCryptoServiceProvider().GetBytes(data);
return Convert.ToBase64String(data);
}
/// <summary>
/// Hash the password against the salt
/// </summary>
/// <param name="pass">Plain password</param>
/// <param name="salt">Salt string</param>
/// <returns>Encrypted password</returns>
public string HashPassword(string password, string salt)
{
byte[] bytes = Encoding.Unicode.GetBytes(password);
byte[] src = Convert.FromBase64String(salt);
byte[] dst = new byte[src.Length + bytes.Length];
byte[] inArray = null;
Buffer.BlockCopy(src, 0, dst, 0, src.Length);
Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length);
HashAlgorithm algorithm = HashAlgorithm.Create(System.Web.Security.Membership.HashAlgorithmType);
inArray = algorithm.ComputeHash(dst);
return Convert.ToBase64String(inArray);
}
#endregion
}
還有什麼不明白嗎?這是將用戶密碼設置爲「密碼」。這只是一個字符串,可以輸入到任何地方,或者是一個硬編碼的字符串,它們在進入網站的「更改我的密碼」部分之前(也許是來自電子郵件中的鏈接)通過電子郵件發送給用戶。的 –
oryt所以代替使用「密碼」,我們可以使用類似:串NEWPASSWORD = Membership.GeneratePassword(8,2);然後通過新密碼 –
準確呀... –