-1
我有以下的密码(这是已经被加密)和密钥AES Decrypter的未正确填充
密码= bbSOvqxMRpO004qYLD/REQ ==
键= VUzwYCbBBcEQxu6jvGrwnvAYCD2d7FpQ
以下代码返回未正确填充 为解密密码,我不知道为什么。看了几个例子后,我似乎在跟着他们。
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public abstract class AESDecrypter {
public static String decrypt(String encryptedString, String key) {
try {
SecretKeySpec keySpec = null;
Cipher decryptCipher = null;
//----
SecretKeySpec keySpec = null;
Cipher decryptCipher = null;
//----
keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
System.out.println(keySpec.toString());
decryptCipher = Cipher.getInstance("AES");
decryptCipher.init(Cipher.DECRYPT_MODE, keySpec);
System.out.println("End decrypt");
return new String(decryptCipher.doFinal(Base64.decodeBase64(encryptedString.getBytes("UTF-8"))), "UTF-8");
}
}
回报
Given final block not properly padded
javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13*..)
at javax.crypto.Cipher.doFinal(DashoA13*..)
at edu.uga.ovpr.decrypter.AESDecrypter.decrypt(AESDecrypter.java:35)
at edu.uga.ovpr.filetransferrer.FTPSConnection.<init>(FTPSConnection.java:44)
at edu.uga.ovpr.filetransferrer.FileTransferrer.getConnection(FileTransferrer.java:285)
at edu.uga.ovpr.filetransferrer.FileTransferrer.doTransfer(FileTransferrer.java:221)
at edu.uga.ovpr.filetransferrer.FileTransferrer.main(FileTransferrer.java:128)
那么怎么样,你不只是吞下异常......我强烈怀疑抛出一个异常,但是你失去了所有的信息。无论如何,您应该很少捕获“Exception”(更喜欢捕获特定的异常),并且几乎不会*仅仅在没有记录异常的情况下返回一个值。 ('new String(...)'部分*绝对*不会返回'null'。) –
好的。我已经删除了try和catch块。现在,我得到一个 鉴于最终块未正确填充 javax.crypto.BadPaddingException:鉴于最终块未正确填充 在com.sun.crypto.provider.SunJCE_f.b(DashoA13 * ..) 在COM .sun.crypto.provider.SunJCE_f.b(DashoA13 * ..) at com.sun.crypto.provider.AESCipher.engineDoFinal(DashoA13 * ..) at javax.crypto.Cipher.doFinal(DashoA13 * ..) at edu.uga.ovpr.decrypter.AESDecrypter.decrypt(AESDecrypter.java:35) – Evilsithgirl