我有1000万个网页网址,我想将它们的HTML保存为一个文件。操作系统在我的文件名中可以使用的限制很多。我想要一些系统将URL映射到字母数字表示,以便以低概率生成重复条目的键值数据库中存储。我需要一个可扩展的解决方案,那就是无论是:到文件名转换的网址
一些编码方案(Windows为例子,有一个文件名可以是多长时间也是如此大的URL可以产生很大的编码字符串限制)
stdlib的某些功能很可能会产生重复项(并且在键值数据库中映射random_string => url_path)。
我想出了以下解决方案:
- 使用base64编码。这会为大型网址产生大字符串。
- 使用安全随机生成urlsafe base64。我不知道有多少组合,直到我得到重复的条目。
Digest :: SHA1.hexdigest'foo'似乎是用于字符串的。如果我想从SHA1哈希中恢复到普通的'foo'中,该怎么办? – daremkd 2014-10-11 14:22:07
由于您提到了Secure Random,我解释说您不需要从转换后的名称中取回原始字符串。如果情况并非如此,那么你的问题是误导或无意义的。 – sawa 2014-10-11 14:58:16