File 在Java 8和Java 10中,如何对文件进行密码保护,而不考虑其扩展名

File 在Java 8和Java 10中,如何对文件进行密码保护,而不考虑其扩展名,file,encryption,java-8,password-protection,java-10,File,Encryption,Java 8,Password Protection,Java 10,我曾尝试通过加密单个文件来实现这一点,但我有大量数据(~20GB),因此需要花费大量时间。在我的测试中,加密一个80MB大小的文件需要2.28分钟。 是否有一种更快的方法可以对任何文件(文本/二进制/多媒体)进行密码保护?如果您只是想对其他人隐藏文件,您可以尝试对文件路径进行加密,而不是对整个大文件进行加密 对于您提到的路径:text/binary/multimedia,您可以尝试通过以下方法对其进行加密: private static String getEncryptedPath(Strin

我曾尝试通过加密单个文件来实现这一点,但我有大量数据(~20GB),因此需要花费大量时间。在我的测试中,加密一个80MB大小的文件需要2.28分钟。
是否有一种更快的方法可以对任何文件(文本/二进制/多媒体)进行密码保护?

如果您只是想对其他人隐藏文件,您可以尝试对文件路径进行加密,而不是对整个大文件进行加密

对于您提到的路径:
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);
}

一旦知道实际路径
text/binary/multimedia
,任何时候想要访问该文件,都可以使用此方法获取实际文件路径
72b12/9cbb3/4a5f3

读过了吗?或者说:@Hearen谢谢你的评论。对不起,我花了一些时间才回来。我看到了上面的帖子,我已经能够做到了,但我担心的是时间。加密文件,尤其是多媒体文件可能非常慢。这意味着我每次都需要加密/解密,而对于20GB+来说,这将需要很多时间。我想知道是否有比加密整个文件更快的方法。嘿@Hearen谢谢你的解决方案。这种方法实际上最符合我的要求。非常感谢你的帮助。我会尽快试一试。
72b12/9cbb3/4a5f3