我有一个小疑问,因为我是AES新手。
我使用一个证书加密了一个字符串,但有一些密码,比如'xxx'。
现在我通过更改密码来复制证书。
当我尝试使用重复的证书解密加密的字符串时,它表示填充异常错误。线程“main”中的异常javax.crypto.BadPaddingException:给定最终块未正确填充
但是,当我使用原始证书时,它会正确解密。
有人可以指导我吗?
public int stringMatch(String a, String b) {
// Figure which string is sho`enter code here`rter.
int len = Math.min(a.length(), b.length());
int count = 0;
// Look at both substrings starting at i
for (int i=0; i<len-1; i++) {
String aSub = a.substring(i, i+2);
String bSub = b.substring(i, i+2);
if (aSub.equals(bSub)) { // Use .equals() with strings
count++;
}
}
return count;
}
答案 0 :(得分:0)
您应该使用RSA来打包/解包AES密钥。公钥与AES密钥不相同,因此以下代码肯定不正确:
Key key = cert.getPublicKey();
aesSecretKey = new SecretKeySpec(key.getEncoded(), algorithm);