java 长链接转短链接_java长链接转短链接代码和如何跳转使用

本文介绍了Java实现长链接转短链接的原理和代码实现,包括使用MD5算法生成签名串,位与运算生成6位短码,以及如何在数据库中存储映射关系以实现跳转。同时,提供了跳转原理的详细解释,包括如何根据短链接查询长链接并进行重定向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实现原理

1.  将长网址用md5算法生成32位签名串,分为4段,,每段8个字符。

2.  对这4段循环处理,取每段的8个字符, 将他看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理。多了也没用因为下面要分成6段  嘿嘿正好取整。注意用Long型变量(长度问题  你懂得)

3.  将每段得到的30位字符(后台以long十进制显示)又分成6段,通过移位运算将每5位分别与字符数组求与运算(0x0000003D),得到其在字符数组中的索引并取出拼串。

4.  这样一个md5字符串可以获得4个6位串,取里面的任意一个就可作为这个长url的短url地址。

二、代码实现

import org.apache.commons.codec.digest.DigestUtils;

public class ShortUrl {

public static void main(String[] args) {

// 长连接

String longUrl = "http://data.13322.com/basket/team/27_0_1.html";

// 转换成的短链接后6位码

String[] shortCodeArray = shortUrl(longUrl);

for (int i = 0; i < shortCodeArray.length; i++) {

System.out.println(shortCodeArray[i]);// 任意一个都可以作为短链接码

}

}

public static String[] shortUrl(String url) {<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值