1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.iamberry.app.api.util;
- import java.security.SecureRandom;
- import java.util.UUID;
- /**
- * @website www.ratfw.com
- * @author 献
- * @tel 18271840547
- * @date 2016年8月30日
- * @explain 生成安全随机的token工具类
- */
- public class TokenUtil {
- /**
- * 创建一个安全的随机数组byte[]
- *
- * @return
- */
- private static byte[] createRandomByte() {
- try {
- SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
- byte[] bytes = new byte[1024 / 8];
- random.nextBytes(bytes);
- int count = 10;
- byte[] seed = random.generateSeed(count);
- random = SecureRandom.getInstance("SHA1PRNG");
- random.setSeed(seed);
- SecureRandom random2 = SecureRandom.getInstance("SHA1PRNG");
- random2.setSeed(seed);
- return seed;
- } catch (Exception e) {
- return UUID.randomUUID().toString().getBytes();
- }
- }
- /**
- * byte[] 转 字符串
- *
- * @param b
- * @return
- */
- private static String byte2hex(byte[] b) {
- String hs = "";
- String stmp = "";
- for (int n = 0; n < b.length; n++) {
- stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
- if (stmp.length() == 1)
- hs = hs + "0" + stmp;
- else
- hs = hs + stmp;
- }
- return hs.toUpperCase();
- }
- /**
- * 获取一个安全的token
- *
- * @return
- */
- public static String getToken() {
- return byte2hex(createRandomByte());
- }
- }
|