IdGeneratorUtil.java 835 Bytes
package com.infoloop.tianting.utils;

import java.security.SecureRandom;
import java.time.LocalDateTime;

public class IdGeneratorUtil {
    private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    private static final SecureRandom RANDOM = new SecureRandom();

    /**
     * 生成ID
     * @param prefix 前缀
     * @param randomCharLength 随机字符长度
     */
    public static String generateId(String prefix, int randomCharLength) {
        final var timestamp = LocalDateTime.now().format(DateUtil.YMDHMSSSS);
        final var sb = new StringBuilder();
        sb.append(prefix);
        sb.append(timestamp);
        for (int i = 0; i < randomCharLength; i++) {
            sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
        }
        return sb.toString();
    }

}