【发布时间】:2011-05-02 23:58:04
【问题描述】:
我正在做一个关于使用河豚在java中进行加密和解密的作业。
我已经添加了一个提供程序,并获得了实例“Blowfish/ECB/NoPadding”,但是当我进行加密时我仍然得到这个错误。
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
例如:
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)
谢谢。
【问题讨论】:
-
使用填充对你有用吗,你能分享一下固定的代码吗?
标签: java