javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA12275)
at javax.crypto.Cipher.doFinal(DashoA12275)
at com.project.commons.EncryptUtil.decryptData(EncryptUtil.java:58)
at com.project.action.mdse.orderform.OrderFormListAction.executeSales(OrderFormListAction.java:103)是解密的时候出现的问题具体问题出现的原因我已经通过断点已经知道了,就是循环list记录的时候因为两条同样的记录都是同一个客户,在循环解密的时候,解密第一条list的客户信息之后,再次循环解密第二条记录的客户信息时候,那个客户信息其实已经解密好了,这样的话再解密就出现异常了。我现在是没有思路来怎么操作。
一种是:循环每一条记录的时候查询到都是加密过的数据,如果可以这样的话我就完全可以解密了
第二种是:怎么样让list里面的相同客户信息统一出来,然后只解密一次那些客户的记录。。还有什么方法吗??

解决方案 »

  1.   

    javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
    at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
    at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA12275)
    at javax.crypto.Cipher.doFinal(DashoA12275)
    at com.project.commons.EncryptUtil.decryptData(EncryptUtil.java:58)
    at com.project.action.mdse.orderform.OrderFormListAction.executeSales(OrderFormListAction.java:103)