- 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