Bonjour,
Dans le cadre d'échanges des fichiers avec un serveur, nous chiffrons et déchiffrons des fichiers avec AES, et nous chiffrons la clé symétrique crée avec une clé RSA
à l'aller , le chiffrage et déchiffrage se fait correctement.
cad que le serveur distant (php), récupère des fichiers chiffrés en AES + une clé symétrique chiffrée en RSA
à partir de là, il décode la clé et peut décoder les fichiers.
dans la phase retour, la clé RSA générée et envoyée en BASE64, est bien déchiffrée et l'on constate qu'elle est identique. On tente de déchiffrer les fichier avec le résultat, mais j'ai l'erreur suivante
on s'est pourtant assuré de la correspondance des IvParameterSpec, ainsi que de l’algorithme utilisé ( "AES/CBC/PKCS5Padding") de la lib bouncyCastle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 javax.crypto.BadPaddingException: pad block corrupted at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher$BufferedGenericBlockCipher.doFinal(Unknown Source) at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source) at javax.crypto.Cipher.doFinal(Cipher.java:1970) at com.cwfse.cryptage.CipherEncryptor.crypt(CipherEncryptor.java:63) at com.cwfse.cryptage.SymetricEncryptor.decryptFile(SymetricEncryptor.java:608) at com.cwfse.main.Cmain$12.handleEvent(Cmain.java:566) at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source) at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source) at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source) at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source) at com.cwfse.main.Cmain.main(Cmain.java:671)
je pense que mon problème vient de la génération de ma clé, mais j'ai pas d'idée pourquoi celle ci est mauvaise.
y' a t il quelque chose que j'ai mal, fait, mal compris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 EncryptionUtil test = new EncryptionUtil(); String clesyme =test.decrypt(toto, titi); //resultat décryptage RSA System.out.println(clesyme); byte[] decodedKey = Base64.decodeBase64(clesyme); SecretKey originalKey = new SecretKeySpec(decodedKey, 0, decodedKey.length, "AES");
merci d'avance pour toute aide apportée
Partager