Java编写随机密码!!!史诗及难度,让黑客再无破解可能。。。

1.JOptionPane.showInputDialog("请输入你想设定的密码长度:")弹窗显示,类似于控制台输入框,只不过这是弹窗输入。

2.JOptionPane.showMessageDialog(null,pwd);弹窗显示,第一个参数为父类窗口,我们只有这一个窗口,我们写null,第二个参数为显示的信息内容我们以变量的形式传递。

设计思路:规定一个字符串作为密码难度,将这个字符串分割为单个字符并赋给字符串数组,然后通过随机类去除随机字符给事先声明的一个空字符串,然后成功拿到随机密码。

/*
 * Copyright (c) 2020, 2023,  All rights reserved.
 *
 */
package cn;

import javax.swing.*;
import java.util.Random;
import java.util.Scanner;

/**
 * <p>Project: JavaStudy - Work5</p>
 * <p>Powered by scl On 2023-07-13 20:23:14</p>
 * <p>描述:<p>
 *
 * @author scl [1846080280@qq.com]
 * @version 1.0
 * @since 17
 */
public class Work5 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        Integer ss= Integer.parseInt(JOptionPane.showInputDialog("请输入你想设定的密码长度:"));
        Integer dd= Integer.parseInt(JOptionPane.showInputDialog("请选择密码难度1.初级,2.中级,3.高级,其余默认6位数字:"));
        String pwd = pwd(ss,dd);
        JOptionPane.showMessageDialog(null,pwd);
    }

    //编写密码
    public static String pwd(int len, int type) {
        String password = "";
        Random random = new Random();

        switch (type) {
            case 1:
                String[] str = "abcdefghijklmnopqrstuvwxyz".split("");
                for (int i = 0; i < len; i++) {
                    password += str[random.nextInt(str.length)];
                }
                break;
            case 2:
                String[] str1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
                for (int i = 0; i < len; i++) {
                    password += str1[random.nextInt(str1.length)];
                }
                break;
            case 3:
                String[] str2 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()".split("");
                for (int i = 0; i < len; i++) {
                    password += str2[random.nextInt(str2.length)];
                }
                break;
            default:
                String[] str3 = "123456789".split("");
                for (int i = 0; i < 6; i++) {
                    password += str3[random.nextInt(str3.length)];
                }
        }
        return password;
    }


}

运行结果:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值