Acredito que esse XML tenha sido gerada através do .NET, certo?
A chave público é composta pelo Modulus e pelo Exponent, então você pode montar algum algoritmos que extrai esses dados do XML.
Com esses dados em mãos, você pode executar um algoritmo como esse:
finalStringmodString="muxWG1ZrCuFqHyZHD0VcLgVr0yAzvbqv7mCr+xbm5dT9+q/o8uTKcBAynoLtjaGDV0WlwoMfaFFj0Y6ZxsC1jDp3FKWxxWu+VBhRFXGbNDJE4URdBLArAhNz9HmHtgsqq31leCJYzXFNOVvm0dBW2Knd7KlTs7fnkWO/1CSo2jQs7oTxrpXBQTbLd3BI18SqcXkYzbDstnyOv7A6+sKf+055iPL6BGrX/tt0ADkASvVW8FIt7Tp6DAbmVHbzwMZVv8e25NHoo8BUFGzZQOXdQjdWIYIYGAIwkdG7Y0Wuznt7Yzfmt4580lIrdVFQHsnMIzVs9tfOiIJE0rwayOv7ew==";finalStringexpString="AQAB";byte[]modBytes=com.migcomponents.migbase64.Base64.decode(modString);byte[]expBytes=com.migcomponents.migbase64.Base64.decode(expString);RSAPublicKeySpeckeySpec=newRSAPublicKeySpec(newBigInteger(1,modBytes),newBigInteger(1,expBytes));KeyFactoryfact=KeyFactory.getInstance("RSA");PublicKeypubKey=fact.generatePublic(keySpec);Ciphercipher=Cipher.getInstance("RSA");cipher.init(Cipher.ENCRYPT_MODE,pubKey);Stringinput="Text to be encrypted...";byte[]inputBytes=input.getBytes("UTF-8");byte[]encBytes;StringencString;encBytes=cipher.doFinal(inputBytes);encString=com.migcomponents.migbase64.Base64.encodeToString(encBytes,false);System.out.println(encString);
Espero que tenha ajudado!
L
leandrofaria
Sim, ele foi desenvolvido em .NET
Vou testar seu exemplo João, mas valeu a dica, vai ajudar bastante.