How to generate a secure random alphanumeric string in Java efficiently?

后端 未结 9 1494
半阙折子戏
半阙折子戏 2021-01-01 12:24

How do you generate a secure random (or pseudo-random) alphanumeric string in Java efficiently?

9条回答
  •  抹茶落季
    2021-01-01 12:52

    import java.security.SecureRandom;
    import java.util.Random;
    
    public class PasswordHelper {        
    
        public static String generatePassword (int length) {
    
        //minimum length of 6
        if (length < 4) {
            length = 6;
        }
    
        final char[] allAllowed = "abcdefghijklmnopqrstuvwxyzABCDEFGJKLMNPRSTUVWXYZ0123456789".toCharArray();
    
        //Use cryptographically secure random number generator
        Random random = new SecureRandom();
    
        StringBuilder password = new StringBuilder(); 
    
        for (int i = 0; i < length; i++) {
            password.append(allAllowed[random.nextInt(allAllowed.length)]);
        }
    
        return password.toString();
    
        }
    
    }
    

提交回复
热议问题