以下是一个 Java 生成 16 位 UUID 的工具类:

import java.util.UUID;
import java.util.Base64;

public class UUIDUtils {

    public static String generateShortUuid() {
        UUID uuid = UUID.randomUUID();
        long mostSigBits = uuid.getMostSignificantBits();
        long leastSigBits = uuid.getLeastSignificantBits();
        byte[] uuidBytes = new byte[16];
        for (int i = 0; i < 8; i++) {
            uuidBytes[i] = (byte) (mostSigBits >>> 8 * (7 - i));
            uuidBytes[i + 8] = (byte) (leastSigBits >>> 8 * (7 - i));
        }
        return Base64.getUrlEncoder().withoutPadding().encodeToString(uuidBytes);
    }
}

这个工具类使用 Java 内置的 UUID 类生成一个 UUID,然后将其转换为一个 16 位的字符串。转换的过程是将 UUID 的最高位和最低位的 8 个字节取出来,合并成一个 16 字节的数组,然后使用 Base64 编码将其转换为字符串。由于 Base64 编码后的字符串可能包含 ' + '、'/' 和 '=' 等特殊字符,因此使用 withoutPadding() 方法去掉末尾的 '=' 字符,以便得到一个更短的字符串。

Java 生成 16 位 UUID 工具类 - 简洁高效

原文地址: https://www.cveoy.top/t/topic/gDsW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录