几乎所有的微薄都提供了缩短网址的服务,其原理就是将一个url地址按照一定的算法生成一段字符串,然后加在一个短域名后面边成了一个新的url地址,数据库中会存放这个短地址和原始的地址,当用户点击这个新的短地址后,短地址服务会根据短域名后面的几个字符串从数据库中读出原来的地址然后页面进行跳转 。
比如新浪微薄中的url 是 http://t.cn/xxxxxxx t.cn是其域名 ,其后面跟着的是7位算出来的字符串。
方法一:使用哈希库自定义算法
因为文本中显示太长的url会比较乱,或者采用省略显示的方式,或者采用短url的方式.
为了同时方便统计点击数以及进行内容过滤.实现了一个生成短url值的方法.
为了防止你的hash值被破解,可以在生成md5值的时候加入你自己的salt.
这样即便直到你的code_map也不能破解到原始url了.
为了让结果更加随机,把每次循环没有使用的第二个bit保存到e里面.这样可以让结果冲突率更小.
#引入哈希库 import hashlib def get_md5(s): s = s.encode('utf8') if isinstance(s, unicode) else s m = hashlib.md5() m.update(s) return m.hexdigest() code_map = ( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z' , '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , 'Y' , 'Z' ) def get_hash_key(long_url): hkeys = [] hex = get_md5(long_url) for i in xrange(0, 4): n = int(hex[i*8:(i+1)*8], 16) v = [] e = 0 for j in xrange(0, 5): x = 0x0000003D & n e |= ((0x00000002 & n ) 1) << j v.insert(0, code_map[x]) n = n 6 e |= n << 5 v.insert(0, code_map[e & 0x0000003D]) hkeys.append(''.join(v)) return hkeys if __name__ == '__main__': print get_hash_key('http://www.pythontab.com')
方法二:使用libsurl库
libsurl 是一个用来生成短URL的C和Python库,支持 bit.ly 和 tinyurl 等短url 服务网站。
标签:
Python
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“使用Python生成url短链接的方法”评论...
更新动态
2024年11月25日
2024年11月25日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]