Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
909 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  cryptage/décryptage fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cryptage/décryptage fichier

n°1672102
aurelbobol​6
Posté le 16-01-2008 à 12:34:27  profilanswer
 

Bonjour, voila j'ai fais un petit programme pour copier deux fichiers. J'ai un fichier "original.exe" et je le crypte en "originalCrypte.exe", jusque la tout vas bien, la copie s'est bien déroulée.. mais lorsque je souhaite décrypter mon fichier  "originalCrypte.exe" pour le copier à "originalNouveau.exe", j'ai un BadPaddingException qui se passe et je ne sais aps trop quoi faire.
J'ai fais quelques recherche a ce sujet et j'ai vu qu'il fallait utiliser il me semble cipher.getBlockSize() et cipher.getOutputSize(arg0) mais je n'ai pas tout compris.
Autre petit détail, mon fichier original fait 5,02Mo, le originalCrypte fait 5,06Mo et le fichier originalNouveau 5,10Mo.
Je vous ai laissé mon code, si quelqu'un peut m'aider, ce serait vraiment sympa et super arrangeant. Merci d'avance
 
import ....
 
public class TestClass {
   private static Cipher cipherCrypt = null;
   private static Cipher cipherDecrypt = null;
   private static SecretKey key = null;
   
   public static void main(String[] args) {
    try {
     byte[] cle = (new String("password" )).getBytes(); // 24 caractères
     key = new SecretKeySpec(cle, "Blowfish" );
     cipherCrypt = Cipher.getInstance("Blowfish" );
     cipherDecrypt = Cipher.getInstance("Blowfish" );
     cipherCrypt.init(Cipher.ENCRYPT_MODE, key);
     cipherDecrypt.init(Cipher.DECRYPT_MODE, key);
     
     start("c:/temp/original.exe", "c:/temp/originalCrypte.exe", cipherCrypt);
     start("c:/temp/originalCrypte.exe", "c:/temp/originalNouveau.exe", cipherDecrypt);
    }catch(Exception e) {
     e.printStackTrace();
    }
   }
   
   private static void start(String entree, String sortie, Cipher cipher) throws IOException, IllegalBlockSizeException, BadPaddingException  
    {
    byte[] input ;
    FileInputStream fIn = new FileInputStream(entree);
    FileOutputStream fOut = new FileOutputStream(sortie);
    FileChannel canalIn = fIn.getChannel();
    FileChannel canalOut = fOut.getChannel();
    ByteBuffer buffer = ByteBuffer.allocate(1024);
    int nombreLu = 0;
    while (nombreLu != -1) {
        buffer.clear();
        nombreLu = canalIn.read(buffer);
        if (nombreLu !=-1) {
          buffer.flip();
             input = cipherCrypt.doFinal(buffer.array());
    canalOut.write(ByteBuffer.wrap(input));
          }
         }
    canalIn.close();
    canalOut.close();
    fIn.close();
    fOut.close();
 }
  }

mood
Publicité
Posté le 16-01-2008 à 12:34:27  profilanswer
 

n°1672158
aurelbobol​6
Posté le 16-01-2008 à 13:31:10  profilanswer
 

j'ai oublié une erreur de modification dans la méthode start:
 
lihne 51: input = cipherCrypt.doFinal(buffer.array());
est remplacé par
input = cipher.doFinal(buffer.array());
 
et donc voici mon erreur
 
javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.BlowfishCipher.engineDoFinal(DashoA13*..)
    at javax.crypto.Cipher.doFinal(DashoA13*..)
    at TestClass.start(TestClass.java:51)
    at TestClass.main(TestClass.java:31)
 
pouvez vous m'aider svp..

n°1673134
aurelbobol​6
Posté le 18-01-2008 à 10:03:24  profilanswer
 

j'ai trouvé un code qui marche, je donne la source pour ceux que ca intéresse :
 
http://www.exampledepot.com/egs/ja [...] sFile.html


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  cryptage/décryptage fichier

 

Sujets relatifs
Validation fichier XML sous PHP5Formulaire d'envoie de email dans un swf grace a un fichier php
[C Unix] Ecrire dans un fichier...[Access] Importation de fichier texte et perte des espaces
Generer un fichier ODBmodifier la date de création d'un fichier
[PERL] de l'aide pour petite manip de champs dans un fichiercryptage du mot de passe
Inversser les slashes dans un chemin de fichierlancer plusieurs fichier sur imprimante réseau
Plus de sujets relatifs à : cryptage/décryptage fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR