package envoy.server.util; import java.security.SecureRandom; /** * Provides a secure token generation algorithm. * * @author Kai S. K. Engelbart * @since Envoy Server v0.2-beta */ public final class AuthTokenGenerator { private static final int TOKEN_LENGTH = 128; private static final char[] CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray(); private static final char[] BUFF = new char[TOKEN_LENGTH]; private static final SecureRandom RANDOM = new SecureRandom(); private AuthTokenGenerator() {} /** * Generates a random authentication token. * * @return a random authentication token * @since Envoy Server v0.2-beta */ public static String nextToken() { for (int i = 0; i < BUFF.length; ++i) BUFF[i] = CHARACTERS[RANDOM.nextInt(CHARACTERS.length)]; return new String(BUFF); } }