专业的短链接生成工具
链接域名
短网址有效期
长链接 短链接如何转换?
更新时间:2025-5-6 04:19:09 作者:爱短链
长链接 短链接在线转换工具:https://www.aifabu.com
短链接,一般来说,就是通过程序计算等方法将长网址转换成短网址字符串。
人们经常会收到一些莫名其妙的营销短信,其中包含一个非常短的链接可以跳转。新浪微博因为字数限制,经常会看到一些不像网址的网址。短链的兴起应该是微博字数的限制激发了大家的创造力。
如果我们创建一个短链系统,我们应该怎么做把长链接 短链接进行转换?
将长链接改为短链接;
访问短链接的用户会跳转到正确的长链接。
找到对应的长网址,跳转到对应的页面。
短链生成方法
短代码一般由62个字母或数字组成[a - z, A - Z, 0 - 9]。短码的长度也可以定制,但一般不超过8位。最常用的是6位,6位短码已经可以有568亿个组合:(26+26+10)^6 = 56800235584,已经满足了绝大多数使用场景。
目前流行的短码生成方法有:自增id、摘要算法、普通随机数。分布式ID生成器的解决方案总结可以参考这篇文章。
自增id
此方法是一种无碰撞方法。原理是每次加一个短码,在上次加的短码id上加1,然后将十进制的id值转换成base 62的A字符串。
一般使用数据表中的自增id来完成:每次先查询数据表中自增id的最大值,然后需要插入的长URL对应max+1 的自动递增 id 值。转换成十六进制得到短码。
但是,短代码 id 从一位的长度开始递增。短码的长度不是固定的,但是可以通过从指定的数字开始增加id来处理,保证所有的短码长度相同。同时生成的短码是有序的,可能存在安全问题。生成的短码id可以和长网址等其他关键字进行md5操作,生成最终的短码。
总结算法
摘要算法也称为哈希算法,即任意长度的输入数据和固定长度的输出数据。相同的输入数据总是得到相同的输出,不同的输入数据试图得到不同的输出。
算法过程:
长网址md5会生成一个32位的签名串,分为4段,每段8字节;
对于这四个循环处理,取8个字节,把它当作16进制字符串和0x3fffffff(30位)1)并操作,即忽略超过30位的处理;
30位分为6段,每个5位数字作为字母表的索引,得到一个特定的字符,依次得到6位字符串;
总共md5字符串可以得到4个6位字符串;其中任何一个都可以作为这个长url的短url地址;
虽然这个算法会产生4个,但还是有重复的机会。
虽然概率小,但是这种方法还是有冲突的可能,解决冲突会比较麻烦。但是这种方法生成的短码数量是固定的,连续生成的短码没有先后顺序。
普通随机数
这种方法是从62个字符串中随机选择一个6位短码的组合,然后到数据库中检查该短码是否已经存在。如果已经存在,则继续循环该方法再次获取短码,否则直接返回。
这个方法是最简单的实现,但是由于Math.round()方法生成的随机数是伪随机数,碰撞的可能性不小。在数据量大的情况下,可能会重复多次生成不冲突的短码。
长链接 短链接算法分析
我们将一一分析上述算法的优缺点。
如果你使用自增id算法,就会出现不法分子可以穷举你的短链地址的问题。原理是将十进制数转换为62,这样别人就可以用同样的方法遍历你的短链,得到对应的原始链接。
例如:http://tinyurl.com/a3300和http://bit.ly/a3300,这两个短链网站,分别从a3300-a3399,可以尝试多次返回正确的url。因此,这种方式生成的短链实际上对用户来说并不安全。
摘要算法实际上是哈希算法。说到hash,大家可能觉得很低,但实际上hash可能是最优解。例如:http://www.sina.lt/ 和 http://mrw.so/ 连续生成的url找不到规律,很有可能是用hash算法实现的。
普通的随机数算法,这个算法生成的东西和摘要算法一样,但是碰撞的概率会更高。因为digest算法毕竟是对url进行hash,随机数算法就是简单的随机生成,一旦数字上来,难免会导致重复。
结合以上,我选择最低的算法:摘要算法。
实施
存储方案
数据库存储方案
短网址的基本数据以域名和后缀的形式分开存储。另外,域名需要区分HTTP和HTTPS,哈希方案对整个链接进行哈希处理,而不是对域名以外的链接进行哈希处理。域名单独保存,可用于分析当前域名下的链接使用情况。
添加当前链接有效性字段。一般来说,短链需求可能是相关活动或热点事件。这条短链会在一段时间内非常活跃,一段时间后景气度会继续下降。所以没有必要永久保留这种链接,增加每次查询的负担。
对于过期数据的处理,可以在添加新的短链时判断当前短链的过期日期,在HBase中为每天到达过期日期的数据单独建表,判断过期日期添加新的时。对应的HBase表就够了,每天只处理当天HBase表中的无效数据。
以上就是关于《长链接 短链接如何转换?》的全部内容了,感兴趣的话可以点击右侧直接使用哦!》》在线短链接生成器