在 C# 中生成隨機字母數字字串
-
在 C# 中使用
Random
類生成隨機的字母數字字串 - 在 C# 中使用 LINQ 方法生成隨機的字母數字字串
-
在 C# 中使用
RNGCryptoServiceProvider
類生成隨機的字母數字字串
本教程將討論在 C# 中生成隨機字母數字字串的方法。
在 C# 中使用 Random
類生成隨機的字母數字字串
Random
類在 C# 中生成隨機數。Random.Next()
方法生成一個隨機整數值。我們可以宣告一個包含所有字母數字字元的常量字串變數,並根據 Random.Next()
方法生成的索引從字串變數中選擇字元。
以下程式碼示例向我們展示瞭如何使用 C# 中的 Random
類生成隨機的字母數字字串。
using System;
using System.Linq;
namespace random_alphanumeric_strings {
class Program {
static void Main(string[] args) {
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var Charsarr = new char[8];
var random = new Random();
for (int i = 0; i < Charsarr.Length; i++) {
Charsarr[i] = characters[random.Next(characters.Length)];
}
var resultString = new String(Charsarr);
Console.WriteLine(resultString);
}
}
}
輸出:
vL8M6BNr
我們在 C# 中使用 Random
類生成了一個長度為 8 個字元的隨機字母數字字串。然後,我們初始化了包含所有所需字母數字字元的字串 characters
。我們建立了字元陣列 Charsarr
,長度為 8
個字元。然後,我們初始化了 Random
類 random
的例項。我們遍歷 Charsarr
陣列,並每次將字元從 Charsarr
的 characters
字串中隨機儲存到索引中。然後,我們將字元陣列 Charsarr
轉換為字串變數 resultString
,並顯示結果。
在 C# 中使用 LINQ 方法生成隨機的字母數字字串
LINQ 對 C# 中的資料結構執行查詢功能。我們可以將 LINQ 與 Random
類一起使用,以改善先前方法的效能。下面的程式碼示例向我們展示瞭如何使用 C# 中的 LINQ 方法生成隨機的字母數字字串。
using System;
using System.Linq;
namespace random_alphanumeric_strings {
class Program {
private static Random random = new Random();
public static string method2(int length) {
const string characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
return new string(
Enumerable.Repeat(characters, length).Select(s => s[random.Next(s.Length)]).ToArray());
}
static void Main(string[] args) {
string finalString = method2(8);
Console.WriteLine(finalString);
}
}
}
輸出:
SXUXK2P8
在上面的程式碼中,我們使用 C# 中的 LINQ 和 Random
類建立了一個隨機的字母數字字串。該方法比上面討論的方法更有效。
在 C# 中使用 RNGCryptoServiceProvider
類生成隨機的字母數字字串
不建議使用上面討論的方法來生成密碼,因為它們並不是真正隨機的並且遵循線性模式。對於安全密碼,應使用 RNGCryptoServiceProvider
類。RNGCryptoServiceProvider
類在 C# 中生成加密隨機數。RNGCryptoServiceProvider
類的 GetBytes()
方法用隨機值填充位元組陣列。我們可以將 GetBytes()
方法與 [Convert.ToBase64String()
方法一起使用,以從填充的位元組陣列中獲取字串。以下程式碼示例向我們展示瞭如何使用 C# 中的 RNGCryptoServiceProvider
類生成安全的隨機字母數字字串。
using System;
using System.Linq;
using System.Security.Cryptography;
namespace random_alphanumeric_strings {
class Program {
static string method3(int length) {
using (var crypto = new RNGCryptoServiceProvider()) {
var bits = (length * 6);
var byte_size = ((bits + 7) / 8);
var bytesarray = new byte[byte_size];
crypto.GetBytes(bytesarray);
return Convert.ToBase64String(bytesarray);
}
}
static void Main(string[] args) {
string finalString = method3(8);
Console.WriteLine(finalString);
}
}
}
輸出:
JGc42Ug3
在上面的程式碼中,我們使用 C# 中的 RNGCryptoServiceProvider
類生成了一個由 8 個字元組成的安全隨機字母數字字串。如果我們要生成隨機密碼,則建議使用此方法,因為它比前兩種方法相對安全且不可預測。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn