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()));
            }
        }
    
    }
  • 相关阅读:
    Java实现 LeetCode 402 移掉K位数字
    Java实现 LeetCode 402 移掉K位数字
    Java实现 LeetCode 401 二进制手表
    Java实现 LeetCode 401 二进制手表
    wpa_supplicant使用笔记-wpa_cli iwconfig
    Linux下的定时器:alarm()与setitimer()
    在 Windows 下远程桌面连接 Linux
    assert()函数用法总结
    linux下svn修改用户名和密码
    VirtualBox
  • 原文地址:https://www.cnblogs.com/ooo0/p/11927217.html
Copyright © 2011-2022 走看看