tags:

views:

19

answers:

1

I am doing an assignment about use blowfish to do encryption & decryption in java.

I had added a provider, and get instance "Blowfish/ECB/NoPadding", but I still get this error when I do the encryption.

Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

e.g.: public static byte[] encrypt(byte to_encrypt[], byte strkey[]) { try {
SecretKeySpec key = new SecretKeySpec(strkey, "Blowfish"); Cipher cipher = Cipher.getInstance("Blowfish/ECB/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, key);
return cipher.doFinal(to_encrypt); // <=========== error } catch (Exception e) { e.printStackTrace(); return null; } }

javax.crypto.IllegalBlockSizeException: data not block size aligned at org.bouncycastle2.jce.provider.JCEBlockCipher.engineDoFinal(JCEBlockCipher.java:686) at javax.crypto.Cipher.doFinal(Cipher.java:1171)

Thank you.