如何更快地进行文件加密

时间:2019-03-24 19:39:16

标签: java android encryption

我的文件加密非常慢! 2分钟即可获得70 Mb。我使用this library和类来加密文件。它可以工作,但是非常慢。例如。对于文件.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秒

1 个答案:

答案 0 :(得分:0)

您需要指定所需的加密类型,不同的规格会有不同的速度。

无论如何,我建议您使用其他更好地编写和维护的加密库,我对您命名的库没有经验,但是可以考虑像Java security components这样的本机Java Cryptography Architecture无法帮您完成工作,然后进一步研究其他第三方库。