因为文本中显示太长的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.google.com/123')
分享到:
相关推荐
### 使用Python生成URL短链接的方法 #### 背景与意义 随着互联网的快速发展,社交媒体平台如微博、微信等越来越普及。在这个过程中,长链接在显示时不仅占用大量空间,而且也不够美观,因此短链接应运而生。短链接...
Python批量生成二维码工具是一种高效的工作解决方案,特别是在你需要为大量数据创建独特的二维码时。这个自定义工具弥补了在线二维码生成器无法满足特定需求的不足。在本文中,我们将深入探讨Python如何实现这一功能...
一、核心功能设计 首先我看了网上那些视频营销号的视频,大多数都是围绕一个主题通过几张图片进行视频轮播展示并添加一些热门歌曲作为背景音乐。... pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
本项目“python生成html+flask界面呈现”就是这样一个实例,它展示了如何使用Python和Flask来创建并展示HTML内容。 首先,让我们了解`pyh.py`可能的功能。这个文件可能是用来处理HTML模板的,Flask支持Jinja2模板...
本文实例讲述了Python实现短网址ShortUrl的Hash运算方法。分享给大家供大家参考。具体如下: shorturl实现常见的做法都是将原始Url存储到数据库,由数据库返回一个对应ID。 以下要实现的是不用数据库支持就对原始URL...
在这个项目中,我们主要探讨如何使用Python进行Web爬虫,抓取豆瓣电影评论,然后利用这些数据生成词云图,并最终将词云图保存为图片。以下是对整个过程的详细说明: 1. **Python Web爬虫**:Python是Web爬虫开发的...
例如,可以生成包含文本、URL、联系方式等信息的二维码;或者将生成的二维码嵌入到文档、网页或应用程序中。总之,使用 Python 生成二维码是一种高效且灵活的解决方案,适用于各种信息分享和展示的需求。通过这种...
在本话题中,我们将重点关注Python在生成二维码和处理Excel方面的应用。 首先,让我们来探讨一下“Python二维码生成”。二维码,全称Quick Response Code,是一种二维条形码,可以存储大量的文本信息,如网址、联系...
Python二维码生成器是一种利用Python编程语言创建二维码的工具。在当今信息化社会,二维码广泛应用于名片、网址、付款码、电子票务等领域。Python中有多个库支持二维码的生成,如`qrcode`、`pyqrcode`等。在这里,...
本篇文章将详细探讨如何利用Python生成terrain地形数据,并结合Cesium进行加载。 首先,地形数据通常以多种格式存在,如TIFF(Tagged Image File Format)图像,它是一种广泛用于地理空间数据的格式。TIFF文件包含...
`shortuuid`是一个针对Python设计的库,它的主要功能是生成简短、可读性强、URL安全的UUID替代品。这个库由Christos Skorokithakis创建,并且在GitHub上的项目名为"skorokithakis/shortuuid",最新的稳定版本为c...
批量生成URL的过程涉及到字符串操作和循环结构。在编程语言如Python、JavaScript或PHP中,可以通过循环遍历指定范围的数字,并结合前缀和后缀拼接成完整的URL字符串。例如,如果前缀是"http://",开始数字是1,结束...
Python 2.7 二维码名片生成器是一款基于VCard格式的应用程序,它允许用户创建包含个人信息的二维码,便于他人通过扫描快速获取并存储联系信息。这个工具利用了Qt图形库来构建用户界面,并且借助qrcode库来生成高质量...
### Python使用uuid库生成唯一标识ID #### 一、引言 在开发过程中,经常会遇到需要为对象或记录分配一个全局唯一标识符的情况。这样的标识符可以帮助我们在分布式系统中跟踪对象,避免数据冲突等问题。Python 的 `...
2. **后端代码**:可能包含PHP、Python、Node.js或其他服务器端语言的脚本,负责处理URL的缩短和还原逻辑,与数据库进行交互存储和查找短网址。 3. **数据库脚本**:如SQL文件,用于创建存储长网址和对应的短码的...
在这个场景中,"Python-生成链接让用户可以使用自己的公钥加密提交信息"是一个涉及网络安全和加密技术的应用。下面将详细解释这个主题,并结合"whitesmith-hawkpost-26a6eb8"这个项目或库可能涉及的关键概念。 1. *...
在这个“短网址生成器Python版”中,我们可以深入探讨与Python编程相关的知识,尤其是涉及到URL处理和数据编码的部分。 首先,我们要了解短网址生成器的基本原理。它通常基于哈希算法或者数据库自增ID来实现。长...
本文实例讲述了python实现文件路径和url相互转换的方法。分享给大家供大家参考。具体实现方法如下: import urllib pathname = 'path/to/file/or/folder/' url = urllib.pathname2url(pathname) pathname = urllib....
这个库提供了一个统一的接口,允许开发者轻松地使用不同的API来生成短网址。 首先,让我们详细了解一下`pyshorteners`的安装过程。通过Python的包管理器pip,你可以轻松地将其添加到你的项目环境中。在命令行或终端...