我試圖在javadocs和在線尋找這個,但找不到明確的答案。丹代爾SecureRandom的SHA1PRNG算法對熵使用/ dev/random嗎?
How to solve performance problem with Java SecureRandom?
答案似乎暗示SHA1PRNG不使用任何系統資源熵。它是否正確?
我試圖在javadocs和在線尋找這個,但找不到明確的答案。丹代爾SecureRandom的SHA1PRNG算法對熵使用/ dev/random嗎?
How to solve performance problem with Java SecureRandom?
答案似乎暗示SHA1PRNG不使用任何系統資源熵。它是否正確?
不,在默認的Oracle實施中,它使用系統資源,除非您在致電nextBytes()
之前對其進行種子處理。從SecureRandom
太陽/ Oracle文檔:
SecureRandom實現嘗試,除非來電遵循與對setSeed方法的調用調用一個getInstance方法完全隨機生成器本身的內部狀態:
SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); random.setSeed(seed);
請注意,除非輸出已精確指定,否則這是非常無用的,因爲輸出可能因特定提供程序而異,即使是同名的算法也是如此。 –
實際的實施是專有的,有點。然後當然有不同版本的Java。但至少有一些Java版本使用/ dev/random。我認爲一般來說,對於相對較新的java版本,將在具有它的系統上使用/ dev/random。 –