Bonjour à tous !

voilà je cherche à chiffrer un message trop long mais je ne vois pas comment on procède voici le code, merci pour vos réponses

en gros je me ramasse une exception :

déc. 12, 2012 11:09:37 PM serveur_reservation.Serveur_Reservation ChiffrementCleSymetrique
SEVERE: null
javax.crypto.BadPaddingException: Data too long for this modulus!
at cryptix.jce.provider.rsa.RSACipher_ECB_PKCS1.pad(RSACipher_ECB_PKCS1.java:337)
at cryptix.jce.provider.rsa.RSACipher_ECB_PKCS1.engineDoFinal(RSACipher_ECB_PKCS1.java:219)
at cryptix.jce.provider.rsa.RSACipher_ECB_PKCS1.engineDoFinal(RSACipher_ECB_PKCS1.java:178)
at javax.crypto.Cipher.doFinal(Cipher.java:2086)
at serveur_reservation.Serveur_Reservation.ChiffrementCleSymetrique(Serveur_Reservation.java:101)
at serveur_reservation.Serveur_Reservation.main(Serveur_Reservation.java:71)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public static void ChiffrementCleSymetrique()
    {
        try 
        {
            String Clair = "c'est trop lonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnng";
 
            KeyPairGenerator PairGenerator = KeyPairGenerator.getInstance("RSA", "CryptixCrypto");
 
            PairGenerator.initialize(1024, new SecureRandom());
            KeyPair KeyPair = PairGenerator.generateKeyPair();
            PublicKey aPublic = KeyPair.getPublic();
            PrivateKey aPrivate = KeyPair.getPrivate();
            Cipher chiffrement = Cipher.getInstance("RSA/ECB/PKCS#1", "CryptixCrypto");
            chiffrement.init(Cipher.ENCRYPT_MODE, aPublic);
 
            System.out.println("Message en clair :" + Clair);
 
            byte[] chiffre = chiffrement.doFinal(Clair.getBytes());
 
            System.out.println("Message chiffre :" + new String(chiffre));
 
            chiffrement.init(Cipher.DECRYPT_MODE, aPrivate);
            byte[] dechiffre = chiffrement.doFinal(chiffre);
 
            System.out.println("Message déchiffre :" +new String(dechiffre));
 
 
        } catch (IllegalBlockSizeException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        } catch (BadPaddingException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InvalidKeyException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoSuchPaddingException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoSuchAlgorithmException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoSuchProviderException ex) {
            Logger.getLogger(Serveur_Reservation.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }