как быстрее шифровать файлы

1

Шифрование моего файла очень медленное! 2 минуты за 70 Мб. Я использую эту библиотеку и класс для шифрования файлов. Это работает, но это очень медленно. Например, для файла .mp4 (70Mb) шифрование занимает 2 минуты.

Я много искал на этом сайте и в Интернете, но не смог найти быстрый путь. Мой класс шифрования - JealousSky:

JealousSky.class

Мой код для шифрования это:

try {
        jealousSky.initialize(
                "longestPasswordEverCreatedInAllTheUniverseOrMore",
                "FFD7BADF2FBB1999");
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }

    try {
        InputStream is = new FileInputStream(listFiles[position]);
        jealousSky.encryptToFile(is,listFiles[position].getParent()+"/"+EncName);
        givenFile.delete();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (InvalidKeySpecException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (BadPaddingException e) {
        e.printStackTrace();
    } catch (InvalidKeyException e) {
        e.printStackTrace();
    } catch (InvalidAlgorithmParameterException e) {
        e.printStackTrace();
    } catch (NoSuchPaddingException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
        e.printStackTrace();
    }

Редактировать:

Решение

в JealousSky.class и методе шифрования необходимо изменить (getEncryptInputStream) на (getDecryptFromCipherInputStream)

в конце концов, 2 минуты снизились до 12 с

Теги:
encryption

1 ответ

0

Вам необходимо указать, какой тип шифрования вы хотите, скорость будет отличаться для разных спецификаций.

Несмотря на это, я предлагаю вам использовать другие библиотеки шифрования, которые лучше написаны и поддерживаются, у меня нет опыта работы с библиотекой, которую вы назвали, но вы можете рассмотреть нативные компоненты безопасности Java, такие как Java Cryptography Architecture, если это не поможет вы, а затем исследовать другие сторонние библиотеки.

  • 0
    эта библиотека использует байты AES [16]
  • 2
    @fazel Обычно само шифрование не должно занимать так много времени. Также я вижу, что библиотека JealousSky выполняет ужасную работу с управлением памятью (getEncryptInputStream), кажется, это довольно паршивая реализация. Просто используйте чистую Java-криптографию (если вы можете сделать это правильно).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню