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()));
            }
        }
    
    }
  • 相关阅读:
    [IOS/翻译]Core Services Layer
    JEval使用实例
    Spring面试总结
    对easyui datagrid进行扩展,当滚动条拉直最下面就异步加载数据。
    虚拟机无法安装64位系统,是否说明硬件不支持?
    zh-cn,zh-tw,en-us,en-gb等网页语言代码一览表
    Python 计算程序运行时间
    美国教授是如何评价中国研究生的
    过来人谈在美国大学里的中国研究生
    javascript 十六进制与RGB颜色值的相互转换
  • 原文地址:https://www.cnblogs.com/ooo0/p/11927217.html
Copyright © 2011-2022 走看看