`
mugicoffee
  • 浏览: 37492 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Java生成指定长度的随机密码

阅读更多

懒得自己写了,转用一个,源地址见:

 http://rabbit8.bokee.com/4459934.html

import java.util.Random;

public class test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  System.out.println(genRandomNum(10));
 }
 /**
  * 生成随即密码
  * @param pwd_len 生成的密码的总长度
  * @return  密码的字符串
  */
 public static String genRandomNum(int pwd_len){
  //35是因为数组是从0开始的,26个字母+10个数字
  final int  maxNum = 36;
  int i;  //生成的随机数
  int count = 0; //生成的密码的长度
  char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
    'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
    'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  
  StringBuffer pwd = new StringBuffer("");
  Random r = new Random();
  while(count < pwd_len){
   //生成随机数,取绝对值,防止生成负数,
   
   i = Math.abs(r.nextInt(maxNum));  //生成的数最大为36-1
   
   if (i >= 0 && i < str.length) {
    pwd.append(str[i]);
    count ++;
   }
  }
  
  return pwd.toString();
 }
}

收藏到:Del.icio.us
分享到:
评论
2 楼 mugicoffee 2008-10-29  
phoenix007 写道

getRandomNum函数倒是没问题,可是,当我用循环生产10个随机密码的时候,生成的密码却都是一样的。 不知道这是为什么。


我运行了一遍你的程序,没发现一样的密码……
9or0ypgt
cq1p8f9j
abibnzzz
4usix58h
wkgah3xs
gv3doou3
kuui523d
a86dlcxe
i9ht54b6
yepj3281

环境:jdk1.5+eclipse
1 楼 phoenix007 2008-10-13  
getRandomNum函数倒是没问题,可是,当我用循环生产10个随机密码的时候,生成的密码却都是一样的。 不知道这是为什么。
package test;

import java.util.Random;

public class RandomPassword {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        
		int i = 0;
        while (i < 10)
        {   
        	
        	System.out.println(getRandomNum(8));
            i++;	
        }

	}
	/*
    * 生成随机密码
    * @param length
    * @return
    */
   public static String getRandomString(int length) { 
       StringBuffer buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyz"); 
       StringBuffer sb = new StringBuffer(); 
       Random r = new Random(); 
       int range = buffer.length(); 
       for (int i = 0; i < length; i ++) { 
           sb.append(buffer.charAt(r.nextInt(range))); 
       } 
       return sb.toString(); 
   } 
   
   public static String getRandomNum(int pwd_len){
	   //35是因为数组是从0开始的,26个字母+10个数字
	   final int maxNum = 36;
	   int i; //生成的随机数
	   int count = 0; //生成的密码的长度
	   char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
	     'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
	     'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
	  
	   StringBuffer pwd = new StringBuffer("");
	   Random r = new Random();
	   while(count < pwd_len){
	    //生成随机数,取绝对值,防止生成负数,
	   
	    i = Math.abs(r.nextInt(maxNum)); //生成的数最大为36-1
	   
	    if (i >= 0 && i < str.length) {
	     pwd.append(str[i]);
	     count ++;
	    }
	   }
	  
	   return pwd.toString();
	}


}

相关推荐

    Java 生成设定长度的随机密码

    Java 生成不定位数的 随机密码,密码长度和密码内容可以根据需要修改!

    java生成随机密码

    ### Java生成随机密码知识点解析 #### 一、概述 在软件开发中,为了增强系统的安全性,经常需要生成随机密码或验证码。Java作为一种广泛使用的编程语言,提供了多种方式来实现这一功能。本文将详细介绍如何利用...

    JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】

    在示例程序中,我们定义了一个PassWordCreate类,其中包含了一个createPassWord方法,该方法可以生成指定长度的随机密码。该方法使用Random类来生成随机数,然后将其转换为对应的字符,并将其组合成一个字符串。 在...

    java 随机产生指定长度的用户名字母 数字格式

    通过上述分析,我们可以清楚地了解到如何在Java中使用 `Random` 类结合字符数组和 `StringBuffer` 来生成指定长度的随机字符串。这种方法不仅适用于生成用户名,同样可以应用于密码生成等场景,具有很强的实用价值。

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

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

    java生成16位随机数

    java生成16位随机数

    自动生成随机密码

    在Java中,我们可以使用`org.apache.commons.lang3.RandomStringUtils`类来生成随机密码。这个类提供了多种方法,如`RandomStringUtils.randomNumeric(int count)`,它可以生成指定长度的纯数字随机字符串。 例如,...

    生成随机密码密钥

    在IT安全领域,生成随机密码...综上所述,生成随机密码和密钥是提高系统安全的重要手段,涉及的编程技术包括随机数生成、字符串操作以及可能的加密算法。理解并正确实现这些功能对于任何IT专业人员来说都是必要的技能。

    生成指定长度的随机字符串

    在IT领域,生成指定长度的随机字符串是一项常见的需求,它广泛应用于密码生成、测试数据填充、安全令牌等领域。本文将深入探讨如何生成这样的随机字符串,并介绍相关编程语言的实现方法。 首先,我们要理解随机字符...

    Java随机字符串生成器,可用于生成随机密码,密约等场景,支持字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置)

    Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...

    java生成md5密码加盐

    本文将详细介绍Java和SpringBoot如何实现加盐的MD5密码生成。 首先,MD5是一种单向哈希函数,它将任意大小的数据转换为128位的哈希值,通常以32位的十六进制字符串表示。其优点是计算速度快,但缺点是容易遭受彩虹...

    java代码-使用java生成一个固定位数的随机字符串,并加密,和用户密码加密后的密文组合的源代码

    java代码-使用java生成一个固定位数的随机字符串,并加密,和用户密码加密后的密文组合的源代码 ——学习参考资料:仅用于个人学习使用!

    随机生成11位数字

    根据给定的信息,我们可以深入探讨如何在编程环境中生成指定长度的随机数字字符串,尤其是在Java环境中。这不仅是IT领域中常见的需求之一,也是许多应用程序开发过程中不可或缺的一部分。下面将详细介绍如何理解并...

    Java随机生成随机密码

    用户可以指定密码的长度以及是否包括大写字母、数字和特殊字符,然后通过调用 `generateRandomPassword` 方法生成随机密码。工具的主方法演示了如何使用该工具,生成一个随机密码并将其打印到控制台上。

    Java 生成随机字符串数组的实例详解

    Java生成随机字符串数组的实例详解是一种非常有用的编程任务,涉及到String、StringBuffer、List、泛型、Collections.sort()、foreach、Random等相关知识点。通过本实例详解,读者可以学到生成随机字符串数组的步骤...

    java随机生成数字和字母

    本文将通过一个简单的示例程序来介绍如何使用Java生成随机的字母。 #### 二、基础知识 在开始之前,我们需要了解以下几个基础概念: - **`java.util.Random`类**:Java中的`Random`类提供了一种方式来生成伪随机数...

    用JAVA 实现随机密码

    在`main`方法中,我们生成了一个指定长度的随机密码,并打印出来。 这个简单的程序可以作为起点,但为了提高密码的安全性,我们可以添加更多的复杂性,例如确保密码包含特定类型的字符(如至少一个大写字母、一个...

    12位随机密码生成器

    一个随机生成12位密码的生成器,密文包括特殊字符,大小写英文字母和数字

    java生成16位long类型id

    1.获取系统时间 + 随机数,但是由于系统时间前几位是相同的,所以截取几位数字; 2.获取随机数,math的方法,截取几位数字; 3.判重校验

    java随机生成验证码

    生成指定长度(如4位或6位)的随机字符串,将上述步骤中的随机字符组合起来。可以使用`StringBuilder`类或`String`的`concat()`方法来构建字符串。 3. **颜色和噪音**: 为了增加机器识别的难度,验证码图像通常...

Global site tag (gtag.js) - Google Analytics