/// <summary>以亂數生成新密碼</summary>
/// <returns>回傳認證碼</returns>
public string CreateNewPassword() {
// 使用 RNGCryptoServiceProvider 產生由密碼編譯服務供應者 (CSP) 提供的亂數產生器
RNGCryptoServiceProvider RNGPService = new RNGCryptoServiceProvider();
// 用來存放隨機序列值
byte[] RandomByte = new byte[4];
// 用來存放隨機亂數值
char[] Chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
// 用來存放生成的亂數密碼
StringBuilder Str = new StringBuilder();
// 初始密碼長度
int PasswordLength = 10;
// 用來存放位元陣列轉換後的結果
int Value = 0;
// 開始生成密碼
for (int Index = 0; Index < PasswordLength; Index++) {
// 取得隨機編譯的亂數值
RNGPService.GetBytes(RandomByte);
// 用來存放位元陣列轉換後的結果
Value = BitConverter.ToInt32(RandomByte, 0);
// 產生一個非負數且最大值為隨機亂數值長度以下的亂數
Value = Value % (Chars.Length - 1 + 1);
if (Value < 0) Value = -Value;
// 印出亂數
Str.Append(Chars[Value]);
}
return Str.ToString();
}
沒有留言:
張貼留言