IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

RSA : Too much data for RSA block


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut RSA : Too much data for RSA block
    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 :
    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);
    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
    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;
    		}
    	}
    Mais sur la ligne doFinal, j'obtiens toujours une exception :
    ArrayIndexOutOfBoundsException: too much data for RSA. block.

    Une idée d'où cela peut provenir ?

    Merci d'avance pour votre aide !!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Serait-il possible que ta question soit la même que celle de ce sujet : http://www.developpez.net/forums/d92...-tableau-byte/ ? (si on fait abstraction de ma grossière erreur de vocabulaire, mon propos n'est pas complètement abhérant )

    A plus

  3. #3
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    J'ai essayé de chiffrer "hello".getbytes avec une clé 2048, donc on dirait pas que ce soit le problème non ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PoZZyX Voir le message
    J'ai essayé de chiffrer "hello".getbytes avec une clé 2048, donc on dirait pas que ce soit le problème non ?
    Ben avec le code que tu donnes, dur de deviner. Tu aurais pas par hasard la stacktrace complète et les entrées exactes ? Quelle est la différence entre input et newInput ?
    Dernière modification par Invité ; 01/07/2010 à 22h42.

  5. #5
    Membre éclairé Avatar de PoZZyX
    Inscrit en
    Août 2005
    Messages
    426
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 426
    Par défaut
    Ok mea culpa j'avais fait une erreur ailleurs.

    Désolé du dérangement et encore merci

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2010
    Messages : 7
    Par défaut too much data for RSA block
    bonsoir;
    j'utilise la cryptographie avec Bouncy Castle.
    Je voudrais échanger des informations cryptés entre un client/serveur.
    pour le cryptage coté client pas de problème, mais pour le décryptage coté serveur j'ai un message d'erreur:
    client:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String message="blablablablabla";
    Socket sc=new Socket("127.0.0.1",5435);
    PrintWriter fout=new PrintWriter(new OutputStreamWriter(sc.getOutputStream()));
    try{
    Cipher cipherencrypt = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
    cipherencrypt.init(Cipher.ENCRYPT_MODE, publickeyclient);
     
    byte[] encrypted = cipherencrypt.doFinal(message.getBytes());
    String messagecrypté =new String(encrypted);
    fout.write(messagecrypté );
     
     fout.close();
     } catch (Exception e) {
    }
    coté serveur:
    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
     
    BufferedReader fin=new BufferedReader(new InputStreamReader(socketserver.getInputStream()));
    			String messagecrypte=fin.readLine();
                         byte [] encrypted2=messagecrypte.getBytes();
    try{
    Cipher cipherdecrypt = Cipher.getInstance("RSA/ECB/PKCS1Padding", "BC");
     
    cipherdecrypt.init(Cipher.DECRYPT_MODE, privatekeyclient);
     
     
     
    byte[] decrypted = cipherdecrypt.doFinal(encrypted2);
     
     System.out.println("message décrypter :"+new String(decrypted));
     
                        fin.close();
                        sc.close();
    un message d'erreur afficher sur l'écrant est:
    java.lang.ArrayIndexOutOfBoundsException: too much data for RSA block
    at org.bouncycastle.jce.provider.JCERSACipher.engineDoFinal(Unknown Source)
    at javax.crypto.Cipher.doFinal(Cipher.java:2086)
    at clientserveur.Requette.run(Serveur.java:179)
    merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Too much recursion après un alert
    Par beegees dans le forum Général JavaScript
    Réponses: 31
    Dernier message: 07/02/2014, 07h32
  2. Neighbour table overflow et eth0:Too much work at interrup, status=0x5040
    Par mabdou dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 12/03/2009, 10h31
  3. Réponses: 2
    Dernier message: 26/02/2009, 11h23
  4. [phpBB] Could not get theme data for themes_id
    Par leech2004 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/09/2007, 15h18
  5. Error:Too much global data defined in file
    Par Morosh dans le forum C++
    Réponses: 5
    Dernier message: 24/02/2005, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo