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

简介: 【有关长短链接映射问题】
工作中遇到的有关长链接生成的二维码过于密集,导致扫码识别效率低下的问题
解决思路:将长链接映射为短链接,使用短链接生成二维码,根据短链接查询长链接即可。
//长链接生成短链接方法:
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;
    }
相关文章
|
算法 Java 关系型数据库
短链接生成
短连接生成推荐
4167 0
|
5月前
|
前端开发 Serverless Docker
函数计算产品使用问题之怎么获取客户端IP
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
8月前
|
域名解析 缓存 网络协议
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
144 3
|
8月前
【有关长短链接映射问题】
【有关长短链接映射问题】
65 0
|
网络协议 API 开发者
百度搜索:蓝易云【Websocket、Socket、HTTP之间的关系。】
总结: HTTP是一种无状态协议,常用于传输静态资源;Socket是一种编程接口,用于实现网络通信;Websocket是在HTTP之上实现的全双工通信协议。它们在通信方式、连接状态和应用场景上存在区别,适用于不同的网络通信需求。
55 0
|
存储 前端开发 应用服务中间件
区分WEB服务器与数据服务器
WEB服务器和数据服务器是两个不同的概念噢,它们分别承担着不同的任务和功能。
544 0
区分WEB服务器与数据服务器
|
JSON 前端开发 数据格式
djangVue_前后端配置动态的数据字段标
前后端配置动态的数据字段标签(django_vue)
73 1
|
XML 数据格式
为什么访问同一个网址却返回不同的内容
为什么访问同一个网址却返回不同的内容
|
UED
怎么集成短链接生成,短链接的作用
短链接也称为短网址,是指长度较短的URL链接
501 0