- System.Random
- System.Security.Cryptography.RNGCryptoServiceProvider
System.Random is not good enough for cryptographic purposes. Microsoft recommends creating one instance of System.Random to generate numbers for your application. Also it's not thread safe.
System.Security.Cryptography.RNGCryptoServiceProvider:
The RNGCryptoServiceProvider is used as cryptographic random number generators as it can not be predict. It is a more secure way to generate random numbers.
The following Console application sample generates 10 random values.
using System; using System.Security.Cryptography;
static void Main()
{
for (var i = 0; i < 10; i++)
{
int keySize = 32;
var randomValueByte = GenerateRandomValue(keySize);
Console.WriteLine(Convert.ToBase64String(randomValueByte));
}
Console.ReadLine();
}
public static byte[] GenerateRandomValue(int keySize )
{
var randomValue = new byte[keySize];
using (var randomValueGenerator = new RNGCryptoServiceProvider())
{
randomValueGenerator.GetBytes(randomValue);
}
return randomValue;
}
Output:
Check my another article to learn Cryptographic Hashing Algorithm in .Net.

No comments:
Post a Comment