千家信息网

java中怎么将长链接转换成短链接

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这期内容当中小编将会给大家带来有关java中怎么将长链接转换成短链接,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、实现原理1. 将长网址用md5算法生成32位签
千家信息网最后更新 2026年10月31日java中怎么将长链接转换成短链接

这期内容当中小编将会给大家带来有关java中怎么将长链接转换成短链接,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、实现原理

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) {          // 可以自定义生成 MD5 加密字符传前的混合 KEY          String key = "";          // 要使用生成 URL 的字符          String[] chars = new String[] { "a", "b", "c", "d", "e", "f", "g", "h",                  "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",                  "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5",                  "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H",                  "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",                  "U", "V", "W", "X", "Y", "Z" };            // 对传入网址进行 MD5 加密          String sMD5EncryptResult = DigestUtils.md5Hex(key + url);          String hex = sMD5EncryptResult;          String[] resUrl = new String[4];          for (int i = 0; i < 4; i++) {              // 把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算              String sTempSubString = hex.substring(i * 8, i * 8 + 8);              // 这里需要使用 long 型来转换,因为 Inteper .parseInt() 只能处理 31 位 , 首位为符号位 , 如果不用              // long ,则会越界              long lHexLong = 0x3FFFFFFF & Long.parseLong(sTempSubString, 16);              String outChars = "";              for (int j = 0; j < 6; j++) {                  // 把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引                  long index = 0x0000003D & lHexLong;                  // 把取得的字符相加                  outChars += chars[(int) index];                  // 每次循环按位右移 5 位                  lHexLong = lHexLong >> 5;              }                // 把字符串存入对应索引的输出数组              resUrl[i] = outChars;          }          return resUrl;      }    }

三、跳转原理

当我们生成短链接之后,只需要在表中(数据库或者NoSql )存储原始链接与短链接的映射关系即可。

当我们访问短链接时,只需要从映射关系中找到原始链接,即可跳转到原始链接。

转换原理: 将原url通过一系列方式,转换成6位短码(只要能不重复,随便怎么方式都行);将长短链接存入数据库,形成一条对应关系;访问短链接的时候,在数据库找到对应的长链接,并通过重定向实现原url的访问;(如果你的转换方式能过还原,也可以不要数据库,但必须保证转换后的短码不能重复)数据库大概是这个样子。

@RequestMapping("/{shortUrl}")     public ModelAndView jumpLongLink(HttpServletRequest request, ModelAndView mav, @PathVariable("shortUrl")String shortUrl) {    String longUrl = "";    String longurl = shorturlService.restoreUrl(shortUrl);    if (longUrl!=null) {        longUrl = longurl;    }    mav.setViewName("redirect:">

第一行注解我就不讲了,{shortUrl}这个就是动态变化的生成的短链接,shorturlService.restoreUrl()方法是通过传入得短链接到库里查询对应的长链接即真实地址。然后转发重定向到真实的地址即可。完整的短链接本地访问:127.0.0.1/端口号/短链接,如:127.0.0.1/8888/2MnQFj,线上的访问地址:域名/短链接,如:www.baidu.com/2MnQFj,如果项目有拦截器,因为短链接是动态变化的,需要在前面加一层路径,像这样:127.0.0.1/8888/go/2MnQFj然后就完事了。

上述就是小编为大家分享的java中怎么将长链接转换成短链接了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

链接 字符 数据 数据库 生成 地址 原始 原理 字符串 数组 方式 加密 处理 运算 内容 动态 就是 索引 网址 进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融监管科技数据 科技创新与互联网经济 疫情对互联网科技公司影响 互联网 科技创新 重庆科技学院互联网 滨湖区互联网智能科技产品供应 互联网科技公司的市场部门 玖二柒互联网科技公司待遇 移动互联网科技股 中国航天科技大学国际工业互联网 互联网新科技动漫ppt素材 互联网在线教育科技创业 世界互联网领先科技成果获奖 无锡工业互联网科技有限公司 广州富喜互联网络科技 济南小医互联网科技有限公司招聘 深圳互联网科技园地址 数字科技和互联网金融哪个好 北京瑞云互联网科技有限公司 中国主要互联网科技公司 互联网与科技 互联网科技公司简介 互联网科技公司电话 北京三清互联网科技 互联网对科技的发展 移动互联网年度科技创新 企晟互联网信息科技有限公司 明优互联网科技有限公司 互联网时代的科技公司 互联网科技企业文化
0