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碼,依此類推。