当前位置: 首页 > news >正文

网站转移服务器需要重新备案吗深圳地铁

网站转移服务器需要重新备案吗,深圳地铁,建设网站翻译,专业做写生的网站本文实例讲述了Python实现短网址ShortUrl的Hash运算方法。分享给大家供大家参考。具体如下#xff1a;shorturl实现常见的做法都是将原始Url存储到数据库#xff0c;由数据库返回一个对应ID。以下要实现的是不用数据库支持就对原始URL进行shorturl hash。说到这里我们很容易想…本文实例讲述了Python实现短网址ShortUrl的Hash运算方法。分享给大家供大家参考。具体如下shorturl实现常见的做法都是将原始Url存储到数据库由数据库返回一个对应ID。以下要实现的是不用数据库支持就对原始URL进行shorturl hash。说到这里我们很容易想到MD5固定长度冲突概率小但是32个字符太长我们以MD5为基础将其字符缩短同时要保证一定数量范围内hash不会冲突。我们分成两个步骤来实现。第一步算法① 将长网址用md5算法生成32位签名串分为4段,每段8个字符② 对这4段循环处理取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作超过30位的忽略处理③ 将每段得到的这30位又分成6段每5位的数字作为字母表的索引取得特定字符依次进行获得6位字符串④ 这样一个md5字符串可以获得4个6位串取里面的任意一个就可作为这个长url的短url地址。(出现重复的几率大约是n/(32^6) 也就是n/1,073,741,824其中n是数据库中记录的条数)我们就得到了4个6位串可是选哪个作为最终的hash结果呢随机选肯定是不行的同样的url两次hash就会得出不同的结果。接下来根据原始url的特征进行选择并且将hash冲突的可能性控制在同一个domain内第二步算法①从原始url中提取域名提取数字(最多后6位)②将所得的数字与4取模根据所得的余数决定从第一步算法中得到的4个shorturl中选取哪一个③从域名中提取特征串一级域名中的第一个字符和后面二个辅音(如果辅音不足2个取任意前两个)④域名特征串和选定的shorturl拼接成9位字符为最终的shorturl(后两个步骤是将冲突控制在一个domain内)ShortUrl.py#encoding:utf-8__author__ James Lauimport hashlibimport redef __original_shorturl(url):算法① 将长网址用md5算法生成32位签名串分为4段,每段8个字符② 对这4段循环处理取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作超过30位的忽略处理③ 将每段得到的这30位又分成6段每5位的数字作为字母表的索引取得特定字符依次进行获得6位字符串④ 这样一个md5字符串可以获得4个6位串取里面的任意一个就可作为这个长url的短url地址。(出现重复的几率大约是n/(32^6) 也就是n/1,073,741,824其中n是数据库中记录的条数)base32 [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]m hashlib.md5()m.update(url)hexStr m.hexdigest()hexStrLen len(hexStr)subHexLen hexStrLen / 8output []for i in range(0,subHexLen):subHex 0xhexStr[i*8:(i1)*8]res 0x3FFFFFFF int(subHex,16)out for j in range(6):val 0x0000001F resout (base32[val])res res 5output.append(out)return outputdef shorturl(url):算法①从原始url中提取域名提取数字(最多后6位)②将所得的数字与4取模根据所得的余数决定从第一步算法中得到的4个shorturl中选取哪一个③从域名中提取特征串一级域名中的第一个字符和后面二个辅音(如果辅音不足2个取任意前两个)④域名特征串和选定的shorturl拼接成9位字符为最终的shorturl(后两个步骤是将冲突控制在一个domain内)match_full_domain_regex re.compile(u^https?:\/\/(([a-zA-Z0-9_\-\.][a-zA-Z0-9_\-]\.[a-zA-Z])|([a-zA-Z0-9_\-]\.[a-zA-Z])).*$)match_full_domain match_full_domain_regex.match(url)if match_full_domain is not None:full_domain match_full_domain.group(1)else:return Nonenot_numeric_regex re.compile(u[^\d])numeric_string not_numeric_regex.sub(r,url)if numeric_string is None or numeric_string:numeric_string 0else:numeric_string numeric_string[-6:]domainArr full_domain.split(.)domain domainArr[1] if len(domainArr)3 else domainArr[0]vowels aeiou0-9if len(domain)3:prefix domainelse:prefix re.compile(u[%s]%vowels).sub(r,domain[1:])prefix %s%s%(domain[0],prefix[:2]) if len(prefix)2 else domain[0:3]t_shorturl __original_shorturl(url)t_choose int(numeric_string)%4result %s%s%(prefix,t_shorturl[t_choose])return result希望本文所述对大家的Python程序设计有所帮助。本条技术文章来源于互联网如果无意侵犯您的权益请点击此处反馈版权投诉本文系统来源php中文网
http://www.yutouwan.com/news/457078/

相关文章:

  • 如何做网站源码备份产品市场推广计划书
  • 廊坊网站建设设计装修网站运营
  • 交互式网站设计企业网站管理系统项目文档
  • 福田的网站建设公司哪家好青海企业网站制作
  • 电子商务网站免费模板什么设计师最吃香
  • 网站制作企大学生求职简历模板
  • 免域名x网站凡科网页登录
  • ui设计网站模板网站pv uv统计
  • 站长字体信息系统开发方法
  • 南开区网站建设公司网页设计模板免费下载田田田田田田田田田田
  • 网站开发验收申请报告枣强网站建设
  • 网站建设放电影怎么做世界新闻
  • 免费域名的网站有哪些做网站要备案吗
  • 中国企业网站有什么建设网站的书籍
  • 一级a做片性视频.网站在线观看wordpress商品采集
  • 杭州互联网网站定制公司东营科技职业学院招生信息网官网
  • 云南网站设计珠海市企业网站制作品牌
  • 四川住房和城乡建设厅网站三类人员企业形象设计手册
  • 网站模板建设二级目录wordpress互通
  • 网站建设的职位渲模网
  • 做系统软件的网站可以做单的猎头网站
  • 有网站前端如何做后台建设网站需要钱吗
  • 我要自学网官方网站wordpress 插件升级失败
  • 网站做软件做冷库的网站
  • 《语文建设》网站辽宁大连直客部七部是什么件
  • 网站开发招聘需要h5制作
  • 江苏智能网站建设流程网站内容描述
  • 策划方案免费网站网站美工和网页设计的区别
  • 大连网站设计 仟亿科技网站建设 加强宣传
  • 现在哪个网站可以做外贸wordpress在线升级