Criptografia DES

Estou fazendo um programa simples que criptografe/descriptografe Strings em DES (codificado em Base64).
Até o momento estou conseguindo criptografar Strings não importa o tamanho da mesma.
No momento de descriptografar Strings muito grande está dando IllegalBlockSizeException.
Como nunca tinha tentado algo do gênero antes não sei como proceder e como tratar essa exceção
Alguém poderia me explicar o motivo de eu conseguir criptografar não importa o tamanho da String mas não consegui descriptografar strings muito grandes ?
Qual o melhor jeito de proceder neste caso ?

Aqui vai meu código caso queiram dar uma olhada…

http://pastebin.com/rkMwpxtB

Eu arriscaria dizer que o array de bytes que você está tentando encriptar está muito grande. Você pode tentar quebrar o seu texto com o tamanho do getBlockSize().

A partir daí, você pode ir concatenando os “blocos”. Para aumentar a segurança, vc pode ainda fazer alguma operação sobre os bytes em vez de simplesmente concatenar.

Mas acredito que na verdade, deve ter estourado o tamanho do array que o algortimo do DES tenta inicializar por conta do tamanho do seu texto.

Você está criando esse programa para aprender ou para colocar no mercado?

Pq já existem apis que fazem todo esse trabalho para vc. [=

O DES puro (modo ECB) codifica apenas blocos de 8 bytes de cada vez.
Se o array de bytes a ser codificado não tiver comprimento múltiplo de 8, vai dar problemas.

Procure por PKCS5Padding