`
metaphy
  • 浏览: 344521 次
  • 性别: Icon_minigender_1
  • 来自: 大西洋底
社区版块
存档分类
最新评论

随机密码生成

 
阅读更多
import java.util.Random;

public class RandomPassword {
    private int length = 8;   	// password length
    private int numLen = 2;     // count of numbers
    private int nonABNumLen = 1;// count of special character

    /**
     * get an alphabeta
     * @return
     */
    private char getAB() {
        Random rand = new Random();
        int ri = rand.nextInt(52);
        char c = 0;
        if (ri < 26) {
            c = (char) (65 + ri);
        } else {
            c = (char) (97 + ri - 26);
        }
        return c;
    }

    /**
     * get a num
     * @return
     */
    private char getNum() {
        Random rand = new Random();
        int ri = rand.nextInt(10);
        char c = (char) (48 + ri);
        return c;
    }

    /**
     * get a non num / non abc char
     * @return
     */
    private char getNonABNum() {
        Random rand = new Random();
        int total = (47 - 32) + (64 - 57) + (96 - 90) + (126 - 122);	//total nonABNUM characters
        int ri = rand.nextInt(total);
        char c = 0; 
        if (ri < (47 - 32)) {
        	c = (char) (ri + 32 + 1); 
        } else if (ri < (47 - 32)+(64 - 57)) {
        	c = (char) (ri - (47 - 32) + 57 + 1); 
        } else if (ri < (47 - 32)+(64 - 57) + (96 - 90)) {
        	c = (char) (ri - (47 - 32) -(64 - 57) + 90 + 1 );
        } else {
        	c = (char) (ri - (47 - 32) -(64 - 57) - (96 - 90) + 122 + 1 );
        }
        return c;
    }

    /**
     * Generate the password chars array
     */
    public String password() {
        char[] pwd = new char[length];
        
        // generate the pwd chars
        for (int i = 0; i < length; i++ ) { 
        	if (i < length -numLen -nonABNumLen) {
        		pwd[i] = getAB(); 
        	} else if (i < length -nonABNumLen ) {
        		pwd[i] = getNum(); 
        	} else {
        		pwd[i] = getNonABNum(); 
        	}
        }
        
        // randomly shuffle pwd char array - Fisher–Yates shuffle
        Random rand = new Random();
        for (int i = length - 1; i > 0; i --) { 
        	int j = rand.nextInt(i + 1);
        	// swap char[i] and char[j]
        	char c = pwd[j];
        	pwd[j] = pwd[i]; 
        	pwd[i] = c; 
        }
        return new String(pwd);
    }
    
    /**
     * Test
     * @param args
     */
    public static void main(String[] args) {
        RandomPassword rp = new RandomPassword ();
        for (int i = 0; i< 20; i++) {
        	System.out.println ("Random Password: " + rp.password());
        }
    }
}



某次运行结果:
Random Password: "f1iiu9E
Random Password: X:9LT9UX
Random Password: BO7CQ'U4
Random Password: Esp^N00r
Random Password: f51BpT^D
Random Password: d2)mRPy0
Random Password: m0Ww^8aa
Random Password: FwV)RQ22
Random Password: 1_9hRtSt
Random Password: Q9m1YMM=
Random Password: 7cN#Jo7o
Random Password: 3oa7s^OO
Random Password: i(OB6Xz8
Random Password: VL6h2z^j
Random Password: (eVqu9p9
Random Password: ~DGGS80o
Random Password: [2lp4xlL
Random Password: #vs0sHv9
Random Password: Lp0XX2]L
Random Password: (POo9jC7
分享到:
评论

相关推荐

    随机密码生成器.rar

    随机密码生成器

    随机密码生成器

    随风随机密码生成器是一个简单的随机密码生成工具。 随风随机密码生成器使用说明: 1.密码可以是“数字,字母,符号”任意组合 2.可生成5到100位密码!满足大多应用!可以选加Id! 3.可一次生成999万个密码!生成...

    一款自定义密码长度字母数字特殊符号组合的随机密码生成软件.exe

    一款自定义密码长度字母数字特殊符号组合的随机密码生成软件,随机字符、随机数字、随机密码生成工具高强度随机密码生成器:可自定义生成随机数字、大小写字母、特殊字符的随机密码生成工具随机字符生成器:支持纯...

    一些随机密码生成源码

    这是一些java随机密码生成的源码,对于初学开发者有一定的帮助、

    随风随机密码生成器(可一次生成999万个密码)

    随风随机密码生成器Ver1.0 闲暇时,做了个随机密码生成工具,欢迎使用! 以下是简单说明: 1.密码可以是“数字,字母,符号”任意组合! 2.可生成5到100位密码!满足大多应用!可以选加Id! 3.可一次生成999万...

    随机密码生成器,可以随机生成各种密码

    用vb编写的随机密码生成器,可以免去填写密码时费脑子考虑,不过生成的密码要自己记好。密码的位数可以自己选择,也可以选择密码中包含的内容,数字、大写字母、小写字母以及其它字符都可以选,也可以组合使用。

    java随机密码生成器 源代码

    该代码可以生成一个大写字母+2个小写字母+6个数字+3个特殊字符的随机密码。Windows下运行参考:https://blog.csdn.net/u011177600/article/details/79520285

    简单的随机密码生成工具

    标题中的“简单的随机密码生成工具”指的是一个软件应用或程序,它的主要功能是自动生成随机密码。这样的工具在日常生活中非常实用,特别是在需要为各种在线账户设置安全密码时。随机密码由于其不可预测性,通常被...

    JS随机密码生成器.rar

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,包括动态内容、用户交互、数据处理以及创建各种实用工具,如我们这里的随机密码生成器。这个"JS随机密码生成器.rar"是一个压缩包...

    随机密码生成工具-基于C++编写

    用C++编写的随机密码生成工具软件,简单易懂

    在线随机密码生成器HTML+JQuery

    在线随机密码生成器是一个网页应用,它利用HTML作为页面结构,JQuery作为JavaScript库来增强交互性,帮助用户快速生成安全的随机密码。这个工具在现代社会中尤其有用,因为网络安全日益重要,用户需要为各种账户设置...

    随机密码生成器VC++源程序

    随机密码生成器是一种用于创建安全、不可预测的密码的软件工具。在当今网络安全日益重要的背景下,这类工具的应用非常广泛,特别是在个人数据保护和企业信息安全领域。VC++是Microsoft开发的一种面向对象的C++编程...

    MATLAB实现随机密码生成器

    在本文中,我们将深入探讨如何使用MATLAB来实现一个随机密码生成器。MATLAB是一种强大的数值计算和编程环境,它提供了丰富的数学函数和便捷的编程语法,使得开发这样的工具变得简单而高效。 首先,让我们来看一下`...

    软件加密,随机密码生成,纯PB生成,不需要插件

    软件加密,随机密码生成,纯PB生成,不需要插件,附加进去或者代码拷贝进去OK

    随机密码生成器_js.zip

    这个zip文件“随机密码生成器_js.zip”显然包含了使用JavaScript实现的随机密码生成器的相关代码和资源。JavaScript是一种广泛使用的客户端脚本语言,允许在用户浏览器中执行动态功能,如网页交互和数据处理。 在...

Global site tag (gtag.js) - Google Analytics