摘要:c#-隨機密碼產生
這是我改寫別人程式後程式碼
//*****************************************************************************//
//功能:產生亂數密碼 //
//*****************************************************************************//
using System;
using System.Security.Cryptography;
using System.Text ;
/// <summary>
/// 使用 RNGCryptoServiceProvider 產生由密碼編譯服務供應者 (CSP) 提供的亂數產生器。
/// </summary>
public class RandomPassword
{
private RNGCryptoServiceProvider rngp = new RNGCryptoServiceProvider();
private byte[] rb = new byte[4];
/// <summary>
/// 產生一個非負數的亂數
/// </summary>
private int Next()
{
rngp.GetBytes(rb);
int value = BitConverter.ToInt32(rb, 0);
if (value < 0) value = -value;
return value;
}
/// <summary>
/// 產生一個非負數且最大值 max 以下的亂數
/// </summary>
/// <param name="max">最大值</param>
private int Next(int max)
{
rngp.GetBytes(rb);
int value = BitConverter.ToInt32(rb, 0);
value = value % (max + 1);
if (value < 0) value = -value;
return value;
}
/// <summary>
/// 產生一個非負數且最小值在 min 以上最大值在 max 以下的亂數
/// </summary>
/// <param name="min">最小值</param>
/// <param name="max">最大值</param>
private int Next(int min, int max)
{
int value = Next(max - min) + min;
return value;
}
public string GetRandomPassword(int length)
{
StringBuilder sb = new StringBuilder();
char[] chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
for (int i = 0; i < length; i++)
{
sb.Append(chars[this.Next(chars.Length - 1)]);
}
string Password = sb.ToString();
return Password;
}
}