java解密逻辑:javax.crypto.BadPaddingException

时间:2014-06-10 13:31:03

标签: java encryption

以下是我用于解密的代码。

 public String decrypt(String strToBeDecrypted) {
    try {
        if((strToBeDecrypted.trim().length()!=0) && !(strToBeDecrypted.trim().equals("")) && !(strToBeDecrypted.trim().equalsIgnoreCase("NA"))){
        strToBeDecrypted = URLDecoder.decode(strToBeDecrypted, "UTF-8");
        DESKeySpec desKeySpec = new DESKeySpec(key);
        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
        SecretKey skey = keyFactory.generateSecret(desKeySpec);

        IvParameterSpec ivSpec = new IvParameterSpec(iv);

        cipher.init(Cipher.DECRYPT_MODE, skey, ivSpec);

        byte[] keyByteArray = new BASE64Decoder().decodeBuffer(strToBeDecrypted);

        byte[] original = cipher.doFinal(keyByteArray);

        return new String(original, "UTF-8");
    }
   }
    catch (Exception e) {
        logger.error(ExceptionUtil.getDetailedMessage(e));
    }
    return "";
}

我得到“未知异常详细信息:name = javax.crypto.BadPaddingException; message =给定最终块没有正确填充;”在下面的行

 byte[] original = cipher.doFinal(keyByteArray);

任何人都可以告诉我这里的问题是什么?我使用以下键

encryptkey = QvgC9vBXDZyM7RoAxevpHaawEbL5CW8Sp1zjEQ

迭代= 19

段= 5

0 个答案:

没有答案