Randomness
Java 中的 BigInteger 和隨機性
我正在尋找一些 PRNG,並且 - 由於我已經使用 Java 很長時間了 - 我認為
BitInteger
該類和Random
該類都可以生成一些大的偽隨機數。這些世代背後的算法是加密安全的,還是只是某種
a + (b - c) mod d
或類似的操作?
假設這個文件是正確的,答案是否定的,這些數字在密碼學上是不安全的。Random 類使用具有 48 位種子的線性同餘公式。對於大多數用途,即使您只需要 48 位安全性也是不夠的。給定 LCG 的輸出數量相當少,即使每次種子迭代只使用幾個比特,也有可能推導出種子。這個問題已經在這裡回答了。