001    package railo.commons.lang;
002    
003    import java.security.SecureRandom;
004    
005    public class RandomUtil {
006            public static final char[]  CHARS=new char[]{
007                    '0','1','2','3','4','5','6','7','8','9',
008                    'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
009                    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
010            
011            public static final char[]  CHARS_LC=new char[]{
012                    '0','1','2','3','4','5','6','7','8','9',
013                    'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
014            
015    
016            public static String createRandomString(int length){
017                    if(length<1) return "";
018                    SecureRandom sr = new SecureRandom();
019                    StringBuilder sb=new StringBuilder();
020                    for(int i=0;i<length;i++){
021                            int rnd=(int) (sr.nextDouble()*(CHARS.length-1));
022                            sb.append(CHARS[rnd]);
023                    }
024                    return sb.toString();
025            }
026            
027            public static String createRandomStringLC(int length){
028                    if(length<1) return "";
029                    SecureRandom sr = new SecureRandom();
030                    StringBuilder sb=new StringBuilder();
031                    for(int i=0;i<length;i++){
032                            int rnd=(int) (sr.nextDouble()*(CHARS_LC.length-1));
033                            sb.append(CHARS_LC[rnd]);
034                    }
035                    return sb.toString();
036            }
037    }