Я хотел бы создать открытый ключ, который создается с использованием C # XML RSAKeys, однако я хотел бы восстановить его с помощью java. Проблема в том, что я получаю сами M & E из ключа в виде значений байтов и для создания ключаМне нужно использовать два BigIntegers. Как мне создать открытый ключ?
Редактировать: Проблема в том, что мод, байтовые массивы exp, которые были декодированы в base64, являются M, N открытого ключа ...
byte[] mod = Base64.decodeBase64(modulus.getBytes());
byte[] exp = Base64.decodeBase64(exponent.getBytes());
int[] copyMod = new int[mod.length];
for (int x = 0; x < mod.length; x++) {
copyMod[x] = unsignedToBytes((byte) mod[x]);
}
int[] copyExp = new int[exp.length];
for (int x = 0; x < exp.length; x++) {
copyExp[x] = unsignedToBytes((byte) exp[x]);
}
String Mod = Arrays.toString(copyMod);
String Exp = Arrays.toString(copyExp);
BigInteger m = new BigInteger(Mod.getBytes());
BigInteger e = new BigInteger(Exp.getBytes());
java.security.spec.RSAPublicKeySpec spec = new java.security.spec.RSAPublicKeySpec(m, e);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(spec);