我有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