我一直在與Java的SecureRandom類一起工作,以生成鹽用於以後的加密和密碼散列(我爲每個任務生成單獨的鹽)。我一直在使用的代碼如下:Java和密碼學強隨機數
//Init random number generator
secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(System.nanoTime());
//Create salts
secureRandom.nextBytes(bytAuthSalt);
secureRandom.nextBytes(bytEncryptionSalt);
現在,一切都很好,直到我開始真正驗證我得到的值。對於應用程序的幾個連續執行我的鹽是:
[[email protected]
[[email protected]
[[email protected]
[[email protected]
[[email protected]
[[email protected]
我對這些數字似乎都大致順序感到不安。在網絡上進行了一些搜索之後,我再次重複了這些運行,而沒有將它自己播種到相同的結果。
我唯一的猜測是什麼可能是由於我正在爲Android平臺開發的事實。我知道他們有自己的密碼提供者,但我沒有任何例外。有任何想法嗎?
在此先感謝。
如果我沒有弄錯,那將使用默認字符集來解釋字節,而不是打印出原始字節。 OP不需要原始字節而不是ASCII等效字符? – 2011-01-13 16:49:08
@ RD01 - 但仍然會給OP一個很好的隨機性視圖。 – Rogach 2011-01-13 16:50:57