Необходимо использовать концепцию RSA в Android (Java) и iOS. Результаты обеих платформ должны быть одинаковыми.
В Android созданы частные и открытые ключи с помощью классов KeyFactory, X509EncodedKeySpec, PKCS8EncodedKeySpec.
"RSA / ECB / PKCS1Padding"
KeyFactory keyFactory = KeyFactory.getInstance ("RSA");
public static PrivateKey getPrivateKey(String base64PrivateKey) {
PrivateKey privateKey = null;
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(base64PrivateKey.getBytes()));
KeyFactory keyFactory = null;
try {
keyFactory = KeyFactory.getInstance("RSA");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
try {
privateKey = keyFactory.generatePrivate(keySpec);
} catch (InvalidKeySpecException e) {
e.printStackTrace();
}
return privateKey;
}
---------------------------
public static PublicKey getPublicKey(String base64PublicKey) {
PublicKey publicKey = null;
try {
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(base64PublicKey.getBytes()));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
publicKey = keyFactory.generatePublic(keySpec);
return publicKey;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (InvalidKeySpecException e) {
e.printStackTrace();
}
return publicKey;
}
Именно то, что мне нужно, нужно использовать один и тот же закрытый ключ в Android и IOS после того, как зашифровал строку в средствах Android, с помощью частногоключ нужно расшифровать в iOS это должен быть точный результат. Я пробовал так много способов его не работает.
Сбоев не было. Но при использовании закрытого ключа Android в iOS я получаю следующую ошибку .. "невозможно расшифровать".
Я жду от вас хорошего результата, ребята ..