java-URL短连接的生成(保证生成的唯一性)

业务场景:

短信平台发送带有跳转链接的短信时,会存在一个问题,有的时候链接会特别长,而且可能会有一些特殊字符,影响点:

  • 这样手机的短信会将链接会切开来,直接点击无法跳转.
  • 复制粘贴时浏览器可能无法将其直接跳转,会将其默认为搜索条件而不是链接地址来跳转.

正是以上的这些原因(只是一小部分的原因),就衍生了短连接的生成这个需求

短链接的生成方式:

  • 加密方式:
    最简单的办法就是通过MD5方式来加密,也是目前网上最多的一种实现方式,我也是借鉴了其方法,不过亲测高并发下无法支持其生成的唯一性,可能引起短连接地址不唯一,导致bug.
    解决办法下面再讲.先看看我们的加密方式,代码如下:
import java.security.MessageDigest;
import java.util.Map;
import java.util.Random;

public class URLUtils {
   
    /**
     * 根据MD5加密方式生成短链接
     *@author DingYongJun
     *@date 2020/8/18
     *@return List<Map<String, Object>>
     */
    public static String getShortURL(String URL){
   
        // 可以自定义生成 MD5 加密字符传前的混合 KEY
        String key = "QDGYJ";
        // 要使用生成 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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值