【发布时间】:2009-07-15 14:31:40
【问题描述】:
这是我的代码的加密部分。它编译得很好,但在运行时因异常而失败:
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
...
byte[] salt = new byte[8];
Random rand = new Random();
rand.nextBytes(salt);
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC");
SecretKey key = keyFactory.generateSecret(keySpec);
PBEParameterSpec paramSpec = new PBEParameterSpec(salt, 1000);
Cipher cipher = Cipher.getInstance("PBEWithSHAAndTwofish-CBC");
cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
byte[] ciphertext = cipher.doFinal(plaintext);
Java 1.5 不附带此算法吗?我不介意使用另一种算法,我只是不知道有什么可用的。我希望我不必使用像 bouncycastle 这样的外部库,因为我已经努力了好几天试图让它工作无济于事(通过将它包含在我的 .jar 应用程序中,它会触发“无效的签名文件摘要”错误) .
【问题讨论】:
标签: java cryptography