1

可能重复:
如何以数学方法缩短网址

它是一个大学 django 项目.. 我无法真正设置数据库模型来存储动态生成的 URL 并根据散列主键重定向到短 url.. 等

我正在考虑使用某种算法加密 URL 并在服务器上解密。最初,我想使用 md5 哈希,但我想我们无法解密。

我的实际网址如下所示:

http://mydomain.com/photo?friend_name=dennis&me_name=ritchie&ping_url=http%3A%2F%2Fmydomain.com%2Fimg%3Furl%3Dhttps%3A%fsjcsd.googleueusercontent.com%2F-Sf6bP2nOKa8%2FUMaw8vv0QLI%2FAaaddjhnkchkjda7E%2Fs800%2FHosbsco.png%26message%3Dhi+dude

我正在考虑将其转换为:

http://mydomain.com?encode=hksfhsfksuhkvbkjnukvns

然后在服务器端我想转换hksfhsfksuhkvbkjnukvns回实际的字符串。

我有任何 Python 库吗

4

1 回答 1

2

您可以使用 url 压缩 + 加密/base64 方法。

对于压缩,您可以检查 python 的 zlib 或任何其他无损压缩库(lzma 等),然后通过 base64 将压缩的二进制字符串转换为 ascii。供您参考,您的网址的 zlib + base64 比原始网址差。

但是 url 可能永远不会像你想象的那么短,仅仅是因为 url 内容信息量大,压缩比不好等。所以这种方案可能永远无法满足对文本长度有限制的应用程序的需求(比如 twitter) .

因此,如果您想要一个非常短的网址,则必须有一个地方来存储短长对。

牢记这些,我在谷歌上搜索“网址缩短器”并弹出了很多内容。

这些是用于完成这项工作的第三方 Web 应用程序:

不过,希望您可以使用第三方应用程序。

于 2012-12-12T09:41:20.663 回答