我的文件加密速度非常慢! 70 Mb 需要 2 分钟。我用this library和加密文件的类。它可以工作,但速度非常慢。例如。对于文件 .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 security components像Java Cryptography Architecture ,如果这不能满足您的需求,请进一步研究其他第三方库。
关于java - 如何更快地加密文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55327793/