SecureRandom sınıfı, Java içerisinde kriptografik olarak güçlü rastgele sayılar üretebilmek amacıyla kullanılan bir sınıftır. Peki zaten Java'da rastgele sayılar üretirken kullanabildiğimiz Random sınıfı varken SecureRandom sınıfı ne işimize yarayacak ya da Random sınıfı ile SecureRandom sınıfı arasındaki farklar nelerdir?
- Rastgele bir sayının tekrar edebilme olasılığı ne kadar az ise o derece güvenli sayılır. Random sınıfı 48 bitlik rastgele sayılar üretirken SecureRandom sınıfı 128 bitlik rastgele sayılar üretir.
- Random sınıfı rastgele sayılar üretmek için sistem saatini seed olarak kullanır. Dolayısıyla olası bir saldırı durumunda saldırganın saati biliyor olması güvenlik açığı olması anlamına gelecektir. SecureRandom sınıfı ise işletim sisteminden klavye basma süresi bilgilerini alarak rastgele bir seed değeri oluşturur.
- Güvenlik gerektiren uygulamalarda SecureRandom sınıfı kullanılarak rastgele sayılar oluşturmak daha güvenli olacaktır.
SecureRandom sınıfı ile en basit kullanımda bir rastgele sayı üretelim.
import java.security.SecureRandom;
public class SecureRandomTest{
public static void main(String []args){
SecureRandom rand = new SecureRandom();
int rasgele = rand.nextInt(1000);
System.out.println(rasgele);
}
}
Editör editi: sitedeki bazı diğer benzer yazılar için;
bkz: Java'da StringTokenizer Sınıfı Kullanımı ve Örnekleri
bkz: Java'da notlara bakarak sınıfı geçip kalma durumunu gösteren program
bkz: Java ile rastgele güvenli parola üretmek
bkz: Java'da rastgele elemanlardan oluşan bir dizi (vektör) üretmek
bkz: Java ile rastgele zar atan program kodlamak
bkz: Java'da harfleri, boşlukları ve sayıları sayan program