C# HEX 字串 產生方式 (HEX KEY Gen)

很多時候,需要產生 HEX KEY 來做為唯一值,或是種子密碼來用,一般的情況我們會檢單的使用亂數(Random)來產生

Random rnd = new Random();
int num = rnd.Next();
string hexData = num.ToString("X");



但是,許多人都知道,如果要產生很長的HEX字串,這個 Ramdom 是不夠力的。

而且也有『不夠亂』的問題存在(受限於Random演算法)

當然如果需要32字元的 HEX 字串,也可以直接使用 GUID 產生方式來獲得:


string guidString = Guid.NewGuid().ToString().Replace("-", "").ToUpper();
string hexData = guidString;



但是如果要再更長,夠亂的HEX字串呢?
則可以使用 RNGCryptoServiceProvider 來處理

使用前記得引用 System.Security.Cryptography

byte[] bytes = new byte[16];
using (var rng = new RNGCryptoServiceProvider())
{
        rng.GetBytes(bytes);
}
string sBytes = BitConverter.ToString(bytes).Replace("-", "");
string hexData = sBytes;



長度的決定就由 byte 陣列大小來決定,因為一個byte可以生成2個字元的HEX碼,
所以byte[16]可以生成32字元HEX碼,byte[32]可以生成64字元的HEX碼,依此類推。

留言

這個網誌中的熱門文章

【研究】列印的條碼為什麼很難刷(掃描)

C# 使用 Process.Start 執行外部程式

統一發票列印小程式