嗨,我有一个加密字符串来获取用户的pdf的问题。它显示了一个错误,以下:加密的字符串长度
javax.crypto.IllegalBlockSizeException:带衬垫的密
代码解密时输入长度必须是多个8是有:
public void getPDF(WebRequest request, ResourceResponse response, Model model,
@RequestParam("cif") String cif,
@RequestParam("cuenta") String cuenta,
@RequestParam("objectId") String encryptedObjectId) throws Exception{
log.info("Inicio metodo getPDF");
OutputStream os = response.getPortletOutputStream();
try {
CipherHelper cipher = new CipherHelper(CipherHelper.TRIPLE_DES_ALGORITHM, InterfazConstantes.ENCRYPTION_KEY, InterfazConstantes.ENCRYPTION_SHIFT);
String objectId = cipher.decrypt(encryptedObjectId, true);
public String getEncryptedObjectID() {
try {
CipherHelper cipher = new CipherHelper(CipherHelper.TRIPLE_DES_ALGORITHM, InterfazConstantes.ENCRYPTION_KEY, InterfazConstantes.ENCRYPTION_SHIFT);
encryptedObjectID = cipher.encrypt(objectID, true);
} catch (Exception e) {
}
return encryptedObjectID;
}
**我建立了encryptedObject ID有40个长度,但它没有解决问题jet。
错误的轨迹是:
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..) ~[sunjce_provider.jar:1.6]
at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..) ~[sunjce_provider.jar:1.6]
有人能帮助我吗?
感谢
不知道'CipherHelper'干什么,这将不可能在这里帮助。请将您的代码作为一个[最小示例](http://stackoverflow.com/help/mcve)来演示您的问题。 –
这显示总是这个错误,虽然我的字符串encryptedObjectId有8,16,32或64长度。这有些困惑,我认为这个问题可能与这个参数的加密/解密有关。 –
我已投票结束。没有更完整的代码示例,我们无法提供帮助。 –