2012-03-11 42 views
1

Android开发者指南说
算法在机器人的安全SecureRandom的随机

Supported Algorithms 

SHA1PRNG: Based on SHA-1. **Not guaranteed to be compatible with the SHA1PRNG algorithm on the reference implementation.** 
The default algorithm is defined by the first SecureRandomSpi provider<br> found in the VM's installed security providers. Use Security to install custom SecureRandomSpi providers. 

和真实的这本当用相同的种子值,在Java和Android的顺序是不同的。如何让android使用与java中使用的相同的sha11prng实现?

回答

1

一般而言,您需要实现桌面Java的SecureRandomSpi并将其包含到您的Android项目中。

通过扩展标准SecureRandom实现,您可以使用允许直接指定SecureRandomSpi的受保护构造函数。

然而,使用标准/ Oracle Java SHA1PRNG实现并不像源代码不是SDK的一部分那么容易。恕我直言,更简单的方法是从AOSP结束安卓源码提取Android上使用的SHA1PRNG实现。这会导致与你所要求的相反的方式。

顺便说一句:Android的实现是Apache Harmony项目中的一个。主要实现在文件org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl中。