【发布时间】:2010-10-15 19:42:50
【问题描述】:
Base64 编码是否可以安全地用于 Windows 和 Linux 系统上的文件名?根据我的研究,我发现用- 或_ 替换结果中的所有/ 字符应该可以解决任何问题。
谁能提供更多细节?
目前在 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 字符(第 63 位),但我从未在现实世界中见过它:en.wikipedia.org/wiki/Base64 -
请注意,Windows 文件系统不区分大小写。你不能指望一个唯一的哈希映射到一个唯一的文件。
标签: java hash encoding base64 filenames