recuperar password olvido olvide olvidada google from desde cómo correo contraseña como celular cambiar android private-key android-keystore android-security

olvido - http recover gmail password from android



La cadena es nula al recuperar la clave privada (1)

Creo que simplemente estás enfrentando errores de Keystore. Vea este artículo por ejemplo: Seguridad de Android: el almacén de claves olvidadizo . También hay numerosos informes de errores en el rastreador de Android relacionado con el almacén de claves, como AndroidKeyStore eliminado después de cambiar el tipo de bloqueo de pantalla .

Estoy cifrando datos en mi aplicación utilizando un par de claves RSA que estoy almacenando en el almacén de claves de Android.

He estado viendo NullPointerException s en Play Store, pero no he podido reproducirlas:

java.lang.NullPointerException: chain == null at java.security.KeyStore$PrivateKeyEntry.<init>(KeyStore.java:1205) at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:374) at java.security.KeyStore.getEntry(KeyStore.java:644) at MyClass.getKeyStoreEntry(MyClass.java:111)

El código fuente para crear el par de claves.

Calendar start = Calendar.getInstance(); start.setTimeInMillis(0); Calendar end = Calendar.getInstance(); end.set(Calendar.YEAR, 3000); KeyPairGeneratorSpec.Builder keySpecBuilder = new KeyPairGeneratorSpec.Builder(context) .setAlias(keyName) .setSubject(new X500Principal("CN=" + keyName)) .setSerialNumber(BigInteger.TEN) .setStartDate(start.getTime()) .setEndDate(end.getTime()) .setKeySize(RSA_KEY_SIZE); KeyPairGeneratorSpec spec = keySpecBuilder.build(); KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore"); gen.initialize(spec); gen.generateKeyPair();

Y luego para recuperar la clave:

private KeyStore.PrivateKeyEntry getKeyStoreEntry() { KeyStore keyStore = KeyStore.getInstance(ANDROID_KEY_STORE); keyStore.load(null); if (!keyStore.containsAlias(keyName)) { throw new KeyNotFoundException(); } return (KeyStore.PrivateKeyEntry) keyStore.getEntry(keyName, null); }

Esto solo ocurre cuando uso KeyPairGeneratorSpec en el nivel de API 19-22. La implementación 23+ funciona bien.

No tengo otra clave con el mismo nombre y tampoco la he eliminado .