我正在使用桌面應用程序,並希望使用碰巧可用的任何硬件隨機數字生成器,但我不希望用戶必須執行任何令人困惑的設置才能使用它。它的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