Ekibim, rastgele jetonlar üreten bazı sunucu tarafı kodlarını (Java'da) teslim etti ve ben de bununla ilgili bir sorum var -
Bu belirteçlerin amacı oldukça hassastır - oturum kimliği, parola sıfırlama bağlantıları vb. Jeton "uzun" dır, bu yüzden 64 bit uzunluğundadır.
Kod şu anda java.util.Random
bu simgeleri oluşturmak için sınıfı kullanıyor . Dokümantasyon için java.util.Random
açıkça şöyle der:
Java.util.Random örnekleri kriptografik olarak güvenli değildir. Bunun yerine güvenliğe duyarlı uygulamalar tarafından kullanılmak üzere şifreli olarak güvenli bir sahte rasgele sayı üreteci almak için SecureRandom kullanmayı düşünün.
Ancak, kod şu anda kullanma şekli java.util.Random
budur - java.security.SecureRandom
Sınıfı başlatır ve daha sonra sınıfı örneklemek için SecureRandom.nextLong()
kullanılan tohumu elde etmek için yöntemi kullanır java.util.Random
. Sonra java.util.Random.nextLong()
belirteci oluşturmak için yöntem kullanır .
Öyleyse şimdi sorum - Kullanılıyorsa java.util.Random
tohumlanması hala güvensiz java.security.SecureRandom
mi? Kodu java.security.SecureRandom
yalnızca jetonları oluşturmak için kullanacak şekilde değiştirmem gerekir mi?
Şu anda kod tohum Random
başlangıçta bir kez
Random
başlangıçta bir kez mi ekiyor, yoksa her jeton için yeni bir tane mi ekliyor? Umarım, bu aptalca bir soru, ama kontrol edeceğimi düşündüm.
long
veya double
değerleri üretmeyeceği anlamına gelir .