Originariamente inviato da seba.cappa
In modalità Cipher Block Chaining viene usato un vettore di inizializzazione per rendere diversi anche due messaggi uguali.

Il tuo initVector è lo stesso della cifratura?
Sì. Invio il vettore di inizializzazione in testa al messaggio cifrato. Lato ricevente, al momento di decifrare il mess lo estraggo.

Ho capito dove potrebbe essere l'errore...

Ho realizzato la mia applicazione sulla base di un esempio di MIDlet che riceveva un messaggio binario, che qui riporto:

if (msg instanceof BinaryMessage){

//StringBuffer buf = new StringBuffer();

BinaryMessage bmsg = (BinaryMessage)msg;
data = bmsg.getPayloadData();


// for (int i = 0; i < data.length; i++)
// {
// int intData = (int)data[i] & 0xFF;
// if (intData < 0x10)
// {
// buf.append("0");
// }
// buf.append(Integer.toHexString(intData));
// buf.append(' ');
// }

// content.setString("buf.toString: "+buf.toString());
}

NOTARE BENE i commenti...
Alla mia funzione di decifratura passo semplicemente data (che facendo stampare in un ciclo for ogni singolo carattere coincide con l'array di byte inviato).
Quindi non uso affatto il codice che usa lo STringBuffer...anche perché a me serve l'array di byte!

Potrebbe essere invece necessario questo pezzo per la corretta "ricostruzione" del messaggio binario (anche se a me serve solo la parte binaria)?

Grazie di nuovo!