Bonjour tout le monde,
J'ai un petit soucis de chiffrement RSA.
Je me fabrique une clé RSA à partir de données récupérée d'un autre soft qui a généré ses clés grâce au m et e :
J'essaie ensuite de chiffre des données grâce au code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 BigInteger m = new BigInteger(parts[0]); BigInteger e = new BigInteger(parts[1]); RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e); KeyFactory fact = KeyFactory.getInstance("RSA"); PublicKey pubKey = fact.generatePublic(keySpec);
Mais sur la ligne doFinal, j'obtiens toujours une exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public byte[] encrypt(byte[] input, PublicKey pubKey) { try { Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, pubKey); return cipher.doFinal(newInput); } catch (Exception e) { e.printStackTrace(); return null; } }
ArrayIndexOutOfBoundsException: too much data for RSA. block.
Une idée d'où cela peut provenir ?
Merci d'avance pour votre aide !!!
Partager