Kriptografik Rasgele Sayı Üreteçleri(Random Numbers)

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ı:

randomNumber


Yayımlandı

kategorisi

,

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.