首页 > 其他 > 详细

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

时间:2020-05-27 14:37:27      阅读:143      评论:0      收藏:0      [点我收藏+]
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;
    }

}

 

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

原文:https://www.cnblogs.com/zhangxuetao/p/12972482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!