Base64编码对文件名安全吗?

Windows和Linux系统上的文件名可以安全使用Base64编码吗?从我的研究中,我发现/-或替换结果的所有字符都_可以解决任何问题。

谁能提供更多详细信息?

当前在Java中,我正在使用以下代码:

MessageDigest md5Digest = MessageDigest.getInstance("MD5");

md5Digest.reset();

md5Digest.update(plainText.getBytes());

byte[] digest = md5Digest.digest();

BASE64Encoder encoder = new BASE64Encoder();

hash = encoder.encode(digest);

hash.replace('/','_');

回答:

修改的Base64(时/=+被替换)安全地创建名字,但不保证逆变换由于许多文件系统和URL不区分大小写。

Base64区分大小写,因此在不区分大小写的文件系统(所有Windows文件系统,忽略POSIX子系统的大小写)的情况下,它不能保证一对一映射。大多数网址也不区分大小写,从而阻止了一对一映射。

在这种情况下,我将使用Base32-您会得到更长的名称,但是Base32编码的值对于文件/

uri使用是100%安全的,而无需替换任何字符,即使在不敏感的环境下(FAT),也可以确保一对一映射/ Win32 NTFS访问)。

不幸的是,框架中通常没有对此编码的内置支持。另一方面,编写自己的代码或在线查找代码相对简单。

http://en.wikipedia.org/wiki/Base32。

以上是 Base64编码对文件名安全吗? 的全部内容, 来源链接: utcz.com/qa/417761.html

回到顶部