Pessoal não estou conseguindo entender o porque desses erros que estão aparecendo , alguém poderia me ajudar mostrando o erro.
Segue o código para quem estiver a disposição para ajudar
package criptografiades;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Encoder;
public class DESjuncao {
private SecretKey key ;
public String thekey ;
public DESjuncao() {
}
private void generateKey() throws Exception {
DESKeySpec deskeySpec = new DESKeySpec(thekey.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
key = keyFactory.generateSecret(deskeySpec);
}
private String encrypt(String message) throws Exception {
Cipher desCipher;
desCipher = Cipher.getInstance("DES/ECB/NoPadding");
//Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");
//Cipher.getInstance("DES/ECB/NoPadding");
desCipher.init(Cipher.ENCRYPT_MODE, key);
byte[] stringBytes = message.getBytes();
byte[] raw = desCipher.doFinal(stringBytes);
BASE64Encoder encoder = new BASE64Encoder();
String base64= encoder.encode(raw);
return base64;
}
public static void main(String[] args) {
String Message="Código tem que funcionar ";
String Decrypted;
String Encrypted;
DESjuncao des = new DESjuncao();
des.thekey="computador";
try
{
des.generateKey();
System.out.println("clear message " + Message);
Encrypted=des.encrypt(Message);
System.out.println("encrypted message:"+ Encrypted);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
ERROS :
> clear message Código tem que funcionar
> javax.crypto.IllegalBlockSizeException: Input length not multiple of 8 bytes
> at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1039)
> at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:1007)
> at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:845)
> at com.sun.crypto.provider.DESCipher.engineDoFinal(DESCipher.java:314)
> at javax.crypto.Cipher.doFinal(Cipher.java:2165)
> at criptografiades.DESjuncao.encrypt(DESjuncao.java:34)
> at criptografiades.DESjuncao.main(DESjuncao.java:59)