我有一个使用 java SecureRandom 类的 kotlin 应用程序。在其中,我像这样实例化一个 RNG:
val rng : SecureRandom = SecureRandom()
然后我定期重新播种:
rng.reseed()
在我的 Windows 机器上,这工作正常。但是在 mac 上,我得到一个不受支持的操作异常,这意味着底层SecureRandomSpi
从未设置过。一个解决方案似乎是SecureRandomSpi
在 SecureRandom 构造函数中手动设置,我可能会走那条路,但是:
- 我不知道该怎么做(需要深入研究所有这些事情的实际含义,这不是我现在有时间的事情)
- 它并没有真正回答为什么会这样
奇怪的是,如果我打电话setSeed()
而不是reseed()
这样:
val seed = rng.generateSeed(256)
rng.setSeed(seed)
一切正常。
任何帮助,将不胜感激。