Шифрование моего файла очень медленное! 2 минуты за 70 Мб. Я использую эту библиотеку и класс для шифрования файлов. Это работает, но это очень медленно. Например, для файла .mp4 (70Mb) шифрование занимает 2 минуты.
Я много искал на этом сайте и в Интернете, но не смог найти быстрый путь. Мой класс шифрования - JealousSky:
Мой код для шифрования это:
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 с
Вам необходимо указать, какой тип шифрования вы хотите, скорость будет отличаться для разных спецификаций.
Несмотря на это, я предлагаю вам использовать другие библиотеки шифрования, которые лучше написаны и поддерживаются, у меня нет опыта работы с библиотекой, которую вы назвали, но вы можете рассмотреть нативные компоненты безопасности Java, такие как Java Cryptography Architecture, если это не поможет вы, а затем исследовать другие сторонние библиотеки.