【发布时间】:2012-07-13 11:00:50
【问题描述】:
为了在用户提供的文件的文件系统名称中生成一些唯一性,我生成了一些其他用户提供的数据(在本例中是用户的 IP 地址和一个随机整数)的哈希值,并在文件名前加上它。我选择了 SHA-1 算法来执行这个哈希。不幸的是,从
返回的字符串md = MessageDigest.getInstance("SHA-1");
// Add values to the digest
String ipAddrHash = new String(md.digest());
...当然包含各种奇怪的外来字符,其中大部分是不允许出现在文件名中的。
所以,要么:
- 如何将哈希值字符串转换为包含可在文件名中使用的“常规字符”的字符串?
- 在 Java 中是否有一个简单的单向函数可供我使用,它可以生成一个不可逆的值供我立即在文件名中使用?
【问题讨论】: