如何在没有数据库的情况下创建短网址

时间:2012-12-12 07:08:38

标签: python django url encryption url-shortener

  

可能重复:
  how to shorten the url in a mathematical approach

它是一个大学django项目..我无法真正设置数据库模型来存储动态生成的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 Lib

1 个答案:

答案 0 :(得分:0)

您可以使用url compression + encrypting / base64方法。

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

但是网址可能永远不会像您期望的那么短,仅仅因为网址内容包含大量信息,压缩率较差等等。因此,此解决方案可能无法满足文本长度限制的应用程序的需求(喜欢推特)。

所以,如果你想要一个真正的短网址,那么必须有一个地方可以存放短长对。

记住这些,我用谷歌搜索“url shortener”并且大量弹出。

这些是第三方Web应用程序,只是为了完成这项工作:

希望你可以使用第三方应用程序。