问题: AES解密异常Given final block not properly padded,AES 128/192/256位CBC/CFB/ECB/OFB/PCBC加密解密|Java Web后台开发|在线助手,您的在线生成制作工具箱!
问题关键字: AES解密异常,Given final block not properly padded,AES在线加密,AES在线解密,AES 128位加密解密,AES 192位加密解密,AES 256位加密解密,AES CBC/CFB/ECB/OFB/PCBC加密解密,Java Web后台开发,Spring Boot,Spring Mvc,thymeleaf,在线助手,在线工具,!
问题详细描述: AES解密异常Given final block not properly padded,AES 128/192/256位CBC/CFB/ECB/OFB/PCBC加密解密包括AES在线加密,AES在线解密,AES 128位加密解密,AES 192位加密解密,AES 256位加密解密,AES CBC/CFB/ECB/OFB/PCBC加密解密,it399在线助手以及在线助手博客专注于提供在线生成、在线制作等在线工具,以及提供在windows、Mac环境下使用eclipse、intellij idea进行JavaWeb后台开发专栏主要记录了开发过程中SpringBoot报错,SpringMVC报错,thymeleaf模板,vue使用,jsp报错,servlet报错,Mysql数据库报错等常见问题!
二三九九
AES解密异常Given final block not properly padded,AES 128/192/256位CBC/CFB/ECB/OFB/PCBC加密解密
在线助手博客首页
###Hello world!
####[AES 128/192/256位CBC/CFB/ECB/OFB/PCBC 在线加密解密](https://www.it399.com/aes) **解密内容**:1243CFEBD819AA6B1C717DE870459F7B **秘钥**:https://www.it399.com **没有使用填充向量iv** **AES解密异常Given final block not properly padded** ```java javax.crypto.BadPaddingException: Given final block not properly padded at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:966) at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:824) at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:436) at javax.crypto.Cipher.doFinal(Cipher.java:2165) ``` **原因: 解密的时候直接对输入的16进制值** 1243CFEBD819AA6B1C717DE870459F7B 取getBytes了,**这样获取到的字节数组长度是16,不能直接这样操作**。 ```java inputValue.getBytes(AESUtil.CHARSET) ``` 需要将16进制转字节数组,这样获取到的内容是32位,而且和之前直接获取到的字节数组不一样。 ```java TypeConvert.hexStringToBytes(inputValue) ``` 16进制转字节数组方法 ```java /** * Convert hex string to byte[] * * @param hexString the hex string * @return byte[] */ public static byte[] hexStringToBytes(String hexString) { if (hexString == null || hexString.equals("")) { return null; } hexString = hexString.toUpperCase(); int length = hexString.length() / 2; char[] hexChars = hexString.toCharArray(); byte[] d = new byte[length]; for (int i = 0; i < length; i++) { int pos = i * 2; d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1])); } return d; } ``` 这样解密之后的字符串是 在线助手 正常!! **还有一种情况是输入的字符串不正常不能解密!** ####相关文章 #####AES 128/192/256位CBC/CFB/ECB/OFB/PCBC加密解密 https://www.it399.com/blog/web/201805211243 #####AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 https://www.it399.com/aes #####AES解密异常Given final block not properly padded https://www.it399.com/blog/web/201805211406 > 本文同步发布在 [在线助手博客|在线助手|在线工具|在线生成|在线制作](https://www.it399.com) ,**转载请注明来自 [在线助手博客](https://www.it399.com/blog/index) 频道【AES解密异常Given final block not properly padded】,原文链接**:**https://www.it399.com/blog/web/201805211406**
返回顶部
下载Android客户端
Copyright © 2017-2018 . All Rights Reserved.
粤ICP备18008506号