原创

DES 解密报 Given final block not properly padded 错误

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。

DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

DES 加密源码参考地址(Java 通过 DES 实现加密和解密):http://blog.yoodb.com/yoodb/article/detail/266

如果编写的其他 Java DES 加密解密方式,报 javax.crypto.BadPaddingException: Given final block not properly padded 错误,具体解决方案如下:

将 Cipher cipher = Cipher.getInstance("DES"); 替换为 Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");

原因是 Cipher cipher = Cipher.getInstance("DES"); 等同于 Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding"); 加密时会得到16长度的字节数组

~阅读全文-人机检测~

微信公众号“Java精选”(w_z90110),专注Java技术干货分享!让你从此路人变大神!回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

涵盖:互联网那些事、算法与数据结构、SpringMVC、Spring boot、Spring Cloud、ElasticSearch、Linux、Mysql、Oracle等

评论

分享:

支付宝

微信