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

简介: 【有关长短链接映射问题】
工作中遇到的有关长链接生成的二维码过于密集,导致扫码识别效率低下的问题
解决思路:将长链接映射为短链接,使用短链接生成二维码,根据短链接查询长链接即可。
//长链接生成短链接方法:
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 关系型数据库
短链接生成
短连接生成推荐
4256 0
|
10月前
【有关长短链接映射问题】
【有关长短链接映射问题】
68 0
|
存储 监控 算法
php开发实战分析(9):使用实现短地址的分享的解决方案(第三方短链接服务、数据库自增ID转换、自定义短地址生成算法、自增数字短码)
php开发实战分析(9):使用实现短地址的分享的解决方案(第三方短链接服务、数据库自增ID转换、自定义短地址生成算法、自增数字短码)
260 0
浏览器提示“您的时钟快了”,计算机的日期和时间不正确,因此无法与xxx.xxx.com建立私密连接
大部分解决思路都是修改电脑本地时区;终于看到了下面的网友解释,才茅塞顿开,恍然大悟。
|
XML 数据格式
为什么访问同一个网址却返回不同的内容
为什么访问同一个网址却返回不同的内容
|
UED
怎么集成短链接生成,短链接的作用
短链接也称为短网址,是指长度较短的URL链接
516 0
|
网络协议
IP地址和账号密码之间的关系
IP地址和账号密码之间的关系
321 0
IP地址和账号密码之间的关系
|
网络协议 网络架构
外网映射学习
转载https://blog.csdn.net/jiandanokok/article/details/51387822
152 0
|
前端开发
细讲前端设置cookie, 储存用户登录信息
我们都知道如果想做一个用户登录并使浏览器保存其登录信息,使得用户下次再访问网页的时候无需再次进行登录操作,我们需要用到 cookies , 今天我们就来讲讲前端如何给客户端设置 cookie cookie 只有在服务环境下,才能设置,所以如果要尝试练习设置cookie的话,可以使用webstorm编辑器, 它内部自带服务环境,如果用别的编辑器的小伙伴的话,先自己搭一个简单的服务环境哦~
1093 0
细讲前端设置cookie, 储存用户登录信息
|
XML SQL JSON
java实现调用百度接口将大量数据库中保存的地址转换为经纬度(下)
java实现调用百度接口将大量数据库中保存的地址转换为经纬度
312 0
java实现调用百度接口将大量数据库中保存的地址转换为经纬度(下)