短地址算法原理
现今短地址网站通过ASP或PHP转向实现网址缩短。主要有两种算法原理:
算法一包括四个步骤:
1. 长网址通过MD5生成32位签名串,分为四段,每段8个字节。
2. 对四段签名串循环处理,取8个字节视作16进制串,与0x3fffffff(30位1)进行与操作,忽略超过30位的数字。
3. 这30位被分为六段,每5位作为字母表索引获取特定字符,依次组合成6位字符串。
4. 总的MD5串产生四个6位串,任选一个作为长url的短url地址。
算法二利用a-zA-Z0-9这64位取6位组合,生成超过500亿个组合数量。通过数字与字符组合映射产生唯一字符串。运用洗牌算法打乱原字符串后保存,对应位置的组合字符串变为无序。将长网址存入数据库,获取ID,查找对应字符串。例如ID为1,对应字符串为bbb;ID为2,对应字符串为bba;依此类推,直至达到64种组合,才会出现重复。如果使用62个字符任意组合6个字符形成字符串,数据量达到500多亿后才会出现重复。
多重随机标签