Autore Topic: TripleDES e Android  (Letto 608 volte)

Offline joaquin

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
TripleDES e Android
« il: 27 Luglio 2011, 16:00:55 CEST »
0
Ciao,

ho un problema ad effettuare la decodifica di byte criptati.

Posto il codice.

Per cifrare ho scritto questo metodo:

Codice (Java): [Seleziona]
public static byte[] encryptByte(byte[] cryptoByte,
                        Context applicationContext) throws IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException, InvalidAlgorithmParameterException, NoSuchPaddingException {
                final SecretKey key = new SecretKeySpec(new UniqueIdentifier(
                                applicationContext).getUuidBytes(), "DESede");
               
                final IvParameterSpec iv = new IvParameterSpec(new byte[8]);

                final Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");

                cipher.init(Cipher.ENCRYPT_MODE, key, iv);

                return cipher.doFinal(cryptoByte);
        }

mentre per decodificare:

Codice (Java): [Seleziona]
public static byte[] decryptByte(byte[] cryptoByte,
                        Context applicationContext) throws IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, UnsupportedEncodingException, InvalidKeyException, InvalidAlgorithmParameterException, NoSuchPaddingException {
                final SecretKey key = new SecretKeySpec(new UniqueIdentifier(
                                applicationContext).getUuidBytes(), "DESede");
               
                final IvParameterSpec iv = new IvParameterSpec(new byte[8]);

                final Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");

                cipher.init(Cipher.DECRYPT_MODE, key, iv);
               
                return cipher.doFinal(cryptoByte);
        }


ma quando decripto viene generata la seguente eccezione dal metodo doFinal(....)

javax.crypt.BadPaddingException: pad block corrupted !!!

Cosa c'è di strano??? Visto che lo stesso codice scritto per un'applicazione java console funziona perfettamente.

Navigando ho letto che ci possono essere problemi tra lòa versione di BouncyCastle e la versione Android ma non penso sia questo.

Qualcuno ha qualche spiegazione?
« Ultima modifica: 27 Luglio 2011, 16:03:34 CEST da joaquin »