j'ai créé suivant la méthodeXML cryptage de chaîne me donner des données ne doit pas être plus long que 245 octets lorsque vous utilisez RSA
public static PublicKey readPublicKey(String filename) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException {
PublicKey key = null;
CertificateFactory fact;
try {
// MBFS certificate to be used
FileInputStream is = new FileInputStream(filename);
fact = CertificateFactory.getInstance("X.509");
System.out.println(is.toString());
X509Certificate cer = (X509Certificate) fact.generateCertificate(is);
key = cer.getPublicKey();
System.out.println(key.getAlgorithm());
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return key;
}
pour le cryptage
public static byte[] encrypt(PublicKey key, byte[] plaintext) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, key);
return cipher.doFinal(plaintext);
}
J'ai longue chaîne xml et l'utilisation de ces deux méthode comme suit
byte[] message = xmlMessage.getBytes();
byte[] secret = encrypt(publicKey, message);
Mais il me donne des données ne doit pas être plus long que 256 octets lors de l'utilisation rsa
Le certificat est le fragment par le client il dit l'algorithme de signature sha256RS.
merci tout lien ou dépendances mvn –
Je l'ai fait avec la clé Randome, mais comment puis-je utiliser ma clé publique pour la même clé –
Vous avez déjà cette partie: 'encrypt (pubKey, randomKey)' – Henry