Java 生成 16 位 UUID 工具类 - 简洁高效
以下是一个 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() 方法去掉末尾的 '=' 字符,以便得到一个更短的字符串。
原文地址: https://www.cveoy.top/t/topic/gDsW 著作权归作者所有。请勿转载和采集!