隨機四位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;
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM