我正在使用桌面应用程序,并希望使用碰巧可用的任何硬件随机数字生成器,但我不希望用户必须执行任何令人困惑的设置才能使用它。它的Java/Clojure基于Java世界中的某些东西将会很好,尽管我愿意与任何东西一起工作。知道这样做的任何程序吗?他们是跨平台吗?以编程方式使用硬件随机数字发生器
回答
您应该使用Java SecureRandom类。用户可以通过设置其preference order来覆盖硬件RNG的默认算法选择。这适用于所有的Java应用程序,包括你的。
推论是应用程序需要一个SecureRandom引擎类,以适应可能“恰好可用”的每个设备。除非那里的人已经为常见设备维护了这样的类库,否则这是一项艰巨的任务! – 2009-08-05 22:54:06
或者可以有一个SecureRandom引擎使用操作系统工具与硬件RNG进行交互 – bdonlan 2009-08-06 01:46:22
@bdolan:我认为这不会起作用。 AFAIK没有连接RNG硬件的具体标准,也没有标准的OS级服务。 – 2009-08-06 09:31:03
这取决于您需要生成的随机数的质量。具体而言,您需要购买多少entropy?
如果您确实需要一些不依赖于可预测时钟的硬核随机数,您可能需要查看第三方可用的生成器。
http://en.wikipedia.org/wiki/Hardware_random_number_generator
有些使用热能,等等,以增加每比特的熵。
OP的问如何与任何可用的接口连接,当然?这里熵的数量是多少? – bdonlan 2009-08-05 20:40:00
香草机中只有这么多选项可用。我只是让他知道,所有的随机数字并不相同,并试图告诉他一些替代方案。我的答案可能不是他正在寻找的,但我认为这与他的问题有关。 – 2009-08-05 20:42:01
简短的回答是“足以让我的用户数据安全地抵御所有的攻击,但不包括折磨” – 2009-08-05 21:49:13
- 1. riscv和硬件随机发生器
- 2. 无偏随机数发生器使用偏倚的随机数发生器
- 3. 汇编语言随机数发生器
- 4. 随机字符发生器
- 5. 随机数发生器dev /随机
- 6. 程序集随机数发生器
- 7. 随机数发生器
- 8. Vbscipt随机数发生器
- 9. 随机数发生器
- 10. Node.js随机数发生器?
- 11. Erlang - 随机数发生器
- 12. 随机数发生器
- 13. 随机数发生器
- 14. MersenneTwister随机数发生器
- 15. 随机数组发生器
- 16. 随机数发生器,C++
- 17. Verilog随机数发生器
- 18. C - 用随机数发生器发出
- 19. 随机数发生器函数ran2数字配方
- 20. 使用数组编写一个程序,测试计算机的随机数发生器的随机性
- 21. 随机数发生器字发生器 - PHP
- 22. 随机发生器
- 23. 随机数发生器产生相同的随机数
- 24. 机器人随机数发生器不够随机
- 25. 如何制作一个随机数字模式发生器?
- 26. C随机数发生器有时产生相同的数字
- 27. 随机数发生器两位数
- 28. 使用随机发生器以概率用matlab
- 29. 是否可以通过编程方式启用/禁用硬件?
- 30. 随机角度发生器
什么操作系统? GNU/Linux内置有'/ dev/random'设备。 – 2009-08-05 20:35:24
'/ dev/random'是一个软件生成器;它仅仅使用与硬件相关的噪声作为源。这个问题是关于输出随机数据的实际硬件设备,这些数据是通过物理随机过程生成的 – Cascabel 2009-08-05 20:41:16
@Jefromi:你怎么知道的? – 2009-08-05 21:08:14