打赏

随机四位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;
    }

}
复制代码

 

posted @   YY2000  阅读(895)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示