2012-12-17 25 views
1

我試圖在javadocs和在線尋找這個,但找不到明確的答案。丹代爾SecureRandom的SHA1PRNG算法對熵使用/ dev/random嗎?

How to solve performance problem with Java SecureRandom?

答案似乎暗示SHA1PRNG不使用任何系統資源熵。它是否正確?

+0

實際的實施是專有的,有點。然後當然有不同版本的Java。但至少有一些Java版本使用/ dev/random。我認爲一般來說,對於相對較新的java版本,將在具有它的系統上使用/ dev/random。 –

回答

3

不,在默認的Oracle實施中,它使用系統資源,除非您在致電nextBytes()之前對其進行種子處理。從SecureRandom太陽/ Oracle文檔:

SecureRandom實現嘗試,除非來電遵循與對setSeed方法的調用調用一個getInstance方法完全隨機生成器本身的內部狀態:

SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); 
random.setSeed(seed); 
+0

請注意,除非輸出已精確指定,否則這是非常無用的,因爲輸出可能因特定提供程序而異,即使是同名的算法也是如此。 –