2014-10-02 18 views
1

我寫了一個可以生成pad的一次性pad加密模塊。我讀過Haskell帶有一些加密安全的隨機數生成器,其模塊名稱包含「Crypto」。因此,我使用我的GHCi並鍵入「導入」和選項卡以調出所有可能的導入。沒有加密模塊,只有普通的舊隨機。我明確地嘗試導入「System.Crypto」,然後只是「Crypto」;沒有運氣。我使用Power Shell對自動完成的結果執行文本搜索,但它找不到適用的條目。密碼隨機數發生器在哪裏?如果我沒有它,我可以在哪裏得到它?我想象的是什麼?Haskell:(System。)Crypto在哪裏?

詳情:

GHCi 
version 7.6.3 
Windows 7 

回答

-1

如果安裝Haskell的平臺上,你可以找到所有的庫開箱here的。

我發現有一個System.Random包有一個全局的隨機數發生器。全局隨機數發生器以某種與系統有關的方式自動初始化,例如,使用一天中的時間或Linux的內核隨機數生成器。

或者您可以使用cabal install的其他軟件包,如crypto-api

+0

隨機模塊是加密安全的嗎?我沒有從提供的鏈接中找到任何其他加密模塊。 – bimmo 2014-10-02 09:14:43

+6

'System.Random'模塊的'StdGen'生成器*不是*加密安全的。即使是非密碼的也不算很好。 – 2014-10-02 09:36:53

3

Haskell確實不是「附帶」一個密碼安全的隨機數生成器,如果你認爲它應該包含在Haskell平臺中。儘管如此,拋出了許多可以與Cabal一起安裝的軟件包。我不太瞭解這些,但頂級crypto-random看起來很有前途。但這並不意味着太多。儘管Hackage是查找Haskell大部分內容的地方,但不幸的是,它不是,而是有很好的功能,可以找出它的哪些軟件包實際上是高質量的。 (由於新的Hackage 2的實現比舊的更靈活,這預計會有所改進。)

相關問題