随机四位uuid 废弃 请看生成唯一订单号(锁)

package com.weixiu.zxt.utils;

import java.security.SecureRandom;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;
/**
 * @Author: 张学涛
 * @Date: 2019-08-15 08:54
 * @Version 1.0
 * @描述: 随机四位uuid
 */

public class UUIDGenrateUtil {

    public static String[] chars = new String[] { "0", "1", "2", "3", "4", "5", "6", "7",
            "8", "9" };


    public synchronized static String generateShortUuid() {
        StringBuffer shortBuffer = new StringBuffer();
        String uuid = getUniqueOrder();
        for (int i = 0; i < 5; i++) {
            String str = uuid.substring(i * 5, i * 5 + 5);
            int x = Integer.parseInt(str, 16);
            shortBuffer.append(chars[x % 0x3E]);
        }

        return shortBuffer.toString();

    }

    /**
     * 获得唯一订单号
     */
    public static String getUniqueOrder() {
        int hashCodeV = Math.abs( UUID.randomUUID().toString().hashCode());
        long timeInMillis = Calendar.getInstance().getTimeInMillis();
        String format = String.format("%032d", hashCodeV);
        String uuid="0"+timeInMillis+format;
        return uuid;
    }

    private static final SecureRandom secureRandom = new SecureRandom();//获取随机数


    private static final String SYMBOLS = "0123456789"; // 数字

/**
 * 获取N位随机数
 * @return
 */
        public static String getRandom(Integer n){
        String randomNum = "";
        char[] nonceChars = new char[n];
        for (int index = 0; index < nonceChars.length; ++index) {
            nonceChars[index] = SYMBOLS.charAt(secureRandom.nextInt(SYMBOLS.length()));
        }
        randomNum =  new String(nonceChars);

        return "0"+Calendar.getInstance().getTimeInMillis()+randomNum;
    }

}

猜你喜欢

转载自www.cnblogs.com/zhangxuetao/p/12972482.html