Given final block not properly padded
JAVA语言DES算法:http://blog.csdn.net/ljheee/article/details/51471098
获取Cipher对象的时候一定要写成
Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");
不要写成
Cipher cipher = Cipher.getInstance("DES");
否则解密的时候会报错:
Given final block not properly padded
原因是Cipher cipher = Cipher.getInstance("DES");与Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");等同,填充方式错误,加密的时候会得到16长度的字节数组。
DES加密算法原理[pdf文档]:http://download.csdn.net/detail/ljheee/9527833
还有一类常见错误
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
解密时,要求传入的参数是8的倍数。
JCE详解传送门:http://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html
参考、转载地址:http://blog.csdn.net/zbz0425/article/details/14223537