|
|
|
|
Posté par
aurelbobol6, le mercredi 16 janvier 2008 à 12:04:07Configuration: Windows XP Firefox 2.0.0.11
Salut,
ou est-ce que tu décrypte, dans tout ça? je ne vois aucun appel à ton cipherDecrypt |
oui pardon j'ai refait quelques test et j'ai oublié de changé.
le deuxième appel de la méthode start() est: start("c:/temp/originalCrypte.exe", "c:/temp/originalNouveau.exe", cipherDecrypt); mais ce ne change rien a tout ce que j'ai expliqué.encore dsl. |
mais ca ne résout pas mon problème de BadPaddingException .. svp.merci |
sauf que dans ta fonction start, tu ne te sers pas du cipher que tu passe en paramètres mais de la ligne
input = cipherCrypt.doFinal(buffer.array()); ce qui fait que tu ne fais que recrypter quelque chose qui a déjà été crypté |
oui c'est erreurs de modifications...
voici mon nouveau code: 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 = cipher.doFinal(buffer.array()); canalOut.write(ByteBuffer.wrap(input)); } } canalIn.close(); canalOut.close(); fIn.close(); fOut.close(); } } avec ce problème 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) la ligne 51: input = cipher.doFinal(buffer.array()); excuse moi, donc voici mon problème en mieux exposé.. :) |
tu es sur de ton buffer?
tu dis que tu as un fichier de 5Mo, et un buffer de 1024 octets pour le traiter... ça me parait bizarre un p'tit écrasement mémoire ne m'étonnerait pas outre mesure... tu devrais faire un test sur la taille du fichier à crypter/décrypter avant de charger ton buffer |
oui oui je suis sur car je réussi a faire une copie du fichier original à un autre (donc sans cryptage).. cela me permet enfait de faire des copies de gros fichiers. donc je ne pense pas que ce la viennent de la.. |
essaie de ne faire que crypter ton fichier, pour obtenir le fichier crypté, puis le programme s'arrête, puis tu modifie ton programme pour décrypter ton fichier crypté, pour voir ce que ça donne.
si ça ça marche, c'est qu'effectivement tu as un écrasement mémoire. |
voila j'ai trouvé un code qui marche, je te donne la source :
http://www.exampledepot.com/egs/javax.crypto/DesFile.html en tout cas merci d'avoir pris du temps pour répondre a mes questions.
|
| 17/11 13h26 | [Protection de la vie privée] Confidentialité des données du PC | Protection de la vie privée |
| 06/07 23h03 | Protéger fichier/dossier par mot de passe | Sécurité |
| 01/02 17h41 | Utiliser TrueCrypt pour protéger l'accès à ses fichiers | Sécurité |
| 20/04 14h35 | Logiciels de Cryptographie & Stéganographie | Cryptographie |
| 18/10 15h28 | [Internet] Accéder à ses fichiers depuis n'importe où | Internet |
| 15/05 20h44 | Cryptage de fichier | 2 |
| 30/12 23h15 | Crypter des fichiers | 4 |
| 27/01 10h15 | Comment lire les messages crypté des fichiers | 10 |
| 19/06 16h51 | Cryptage de fichier/rep sur partage Samba | 1 |
| 30/05 13h38 | Comment crypter des fichiers | 10 |
![]() | GPG - GPG (GNU privacy guard) est une alternative libre au logiciel PGP. Ce logiciel permet de chiffrer des documents avec un haut... | Catégorie: Chiffrement Licence: Open Source |
![]() | Crypt For Free - c'est un utilitaire gratuit de cryptage de données.Vous pourrez crypter vos fichier en utilisant trois algorithmes de... | Catégorie: Sécurité Licence: Freeware/gratuit |
![]() | PDF Creator - PDF Creator est un outil gratuit permettant de créer des PDF à partir de presque n'importe quelle application capable... | Catégorie: PDF Licence: Open Source |
![]() | AxCrypt - AxCrypt est un logiciel de chiffrement (encryption) permettant de protéger par mot de passe des fichiers ou des dossiers... | Catégorie: Chiffrement Licence: Open Source |
![]() | Macway CryptoDisk 320 Go | Catégorie: Disque dur | 109.00 € MacWay |
![]() | Macway CryptoDisk 250 Go | Catégorie: Disque dur | 124.00 € MacWay |
![]() | CryptoStick Flash Drive 2 | Catégorie: Carte Mémoire / Clé USB | 32.00 € PriceMinister |
![]() | Macway Cryptodisk 160 Go | Catégorie: Disque dur | 269.00 € MacWay |