一个用户在 Android Pie 中运行我的应用程序,他遇到了崩溃。Android N 有修复(来自 varotariya vajsi 的修复):
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", new CryptoProvider());
...
public final class CryptoProvider extends Provider {
/**
* Creates a Provider and puts parameters
*/
public CryptoProvider() {
super("Crypto", 1.0, "HARMONY (SHA1 digest; SecureRandom; SHA1withDSA signature)");
put("SecureRandom.SHA1PRNG",
"org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl");
put("SecureRandom.SHA1PRNG ImplementedIn", "Software");
}
但它给 Android Pie 带来了错误:
java.security.NoSuchAlgorithmException: class configured for SecureRandom (provider: Crypto) cannot be found.