Tôi đang thực hiện một bài tập về sử dụng blowfish để thực hiện mã hóa & giải mã trong java.Cách giải quyết javax.crypto.IllegalBlockSizeException: dữ liệu không chặn kích thước liên kết
Tôi đã thêm nhà cung cấp và nhận ví dụ "Blowfish/ECB/NoPadding", nhưng tôi vẫn gặp lỗi này khi tôi thực hiện mã hóa.
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
ví dụ .:
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;
}
}
dẫn đến
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)
Cảm ơn bạn.
Đã sử dụng công việc đệm cho bạn, bạn có thể vui lòng chia sẻ mã cố định không? – Shivam657