业务场景:
短信平台发送带有跳转链接的短信时,会存在一个问题,有的时候链接会特别长,而且可能会有一些特殊字符,影响点:
- 这样手机的短信会将链接会切开来,直接点击无法跳转.
- 复制粘贴时浏览器可能无法将其直接跳转,会将其默认为搜索条件而不是链接地址来跳转.
正是以上的这些原因(只是一小部分的原因),就衍生了短连接的生成这个需求
短链接的生成方式:
- 加密方式:
最简单的办法就是通过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"