defaultrandomstringgenerator.java
来自「CAS在Tomcat中实现单点登录项目,单点登录(Single Sign On 」· Java 代码 · 共 75 行
JAVA
75 行
/* * Copyright 2007 The JA-SIG Collaborative. All rights reserved. See license * distributed with this file and available online at * http://www.ja-sig.org/products/cas/overview/license/ */package org.jasig.cas.util;import java.security.SecureRandom;/** * Implementation of the RandomStringGenerator that allows you to define the * length of the random part. * * @author Scott Battaglia * @version $Revision: 42053 $ $Date: 2007-06-10 09:17:55 -0400 (Sun, 10 Jun 2007) $ * @since 3.0 */public final class DefaultRandomStringGenerator implements RandomStringGenerator { /** The array of printable characters to be used in our random string. */ private static final char[] PRINTABLE_CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345679" .toCharArray(); /** The default maximum length. */ private static final int DEFAULT_MAX_RANDOM_LENGTH = 35; /** An instance of secure random to ensure randomness is secure. */ private SecureRandom randomizer = new SecureRandom(); /** The maximum length the random string can be. */ private final int maximumRandomLength; public DefaultRandomStringGenerator() { this.maximumRandomLength = DEFAULT_MAX_RANDOM_LENGTH; } public DefaultRandomStringGenerator(final int maxRandomLength) { this.maximumRandomLength = maxRandomLength; } public int getMinLength() { return this.maximumRandomLength; } public int getMaxLength() { return this.maximumRandomLength; } public String getNewString() { final byte[] random = getNewStringAsBytes(); return convertBytesToString(random); } public byte[] getNewStringAsBytes() { final byte[] random = new byte[this.maximumRandomLength]; this.randomizer.nextBytes(random); return random; } private String convertBytesToString(final byte[] random) { final char[] output = new char[random.length]; for (int i = 0; i < random.length; i++) { final int index = Math.abs(random[i] % PRINTABLE_CHARACTERS.length); output[i] = PRINTABLE_CHARACTERS[index]; } return new String(output); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?