因为文本中显示太长的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')
分享到:
相关推荐
几乎所有的微薄都提供了缩短网址的服务,其原理就是将一个url地址按照一定的算法生成一段字符串,然后加在一个短域名后面边成了一个新的url地址,数据库中会存放这个短地址和原始的地址,当用户点击这个新的短地址后...
一、核心功能设计 首先我看了网上那些视频营销号的视频,大多数都是围绕一个主题通过几张图片进行视频轮播展示并添加一些热门歌曲作为背景音乐。... pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
本文实例讲述了Python实现短网址ShortUrl的Hash运算方法。分享给大家供大家参考。具体如下: shorturl实现常见的做法都是将原始Url存储到数据库,由数据库返回一个对应ID。 以下要实现的是不用数据库支持就对原始URL...
本文实例讲述了python实现文件路径和url相互转换的方法。分享给大家供大家参考。具体实现方法如下: import urllib pathname = 'path/to/file/or/folder/' url = urllib.pathname2url(pathname) pathname = urllib....
基于腾讯云AI录音文件识别让无字幕视频自动生成字幕python源码+项目使用文档.zip 【资源介绍】 1.字幕视频自动生成字幕 该项目通过使用腾讯云AI录音文件识别让无字幕视频自动生成字幕 2.依赖 (1)需下载安装ffmpeg,...
2.使用方式:python 脚本名 url [可选参数s:数字] [可选参数c:True/False] 3.可选参数s的作用:指定从第几个'/'(不计算'://'中的'/')之前的字符串作为前缀,之后的正则化 默认为1 如:...
版本:python3.7 功能,开发一个用户访问的页面,支持图片上传,并将其保存在服务器。 项目结构: app.py文件内容如下: from flask import Flask, Response, request, render_template from werkzeug.utils ...
本文实例讲述了Python Django框架url反向解析实现动态生成对应的url链接。分享给大家供大家参考,具体如下: url反向解析:根据url路由规则,动态生成对应的url链接 (防止硬编码)。 url反向解析应用在两个地方:...
用户可以通过这款工具简单地输入长URL,并选择所需的短网址服务商,即可快速生成短URL。同时,工具还提供了一些额外功能,如复制短URL到剪贴板、保存短URL到文件等。用户可以方便地管理和分享生成的短链接。此外,...
shortuuid:一个生成器库,用以生成简洁的,明白的,URL 安全的 UUID
焦油 一个简单的URL缩短API包装器Python库。 正在安装 pip install pyshorteners 文献资料
主要介绍了python3实现短网址和数字相互转换的方法,涉及Python操作字符串的相关技巧,非常具有实用价值,需要的朋友可以参考下
Fakeimg.pl 是一个使用 URL 生成图像的小工具。选择大小、颜色,甚至文本 如何使用 您只需将您的图片尺寸放在我们的 URL 之后。只有第一个参数是强制性的。还有一些选项,您可以传递文本或更改某些颜色。颜色必须是...
根据提供的网址,python去到该网站分析,并返回URL 有了URL之后,我们就可以生成对应的sitemap文件了,因为每次网站更新都要重新生成site map,然后又要手动上传到FTP服务器上,我就觉得非常麻烦 于是,我就想到...
要批量生成二维码,可以使用Python脚本来实现。以下是对这个过程的描述: 准备数据:首先,准备需要生成二维码的数据。这可以是一组URL、文本、手机号码或其他任何希望在二维码中编码的信息。 导入库:导入Python...
python库,解压后可用。 资源全名:scopus.wp-0.2.2.10-py2.py3-none-any.whl
├─(63) 08 python s3 day49 django的url控制系统.avi ├─(64) 09 python s3 day49 django的urlConf补充.avi ├─(65) day49课上所有.zip (14)\\python全栈day41-50\\python全栈s3 day50;目录中文件数:9个 ├─...
这是一个使用Python生成文件、目录树的程序,其中遇到一个问题是:如何确定某个目录下的某一文件是最后一个遍历的文件。因为最后一个遍历的文件前应添加”└─”,非最后一个文件前添加”├─”。看了Python的API...