javax.crypto.IllegalBlockSizeException при использовании blowfish в Java - PullRequest
1 голос
/ 18 октября 2011
String key = "my_own_key_which_should_be_quite_long";
byte[] keyData = key.getBytes();
SecretKeySpec myKey = new SecretKeySpec(keyData, "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, myKey);
String input = "string to encrypt";
try {
    byte[] encrypted = cipher.doFinal(input.getBytes());
    System.out.println(new String(encrypted));
} catch (Exception ex) {
    ex.printStackTrace();
}

javax.crypto.IllegalBlockSizeException: 7 завершающих байтов выбрасываются методом doFinal. В чем проблема? Что самое интересное - независимо от того, как долго строка ключа является исключением, всегда одинаково - 7 конечных байтов.

1 Ответ

1 голос
/ 08 августа 2012

В любом случае, использование библиотеки Gnucrypto решило эту проблему

...