微博短网址生成算法原理

  短网址(Short URL),顾名思义就是在形式上比较短的网址。通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流。目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接。

  例如:http://980.so/3u0JzX 表示http://www.ganmall.com.cn/h/detail/dp_928.html?chl=dwz9801

  短网址服务,可能很多朋友都已经不再陌生,现在大部分微博、手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场。估计很多朋友现在也正在使用。

  看过新浪的短连接服务,发现后面主要有6个字符串组成,于是第一个想到的就是原来公司写的一个游戏激活码规则,也就是下面的算法2,

  26个大写字母 26小写字母,10个数字,随机生成6个然后插入数据库对应一个id,短连接跳转的时候,根据字符串查询到对应id,即可实现相应的跳转!不过2的62次方,不知道有没有重复的,小概率可以,但是对应不是很大的网站应该足够了

  自从twitter推出短网址(shorturl),继之国内各大微博跟风,google公开goo.gl使用API,短网址之风愈演愈烈.不得不说这是一个新兴又一大热门web2.0服务.现整理一下,包括完整短网址网站,短网址生成原理,算法举例,以及优劣比较,同时还介绍几个phper个人实现的.

  算法原理

  算法一

  1)将长网址md5生成32位签名串,分为4段, 每段8个字节;

  2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(30位1)与操作, 即超过30位的忽略处理;

  3)这30位分成6段, 每5位的数字作为字母表的索引取得特定字符, 依次进行获得6位字符串;

  4)总的md5串可以获得4个6位串; 取里面的任意一个就可作为这个长url的短url地址;

  这种算法,虽然会生成4个,但是仍然存在重复几率,下面的算法一和三,就是这种的实现.

  算法二

  a-zA-Z0-9 这64位取6位组合,可产生500多亿个组合数量.把数字和字符组合做一定的映射,就可以产生唯一的字符串,如第62个组合就是aaaaa9,第63个组合就是aaaaba,再利用洗牌算法,把原字符串打乱后保存,那么对应位置的组合字符串就会是无序的组合。

  把长网址存入数据库,取返回的id,找出对应的字符串,例如返回ID为1,那么对应上面的字符串组合就是bbb,同理 ID为2时,字符串组合为bba,依次类推,直至到达64种组合后才会出现重复的可能,所以如果用上面的62个字符,任意取6个字符组合成字符串的话,你的数据存量达到500多亿后才会出现重复的可能。

  具体参看这里彻底完善新浪微博接口和超短URL算法,算法四可以算作是此算法的一种实现,此算法一般不会重复,但是如果是统计的话,就有很大问题,特别是对域名相关的统计,就抓瞎了.

原文来自:短网址生成

时间: 2024-10-12 13:34:47

微博短网址生成算法原理的相关文章

微博URL短网址生成算法原理及(java版、php版实现实例)

短网址(Short URL),顾名思义就是在形式上比较短的网址.通常用的是asp或者php转向,在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 例如:http://t.cn/SzjPjA 短网址服务,可能很多朋友都已经不再陌生,现在大部分微博.手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场.估计很多朋友现在也正在使用. 看过新浪的短连接服务,发现后面主要有6个字符串组成,于是第一个

php短网址生成算法

<?php //短网址生成算法 class ShortUrl { //字符表 public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; public static function encode($url) { $key = 'abc'; //加盐 $urlhash = md5($key . $url); $len = strlen($urlhash); /

用PHP实现URL转换短网址的算法示例

