Proveedor de seguridad "Crypto" en desuso en Android N
(1)
Un usuario ejecutó mi aplicación en Android N, sufrió el bloqueo. Sé que Google desaprobó el proveedor de Crypto en Android N, pero cuál sería la mejor manera de migrar datos cifrados antiguos.
Para 8.0 y superior puedes consultar here
Para la versión 8.0 inferior, puede pasar por el siguiente código.
Puedes usar este proveedor reemplazando "Crypto" para SecureRandom, está funcionando bien para mí:
Utilizar,
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG", new CryptoProvider());
en lugar de,
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG","Crypto");
y su clase CryptoProvider como se muestra a continuación,
import java.security.Provider;
/**
* Implementation of Provider for SecureRandom. The implementation supports the
* "SHA1PRNG" algorithm described in JavaTM Cryptography Architecture, API
* Specification & Reference
*/
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");
}
}