У меня есть этот код в моем Android-приложении для генерации RSA KeyPair.Этот код генерирует ту же пару ключей на Android 8 на некоторых устройствах.Устройства включают Lenovo K8, Nokia 3.
Только на этих устройствах сгенерированная пара ключей одинакова для всех моделей.Если я не использую AndroidKeyStore Provider и вместо этого использую BouncyCastle, ключи являются уникальными.Но я хочу использовать провайдер Android и по-прежнему генерировать уникальные ключи.
KeyPairGenerator keyPairGenerator = null;
try {
keyPairGenerator = KeyPairGenerator.getInstance("RSA", "AndroidKeyStore");
KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder("somealias", KeyProperties.PURPOSE_SIGN)
.setDigests(KeyProperties.DIGEST_SHA256)
.setKeySize(2048)
.build();
keyPairGenerator.initialize(spec);
} catch(Exception e) {
throw new KeyStoreException(e);
}
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
byte[] encodedP = publicKey.getEncoded();
Необходимо каждый раз получать уникальные ключи и на всех устройствах.
Зашифрованные в Base64 значения encodeP сдва последовательных прогонов с использованием этой строки кода:.
строка basePub = Base64.getEncoder () encodeToString (encodedP);
ПУСК # 1
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9RmCTb9FJG8rS9ldKiLQsQ7wNtKMvr8aLB + 5V7VlNxKkL14ZE + gBMbsHg0QNEL7SL + UiorDeHT5gMg1pHQrq / dJY8WehjXmOsjol8DZaX0qsOLKAqCP0mYK90OjbyZOoGNs7qq7crtSv+ oF8aDFzUcTbx / SghEQM9ZjGXSgckpPUsMX3zzf3cZvwZPbTG6y9qAR43nlEAIRaeAPtz8hh / FunW5UeXajsHpyoD9im4HRgm3OzoZYdHXd6kSy1eCmqNJ4DzVmq9EVpX5YTBb3RqeADk7pVGck + eJK4d91Vk5cdsykX6ITCfQwFi1duywHkAZjIG6lXxsTW1HoC96qIfwIDAQAB
* * 1014 RUN # 2 * * 1016 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9RmCTb9FJG8rS9ldKiLQsQ7wNtKMvr8aLB + 5V7VlNxKkL14ZE + gBMbsHg0QNEL7SL + UiorDeHT5gMg1pHQrq / dJY8WehjXmOsjol8DZaX0qsOLKAqCP0mYK90OjbyZOoGNs7qq7crtSv + oF8aDFzUcTbx / SghEQM9ZjGXSgckpPUsMX3zzf3cZvwZPbTG6y9qAR43nlEAIRaeAPtz8hh / FunW5UeXajsHpyoD9im4HRgm3OzoZYdHXd6kSy1eCmqNJ4DzVmq9EVpX5YTBb3RqeADk7pVGck + eJK4d91Vk5cdsykX6ITCfQwFi1duywHkAZjIG6lXxsTW1HoC96qIfwIDAQAB