短网址就是把一个长的地址转换在超级短的网址,然后访问短网址即可跳转到长网址了,下面来看用PHP实现URL转换短网址的算法与例子. 短网址(Short URL) ,顾名思义就是在形式上比较短的网址.在Web 2.0的今天,不得不说,这是一个潮流.目前已经有许多类似服务,借助短网址您可以用简短的网址替代原来冗长的网址,让使用者可以更容易的分享链接. 算法原理 1)将长网址md5生成32位签名串,分为4段, 每段8个字节;2)对这四段循环处理, 取8个字节, 将他看成16进制串与0x3fffffff(

2020最新新浪短网址生成API接口与在线网址缩短工具分享与介绍

新浪短链接已经广泛应用于各大平台营销之中.如:微信,短信,微博已经各论坛广告软文之中.因为其超短的t.cn的样式,更容易让人接收和保证的文案的美观性.但是自新浪停止了对外开放的api key之后,市面上还有哪些可以继续生成新浪短链接的api接口呢?别担心,今天给大家分享一款我自己一直在使用的新浪短链接在线批量网址缩短工具和api接口. 一,在线批量生成新浪短网址工具:     1,工具地址:http://qingmeidwz.cn 使用步骤:         1,进入新浪短网址批量生成工具网站(

最新官方新浪短网址生成API接口与在线短网址缩短工具分享

新浪短链接已经广泛应用于各大平台营销之中.如:微信,短信,微博已经各论坛广告软文之中.因为其超短的t.cn的样式,更容易让人接收和保证的文案的美观性.但是自新浪停止了对外开放的api key之后,市面上还有哪些可以继续生成新浪短链接的api接口呢?别担心,今天给大家分享一款我自己一直在使用的新浪短链接在线批量网址缩短工具和api接口. 一,在线批量生成新浪短网址工具: 1,工具地址:http://qingmeidwz.cn 使用步骤: 1,进入新浪短网址批量生成工具网站 http://qingm

超赞!最新短网址生成接口(新浪、腾讯官方api)

简要描述 短网址,顾名思义就是一种较短域名加动态参数组成的短地址,类似于t.cn/xxxx,url.cn/xxx.是由各大平台诸如新浪.腾讯.百度发布的短网址接口将长网址转换而来的. 应用场景 短网址的应用场景很广,譬如短信营销.邮件推广.微信营销.QQ营销.自媒体推广.渠道推广等,都会用到短网址.究其原因是在于短网址可以降低推广成本.用户记忆成本,提高用户点击率:在特定的场景下推广还能规避关键词,防止域名被拦截,隐藏真实地址等. 短网址生成接口 1.新浪短网址接口(最新官方api) http:

短网址生成API接口【最新版】分析一下现在市面上的短网址情景

目前市面上主流短链接有百度.腾讯.淘宝和新浪,下面各自分析下他们的优缺点 百度短网址 百度短网址是收费项目,相对来说功能多一点,官方是这样介绍的:百度短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和第三方平台上分享链接,投放广告等等. 百度具有超简单的方式使用短网址服务:访问百度短网址首页https://dwz.cn,生成对应的短网址.你还可以调用百度短网址服务API服务,查看数据统计与分析! 之前的百度短网址是需要大站才能申请,后来变成了都可以但需要2个小时的审核时间,现在是即时的 缺

新浪短网址生成,2款最新t.cn短链接api接口分享

分享2款比较稳定不错的新浪短网址生成器和两个最新的t.cn短链接api接口,可以将冗长的网址缩短转换成永久的短链接(10个字符以内).t.cn短域名的应用场景很广,譬如短信营销.微博吸粉.淘宝商品分享.京东商品分享.微信营销.QQ营销.自媒体推广.渠道推广等,都会用到短域名. 1- 蓝鸟短链接 新浪短链接在线生成器:http://lnurl.cn 新浪短网址api接口url:http://lnurl.cn/api/tcn 相关分享: 腾讯短链接在线生成器:http://lnurl.cn/urlc

t.cn短网址生成接口,2020最新最稳定的新浪短网址生成器推荐。

分享两款最新的稳定,高效新浪t.cn短链接api接口,可以将冗长的网址缩短转换成永久的短网址(10个字符以内).t.cn短域名的应用场景很广,譬如短信营销.微博吸粉.淘宝商品分享.京东商品分享.微信营销.QQ营销.自媒体推广.渠道推广等,都会用到短域名. 1- 青梅短网址 新浪短网址在线生成:http://qingmeidwz.cn 新浪短网址api接口url:http://qingmeidwz.cn/api 青梅短网址是目前国内比较稳定的短连接服务平台之一,该网站免费提供新浪短网址转化工具,以