Kriptografik rasgele sayı üreteçleri; kriptografik uygulamalar için rastgele sayılar üretmektedir. Örneğin kullanacağınız anahtarlar için rastgele sayı üretmeniz gerekebilir. Çoğu programlama dilinde bulunan bu üreteçler kriptografik uygulamalar için uygun değildirler.
bunlar kriptanalistlerin saldırılarına direnmek için değil, sadece istatistiksel rasgelelik için tasarlanmışlardır.
.NET ortamında rastgele sayı üretmek istiyorsanız System.Random nesnesini kullanmalısınız. Çoğu senaryoda işinize yarayabilir fakat söz konusu güvenlik ise System.Random sonucu çok deterministik ve öngörülebilir olduğu için yeterli değildir.
Örnek kod:
using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace random_numbers { class Program { static void Main(string[] args) { for (int i = 0; i < 10; i++) { Console.WriteLine("Random Number " + i + " : " + Convert.ToBase64String(GenerateRandomNumbers(32))); } } public static byte[] GenerateRandomNumbers(int length) { using (var randomNumberGenerator = new RNGCryptoServiceProvider()) { var randomNumber = new byte[length]; randomNumberGenerator.GetBytes(randomNumber); return randomNumber; } } } }
Çıktı:
Bir yanıt yazın