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]Encryption qui donne des fichiers vides


Sujet :

Sécurité Java

  1. #1
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut [RSA]Encryption qui donne des fichiers vides
    Salut,

    J'essaye de crypter des fichiers avec l'algorithme RSA, mais à chaque fois, il me sort des fichiers vides, mais je n'en vois pas la raison.

    Voilà le code :
    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
    Cipher cipher = Cipher.getInstance("RSA");        
    		cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());
     
    		BufferedInputStream in = 
    			new BufferedInputStream(new FileInputStream(source));
     
    		CipherOutputStream out =
    			new CipherOutputStream(new BufferedOutputStream(
    					new FileOutputStream(destination)), cipher);
     
    		int i = 0;
     
    		while((i = in.read()) != -1) {
    			out.write(i);
    		}
     
    		in.close();
    		out.close();
    Il n'y a aucune exception, tout se déroule normalement, sauf qu'a la sortie j'ai des fichiers vides, alors qu'ils ne le sont pas à l'origine. Le même code marche avec des algorithmes différents (DES, Blowfish). Avez vous une idée de l'origine vicieuse de ce problème ? Merci.

  2. #2
    Membre averti Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Points : 306
    Points
    306
    Par défaut
    J'ai eu EXACTEMENT le même problème. En fait CipherOutputStream avec un cipher en RSA ne fonctionne tout simplement pas.

    Il faut donc changer d'algo pour utiliser cette façon. C'est con tu me diras, parce que le RSA c'est quand même cool. Il existe un moyen de ne pas perdre en sécurité.

    Tu as ta paire de clés RSA.
    Générère une clé AES aléatoire.
    Ecris la taille de la clé AES et la clé AES en début de fichier crypté (tu crypte la clé AES en RSA).
    Tu écris ensuite le reste du fichier en cryptant en AES (en plus du fait que ça fonctionne, l'AES étant un algo symétrique il est nettement plus rapide).


    Pour décrypter, il suffit de procéder comme suit :

    lire un entier : la taille de la clé.
    lire ensuite n bytes (n est l'entier lu), c'est la clé AES, la décrypter avec ta clé privée.
    Décrypter le reste du fichier avec la clé AES.

    Voilà, sinon, voici une classe d'encryption RSA qui n'utilise pas CipherOutputStream mais qui fait très bien son travail, je vais la poster dans la section Contribuez (la version déjà postée est une vielle, celle-ci est plus complète).


    Bon en fait elle est trop grosse, je peux pas tout mettre, j'ai uploadé ma librairie de cryptage ici

    Cela t'aide-t-il (la librairie ou les explications, peu importe) ?
    On a toujours besoin d'un plus bourrin que soi

    Oui il y a quelques bugs dans ma librairie de Sécurité, mais les classes postées ne sont pas celles de la dernière version, et j'ai la flemme de tout modifier. Je vous donnerai avec plaisir la dernière version du jar par mp.

  3. #3
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Bah merci pour la librairie, mais je suis un peu perdu dans tous les fichiers. Existe t-il une doc ? Merci.

  4. #4
    Membre averti Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Points : 306
    Points
    306
    Par défaut
    Oui elle se trouve dans l'archive, le dossier s'apelle javadoc ;-)
    On a toujours besoin d'un plus bourrin que soi

    Oui il y a quelques bugs dans ma librairie de Sécurité, mais les classes postées ne sont pas celles de la dernière version, et j'ai la flemme de tout modifier. Je vous donnerai avec plaisir la dernière version du jar par mp.

  5. #5
    Membre averti Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Points : 306
    Points
    306
    Par défaut
    Tu t'en es sorti avec la librairie?
    On a toujours besoin d'un plus bourrin que soi

    Oui il y a quelques bugs dans ma librairie de Sécurité, mais les classes postées ne sont pas celles de la dernière version, et j'ai la flemme de tout modifier. Je vous donnerai avec plaisir la dernière version du jar par mp.

  6. #6
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Citation Envoyé par Razgriz
    Tu t'en es sorti avec la librairie?
    Bah le problème c'est que je crypte déjà mes clés avec l'algorithme PBE donc c'est un peu le bordel. Je met la question en suspens, mais ta solution semble intéressante et je pense que je l'utiliserai donc je met le sujet en résolu.

    Merci.

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

Discussions similaires

  1. Comment utiliser l'outil Talend pour administrer une base de données qui gère des fichiers
    Par JonasYounes dans le forum Installation, migration et administration
    Réponses: 1
    Dernier message: 04/08/2014, 21h23
  2. Génération Javadoc qui donne des documents vides
    Par polymorphisme dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 07/03/2012, 12h33
  3. Richtextbox qui ajoute des lignes vides
    Par Seto dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2006, 14h10
  4. [LG]programme qui renomme des fichiers
    Par Ne0taku dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2005, 21h18
  5. [VB.NET] Classe qui pilote des Fichier .INI
    Par sygale dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2004, 20h04

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