Tôi hơi bối rối về việc sử dụng SecureRandom
. Tôi cần tạo các số nan toàn số ngẫu nhiên trong một vòng lặp. Có an toàn khi sử dụng cùng một cá thể SecureRandom cho mỗi thế hệ không? Có bất kỳ sự khác biệt nào giữa các giải pháp dưới đây về sức mạnh mã hóa không?Sử dụng lặp lại của SecureRandom của Java
1) Ví dụ đơn mà không gieo hạt
2) Ví dụ mới cho mỗi thế hệ
for(int i = 0; i < n; ++i) new SecureRandom().nextInt();
3) Ví dụ đơn với seeding
SecureRandom sr = new SecureRandom()
for(int i = 0; i < n; ++i) {
byte[] seed = sr.generateSeed(32);
sr.setSeed(seed);
sr.nextInt();
}
* "Tôi cần tạo n số ngẫu nhiên trong một vòng lặp" * - câu hỏi đầu tiên là, bạn có cần số ngẫu nhiên hay số an toàn ngẫu nhiên không. Nếu trước đây, bạn không cần 'SecureRandom'. Bạn có thể sử dụng [Trình tạo đồng phân tuyến tính] (http://en.wikipedia.org/wiki/Linear_congruential_generator). một LCG sẽ thích hợp cho các mô phỏng, nơi bạn cần các con số nhanh chóng từ một bản phân phối đồng đều. – jww