Шифр: Бросок IllegalBlockSizeException - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь расшифровать данные в Java, которые были зашифрованы в PHP с использованием AES-256-CB C. Метод дешифрования Java cipher.doFinal, генерирующий исключение IllegalBlockSizeException. Может ли кто-нибудь помочь мне решить эту проблему? Стучу по голове, чтобы исправить это за последние 2 дня. Пожалуйста, дайте мне знать, если вам нужно больше информации.

     public static String decrypt(String encryptedResult, String secretKey, String iv) {
        String decrypted;
        try {
            byte[] bytes = new BigInteger(encryptedResult.trim(),16).toByteArray();
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            cipher.init(Cipher.DECRYPT_MODE, makeKey(secretKey), makeIv(iv));
            byte[] bytesFinal = cipher.doFinal(bytes);
            decrypted = new String(bytesFinal);

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return decrypted;
    }

    static AlgorithmParameterSpec makeIv(String iv) {
        try {
            return new IvParameterSpec(iv.getBytes(StandardCharsets.UTF_8));
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    static Key makeKey(String secretKey) {
        return new SecretKeySpec(secretKey.getBytes(), "AES");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...