CodeBlanks Logo Icon CodeBlanks

SecureRandom

SecureRandom ile güvenli rastgele öğrenirsin.

SecureRandom ile kriptografik rastgele

SecureRandom, kriptografik olarak güçlü rastgele değer üretir. nextBytes ile bayt, nextInt ile tam sayı verilir. java.util.Random'dan daha yavaş ama daha güvenlidir.

Örnek: val random = SecureRandom(); val bytes = ByteArray(8); random.nextBytes(bytes). bytes 8 rastgele baytla dolar. Bu kalıp, anahtar ve token üretimi için kullanılır. setSeed ile tohum verilebilir ama öngörülebilirlik riski taşır.

nextBytes ile bayt üretimi

SecureRandom.nextBytes(bytes), verilen bayt dizisini rastgele değerlerle doldurur. Bu, anahtar ve IV üretimi için yaygın bir yöntemdir.

Örnek: val key = ByteArray(16); SecureRandom().nextBytes(key). Bu, 16 baytlık rastgele bir AES-128 anahtarı üretir. Üretilen baytlar öngörülemez; her çağrı farklıdır. Bu kalıp, her kullanıcı için benzersiz anahtar üretmek için kullanılır.

Uygulama SecureRandom ile bayt boyutu

main içinde val random = SecureRandom() oluştur, val bytes = ByteArray(8) ayır, random.nextBytes(bytes) çağır ve println(bytes.size) yazdır.

Başlangıç kodu

Main.kt
import java.security.SecureRandom

// main'de SecureRandom oluştur
// 8 baytlık diziye rastgele doldur, boyutunu yazdır

Örnek çözüm

Main.kt
import java.security.SecureRandom

fun main() {
    val random = SecureRandom()
    val bytes = ByteArray(8)
    random.nextBytes(bytes)
    println(bytes.size)
}

Beklenen çıktı

8

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 SecureRandom'ın java.util.Random'dan farkı nedir?

  • Daha hızlıdır
  • Daha az rastgele
  • Kriptografik olarak daha güvenli Doğru cevap
  • Sadece Int üretir

Açıklama: SecureRandom kriptografik olarak güçlüdür.

2 SecureRandom parçalarını eşle

Kavram Anlamı
SecureRandom() Nesne
nextBytes(bytes) Bayt üretimi
ByteArray(16) Buffer
kriptografik Güç

3 nextBytes çağrısını tamamla

Soru
val bytes = ByteArray(8)
SecureRandom().____(bytes)
Cevap
val bytes = ByteArray(8)
SecureRandom().nextBytes(bytes)

Açıklama: nextBytes bayt dizisini doldurur.

İleri seviye bölümündeki tüm dersler