短链接生成的算法原理

2016年10月10日来源:980短网址原创分类:短链接阅读(135评论(0

  短链接的流行变得应用非常广泛,我们经常看到类似这样的链接:http://980.so/er6那么实现原理是什么呢?

  短链接简单来说就是把一个很长的URL地址转化为相对简短的地址而且仍然可以正常使用,如把地址http://ganmall.com.cn/h/cat_1005_1033_3_0.html转化为http://980.so/siwa ,当然我这里本来就比较短,不过对于再长的地址也是转化成为相同长度的短链接。

  短链接的例子已经介绍了,现在应用非常广泛,下面介绍算法原理。

短链接生成的算法原理

  一、短链接原理

  其实很简单 ,系统把一个长的地址 如

  http://ganmall.com.cn/h/detail/366.html

  首先用一个算法转换成 短地址

  http://980.so/k4e8

  然后把 k4e8-->http://ganmall.com.cn/h/detail/366.html的关系保存到数据库中

  当用户访问 http://980.so/k4e8网址时,系统到数据库找到对应的URL地址,实现跳转。

  二、短链接算法

  MD5的生成的 ,其实这个算法主要是把长字符串变小 ,这个算法是不可逆的,所以别想着去直接反转短地址

  利用MD5的算法,其具体过程为:

  1. 将原始长链接进行MD5加密,为了避免防止算法泄漏,可以在原链接上添加自定义的字符串作为密钥。

  2. 把128位的MD分成四组,每组32位,对应一个候选短链接。

  3. 对于每个32位的数,将它与0x3FFFFFFF进行位与运算,取其低30位的数据。把得到的值与0x0000003D进行位与运算,再把得到的结果作为下标在字符表中选取字符,再把原数字右移5位进行相同操作,重复进行6次得到6个字符,即组成一个候选短链接地址。

  4. 在4个候选短链接中随机选择一个作为最终的短链接,把长短链接映射关系存入数据库中。

  三、短链接生成

  服务器收到一个短链接请求时,需要把从http地址中解析出短链接,然后将得到的短链接在数据库中进行查询,找到其对应的长连接,进而重定向到该长长链接对应的地址。另外,服务器在此时可以随意进行一些需要的统计工作。

  算法本质上就是一个长短链接的映射过程,那么一个简单的想法是用递增的序号来表示短链接,每次进来一个长链接时,把它映射成当前的序号,同时把序号递增以供下一个链接使用。因为链接地址同时使用的是a-z、A-Z和0-9这62个字符,把10进制的序号值转化为这个62进制的表示即可得到对应的短链接。

  这个直接的想法非常简单粗暴,另外一个直观的想法是使用随机的方法生成长短链接的映射关系。每次进来一个长链接时就随机一个短链接来进行映射,如果通过数据库查询发现此短链接已经使用过,则重新进行随机直到产生一个未曾使用过的短链接为止。

  由上面可知,纯粹在本地生成的短链接是没有作用的。因为短链接需要解析,需要跳转到短链接解析服务器,然后在服务器上查找对应的长链接,最后才可以进行对应的跳转。如果纯粹在本地生产的短链接,服务器上没有响应的数据,则是不能进行正常访问的。

上一篇:短网址有个强大的功能叫做自定义短网址

下一篇:适合大学生,全职妈妈做的980短链接赚钱

精彩评论
评论
热门文章
980安全专家教您认识短链接安全
防护恶意网址用短链接欺骗的对策
对付恶意短链接我有妙招
蓝瘦、香菇,每天和短链接技术打交道
短信利用短网址撬动移动营销市场
文章归档
2016年12月
2016年11月
2016年10月
2016年09月
2016年07月
2016年06月
热门标签
短网址
短链接
网址缩短
短网址服务
短网址应用
短网址营销
短网址生成
缩短网址
短链接生成
短网址还原
短网址检测法
自定义短网址