我尝试通过加密单个文件来执行此操作,但是我有很多数据(〜20GB),因此将花费大量时间。在我的测试中,加密单个大小为80MB的文件花了2.28分钟。 有没有一种更快的方式可以对任何文件(文本/二进制/多媒体)进行密码保护?
答案 0 :(得分:1)
如果您只是想对其他人隐藏文件,则可以尝试加密文件路径,而不是加密大文件。
对于您提到的路径:text/binary/multimedia
,您可以尝试使用以下方法对它进行加密:
private static String getEncryptedPath(String filePath) {
String[] tokens = filePath.split("/");
List<String> tList = new ArrayList<>();
for (int i = 0; i < tokens.length; i++) {
tList.add(Hashing.md5().newHasher() // com.google.common.hash.Hashing;
.putString(tokens[i] + filePath, StandardCharsets.UTF_8).hash().toString()
.substring(2 * i, 2 * i + 5)); // to make it impossible to encrypt, add your custom secret here;
}
return String.join("/", tList);
}
,然后它变成如下的加密路径:
72b12/9cbb3/4a5f3
一旦您知道真实路径text/binary/multimedia
,便随时可以访问该文件,只需使用此方法即可获取真实文件路径 72b12/9cbb3/4a5f3
。