/******************************************************************************* * Copyright (c) 2005, 2017 springside.github.io * * Licensed under the Apache License, Version 2.0 (the "License"); *******************************************************************************/ package org.springside.modules.utils.misc; import java.security.SecureRandom; import java.util.UUID; import org.springside.modules.utils.number.RandomUtil; import org.springside.modules.utils.text.EncodeUtil; import com.google.common.annotations.Beta; /** * 封装各种生成唯一性ID算法的工具类. */ @Beta public class IdGenerator { private static SecureRandom random = new SecureRandom(); /** * 封装JDK自带的UUID, 通过Random数字生成, 中间有-分割. */ public static String uuid() { return UUID.randomUUID().toString(); } /** * 封装JDK自带的UUID, 通过Random数字生成, 中间无-分割. */ public static String uuid2() { return UUID.randomUUID().toString().replaceAll("-", ""); } /** * 使用SecureRandom随机生成Long. */ public static long randomLong() { return RandomUtil.nextLong(); } /** * 基于URLSafeBase64编码的SecureRandom随机生成bytes. */ public static String randomBase64(int length) { byte[] randomBytes = new byte[length]; random.nextBytes(randomBytes); return EncodeUtil.encodeBase64UrlSafe(randomBytes); } }