AES解密異常Given final block not properly padded

AES 128/192/256位CBC/CFB/ECB/OFB/PCBC 在線加密解密

解密內(nèi)容:1243CFEBD819AA6B1C717DE870459F7B
秘鑰:http://www.it399.com
沒(méi)有使用填充向量iv
AES解密異常Given final block not properly padded

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)

原因: 解密的時(shí)候直接對(duì)輸入的16進(jìn)制值 1243CFEBD819AA6B1C717DE870459F7B 取getBytes了,這樣獲取到的字節(jié)數(shù)組長(zhǎng)度是16,不能直接這樣操作。

inputValue.getBytes(AESUtil.CHARSET)

需要將16進(jìn)制轉(zhuǎn)字節(jié)數(shù)組,這樣獲取到的內(nèi)容是32位,而且和之前直接獲取到的字節(jié)數(shù)組不一樣。

TypeConvert.hexStringToBytes(inputValue)

16進(jìn)制轉(zhuǎn)字節(jié)數(shù)組方法

/**
     * 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;
    }

這樣解密之后的字符串是 在線助手 正常?。?/p>

還有一種情況是輸入的字符串不正常不能解密!

相關(guān)文章

AES 128/192/256位CBC/CFB/ECB/OFB/PCBC加密解密

http://www.it399.com/blog/web/201805211243

AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在線加密解密|在線工具|在線助手|在線生成|在線制作

http://www.it399.com/aes

AES解密異常Given final block not properly padded

http://www.it399.com/blog/web/201805211406

本文同步發(fā)布在 在線助手博客|在線助手|在線工具|在線生成|在線制作轉(zhuǎn)載請(qǐng)注明來(lái)自 在線助手博客 頻道【AES解密異常Given final block not properly padded】,原文鏈接:http://www.it399.com/blog/web/201805211406

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容