我有一個書面的應用程序,通過OpenSSL 1.0.1c生成ECDSA公鑰/私鑰對。 據我所知,OpenSSL在Linux上使用/ dev/random,但Android沒有/ dev/random,這意味着我可能會使用加密弱密鑰對。Android JNI上有/ dev/random替代嗎?
我看了兩本
https://security.stackexchange.com/questions/2152/do-mobile-oss-provide-crypto-quality-randomness
這個問題
和倆都給予適當的建議使用java.security.SecureRandom
,但是我產生對本機端這些密鑰對,所以歡迎來自本地的東西。我可以將Java的參數傳遞給我的本地代碼,所以傳遞隨機字節很容易,但是如果完全在本機端完成,我會選擇這種方式。
那麼,Android上的/ dev/random有替代嗎?
我的C標記是足夠的,因爲我使用C和OpenSSL在本地生成了這些關鍵字對。我也在問題標題中陳述了JNI。 – farmdve
爲什麼要恢復到OpenSSL/JNI,如果你可以使用例如充氣城堡? ECDSA密鑰對的生成應該足夠快,並且'SecureRandom'已經正確接種(如果您在生成隨機之前沒有對其進行種子處理)。 –
我使用SpongyCastle,我可以告訴你,速度很慢。我需要JNI來提高速度。 – farmdve