zoukankan      html  css  js  c++  java
  • java Random 随机密码

    /**
    * Created by xc on 2019/11/23
    * 生成随机密码:6位数字
    */
    public class Test7_4 {

    public static void main(String[] args) {
    System.out.println(randomPassword());//382630
    }

    public static String randomPassword() {
    char[] chars = new char[6];
    Random rnd = new Random();
    for (int i = 0; i < 6; i++) {
    chars[i] = (char) ('0' + rnd.nextInt(10));
    }
    return new String(chars);
    }

    }
    /**
     * Created by xc on 2019/11/23
     * 生成随机密码:简单8位
     * 8位密码,字符可能由大写字母、小写字母、数字和特殊符号组成
     */
    public class Test7_5 {
    
        private static final String SPECIAL_CHARS = "!@#$%^&*_=+-/";
    
        public static void main(String[] args) {
            System.out.println(randomPassword());//ejgY^14*
        }
    
        private static char nextChar(Random rnd) {
            switch (rnd.nextInt(4)) {
                case 0:
                    return (char) ('a' + rnd.nextInt(26));
                case 1:
                    return (char) ('A' + rnd.nextInt(26));
                case 2:
                    return (char) ('0' + rnd.nextInt(10));
                default:
                    return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
            }
        }
    
        public static String randomPassword() {
            char[] chars = new char[8];
            Random rnd = new Random();
            for (int i = 0; i < 8; i++) {
                chars[i] = nextChar(rnd);
            }
            return new String(chars);
        }
    
    }
    /**
     * Created by xc on 2019/11/23
     * 生成随机密码:复杂8位
     */
    public class Test7_6 {
    
        private static final String SPECIAL_CHARS = "!@#$%^&*_=+-/";
    
        public static void main(String[] args) {
            System.out.println(randomPassword());//Q*82-/zQ
        }
    
        private static int nextIndex(char[] chars, Random rnd) {
            int index = rnd.nextInt(chars.length);
            while (chars[index] != 0) {
                index = rnd.nextInt(chars.length);
            }
            return index;
        }
    
        private static char nextSpecialChar(Random rnd) {
            return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
        }
    
        private static char nextUpperlLetter(Random rnd) {
            return (char) ('A' + rnd.nextInt(26));
        }
    
        private static char nextLowerLetter(Random rnd) {
            return (char) ('a' + rnd.nextInt(26));
        }
    
        private static char nextNumLetter(Random rnd) {
            return (char) ('0' + rnd.nextInt(10));
        }
    
        public static String randomPassword() {
            char[] chars = new char[8];
            Random rnd = new Random();
            chars[nextIndex(chars, rnd)] = nextSpecialChar(rnd);
            chars[nextIndex(chars, rnd)] = nextUpperlLetter(rnd);
            chars[nextIndex(chars, rnd)] = nextLowerLetter(rnd);
            chars[nextIndex(chars, rnd)] = nextNumLetter(rnd);
            for (int i = 0; i < 8; i++) {
                if (chars[i] == 0) {
                    chars[i] = nextChar(rnd);
                }
            }
            return new String(chars);
        }
    
        private static char nextChar(Random rnd) {
            switch (rnd.nextInt(4)) {
                case 0:
                    return (char) ('a' + rnd.nextInt(26));
                case 1:
                    return (char) ('A' + rnd.nextInt(26));
                case 2:
                    return (char) ('0' + rnd.nextInt(10));
                default:
                    return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
            }
        }
    
    }
  • 相关阅读:
    angular2 + bootstrap +jquery 实例
    How to create a angular2 project process
    icheck 插件
    select2 下面的搜索框 无法输入问题
    datatabels buttons
    datatables 跳转到指定页
    text-overflow:ellipse;
    box-shadow
    CSS强制性换行
    mybatis与hibernate的不同
  • 原文地址:https://www.cnblogs.com/ooo0/p/11927217.html
Copyright © 2011-2022 走看看