在网上看到如下的短网址算法1)将长网址md5生成32位签名串,分为4段,每段8个字节;2)对这四段循环处理,取8个字节,将他看成16进制串与0x3fffffff(30位1)与操作,即超过30位的忽略处理;3)这30位分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行获得6位字符串;4)总的md5串可以获得4个6位串;取里面的任意一个就可作为这个长url的短url地址;实现的版本也很多,但是我不明白为什么要这样实现,为什么要超过30位要忽略,为啥要生成四个串?如果生存四个串的话,直接把md5分成4段然后做base62转换不行么?
FFIVE
相关分类