【有关长短链接映射问题】

简介: 【有关长短链接映射问题】
工作中遇到的有关长链接生成的二维码过于密集,导致扫码识别效率低下的问题
解决思路:将长链接映射为短链接,使用短链接生成二维码,根据短链接查询长链接即可。
//长链接生成短链接方法:
public String gererateShortUrl(String url) {
        // 可以自定义生成 MD5 加密字符传前的混合 KEY
        String key = "caron";
        // 要使用生成 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 = Md5Utils.hash(key + url);
        String hex = sMD5EncryptResult;
        // 把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算
        String sTempSubString = hex.substring(2 * 8, 2 * 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;
        }
        return outChars;
    }
相关文章
|
10月前
|
存储 前端开发 Java
SpringMVC中重定向请求时传输参数原理分析与实践
SpringMVC中重定向请求时传输参数原理分析与实践
175 2
SpringMVC中重定向请求时传输参数原理分析与实践
|
4月前
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
网络编程中的互联网协议 , IP地址 , 域名 , 端口 , 架构 , 网页数据请求 , 响应码
|
5月前
【有关长短链接映射问题】
【有关长短链接映射问题】
48 0
|
存储 前端开发 应用服务中间件
区分WEB服务器与数据服务器
WEB服务器和数据服务器是两个不同的概念噢,它们分别承担着不同的任务和功能。
504 0
区分WEB服务器与数据服务器
|
JSON 前端开发 数据格式
djangVue_前后端配置动态的数据字段标
前后端配置动态的数据字段标签(django_vue)
66 1
|
API 定位技术
百度地图web服务API接口实现IP到简要地址的转化
百度地图web服务API接口实现IP到简要地址的转化
151 0
|
UED
怎么集成短链接生成,短链接的作用
短链接也称为短网址,是指长度较短的URL链接
461 0
|
数据库
转发和重定向的区别以及适用范围
一:请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作。 1.请求转发(forward)的特点: (1)浏览器的地址栏不会发生变化 (2)一次请求,服务器完成转发操作 (3)共享request域中的数据 (4)可以转发到WEB-INF目录下 (5)转发只能访问当前服务器下的资源
161 0
|
安全 Java 开发者
路由访问映射规则|学习笔记
快速学习路由访问映射规则
131 0