package xiaozhi.modules.security.oauth2; import java.security.MessageDigest; import java.util.UUID; import xiaozhi.common.exception.ErrorCode; import xiaozhi.common.exception.RenException; /** * 生成token * Copyright (c) 人人开源 All rights reserved. * Website: https://www.renren.io */ public class TokenGenerator { public static String generateValue() { return generateValue(UUID.randomUUID().toString()); } private static final char[] HEX_CODE = "0123456789abcdef".toCharArray(); public static String toHexString(byte[] data) { if (data == null) { return null; } StringBuilder r = new StringBuilder(data.length * 2); for (byte b : data) { r.append(HEX_CODE[(b >> 4) & 0xF]); r.append(HEX_CODE[(b & 0xF)]); } return r.toString(); } public static String generateValue(String param) { try { MessageDigest algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(param.getBytes()); byte[] messageDigest = algorithm.digest(); return toHexString(messageDigest); } catch (Exception e) { throw new RenException(ErrorCode.TOKEN_GENERATE_ERROR, e); } } }