精华内容
下载资源
问答
  • Java 生成随机密码

    千次阅读 2018-12-13 19:40:33
    将字母,数字,符号拆开成可取用的数组,按照密码长度做生成策略, 分别为小写字母占密码长度的1/2,大写字母和数字各占1/4,符号占剩余无法除尽的(最多个符号)。 然后循环取值,每一从数组中随机拿取字符,并...
    利用Random方法生产随机密码。
    将字母,数字,符号拆开成可取用的数组,按照密码长度做生成策略, 分别为小写字母占密码长度的1/2,大写字母和数字各占1/4,符号占剩余无法除尽的(最多两个符号)。
    然后循环取值,每一次从数组中随机拿取字符,并把这个字符随机放入生产的密码字符串中的某个位置。
    
    
    public final static String[] LOWER_CASES = { "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"};
    public final static String[] UPPER_CASES = { "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"};
    public final static String[] NUMS_LIST = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
    public final static String[] SYMBOLS_ARRAY = {"!","~","^","_","*"};
    
    /**
     * 生成随机密码
     * @param pwd_len 密码长度
     * @return 密码的字符串
     */
    public static String genRandomPwd(int pwd_len) {
        if ( pwd_len < 6 || pwd_len >20 ) {
            return "";
        }
        int lower = pwd_len / 2 ;
    
        int upper = (pwd_len - lower) /2;
    
        int num =  (pwd_len - lower) / 2;
    
        int symbol = pwd_len - lower - upper - num ;
        
        StringBuffer pwd = new StringBuffer();
        Random random = new Random();
        int position = 0;
        while((lower + upper + num + symbol) > 0 ){
            if(lower > 0){
                position = random.nextInt(pwd.length() + 1);
    
                pwd.insert(position,LOWER_CASES[random.nextInt(LOWER_CASES.length)]);
                lower--;
            }
            if(upper > 0){
                position = random.nextInt(pwd.length()  + 1);
    
                pwd.insert(position,UPPER_CASES[random.nextInt(UPPER_CASES.length)]);
                upper--;
            }
            if(num > 0){
                position = random.nextInt(pwd.length()  + 1);
    
                pwd.insert(position,NUMS_LIST[random.nextInt(NUMS_LIST.length)]);
                num--;
            }
            if(symbol > 0){
                position = random.nextInt(pwd.length()  + 1);
    
                pwd.insert(position,SYMBOLS_ARRAY[random.nextInt(SYMBOLS_ARRAY.length)]);
                symbol--;
            }
    
            System.out.println(pwd.toString());
        }
    
    
        return pwd.toString();
    }
    展开全文
  • 使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。...② 将 35 转换成对应的ASCII字符,如 35 对应 #; ③ 重复以上 1、2

            使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。

    1、方法一:

    ① 在 33 – 126 中生成一个随机整数,如 35;

    ② 将 35 转换成对应的ASCII码字符,如 35 对应 #;

    ③ 重复以上 1、2 步骤 n 次,连接成 n 位的密码。

            该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 – 122 位对应 a – z 的英文字母,具体可参考 ASCII码表; chr ( int $ascii )函数用于将对应整数 $ascii 转换成对应的字符。

    /**
     * 2016-10-04
     * zhihua_w
     */
    <?php
    function create_password($pw_length = 8)
    {
    	$randpwd = '';
    	for ($i = 0; $i < $pw_length; $i++) {
    		$randpwd .= chr(mt_rand(33, 126));
    	}
    	return $randpwd;
    }
    
    // 调用该函数,传递长度参数$pw_length = 6
    echo create_password(6);
    ?>

    2、方法二:

    ① 预置一个的字符串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符;

    ② 在 $chars 字符串中随机取一个字符;

    ③ 重复第二步 n 次,可得长度为 n 的密码。

    /**
     * 2016-10-04
     * zhihua_w
     */
    <?php
    	function generate_password( $length = 8 )
    	{
    		// 密码字符集,可任意添加你需要的字符
    		$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
    
    		$password = '';
    		for ( $i = 0; $i < $length; $i++ ) {
    			// 这里提供两种字符获取方式
    			// 第一种是使用 substr 截取$chars中的任意一位字符;
    			// 第二种是取字符数组 $chars 的任意元素
    			// $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
    			$password .= $chars[mt_rand(0, strlen($chars) - 1)];
    		}
    
    		return $password;
    	}
    ?>

    3、方法三:

    ① 预置一个的字符数组 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符;

    ② 通过array_rand()从数组 $chars 中随机选出 $length 个元素;

    ③ 根据已获取的键名数组 $keys,从数组 $chars 取出字符拼接字符串。该方法的缺点是相同的字符不会重复取。

    /**
     * 2016-10-04
     * zhihua_w
     */
    <?php
    	function make_password( $length = 8 )
    	{
    		// 密码字符集,可任意添加你需要的字符
    		$chars = array('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', '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', '!', 
    		'@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', 
    		'[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', 
    		'.', ';', ':', '/', '?', '|');
    
    		// 在 $chars 中随机取 $length 个数组元素键名
    		$keys = array_rand($chars, $length); 
    
    		$password = '';
    		for($i = 0; $i < $length; $i++)
    		{
    			// 将 $length 个数组元素连接成字符串
    			$password .= $chars[$keys[$i]];
    		}
    
    		return $password;
    	}
    ?>

    4、方法四:

    ① time() 获取当前的时间戳;

    ② 将第一步获取的时间戳进行 md5() 加密;

    ③ 将第二步加密的结果,截取 n 位即得想要的密码

    /**
     * 2016-10-04
     * zhihua_w
     */
    <?php
    	function get_password( $length = 8 ) 
    	{
    		$str = substr(md5(time()), 0, 6);
    		return $str;
    	}
    ?>

    5、时间效率对比

          我们使用以下PHP代码,计算上面的 4 个随机密码生成函数生成 6 位密码的运行时间,进而对他们的时间效率进行一个简单的对比。

    /**
     * 2016-10-04
     * zhihua_w
     */
    <?php
    	function getmicrotime()
    	{
    		list($usec, $sec) = explode(" ",microtime());
    		return ((float)$usec + (float)$sec);
    	}
    
    	// 记录开始时间
    	$time_start = getmicrotime();
    
    	// 这里放要执行的PHP代码,如:
    	// echo create_password(6);
    
    	// 记录结束时间
    	$time_end = getmicrotime();
    	$time = $time_end - $time_start;
    
    	// 输出运行总时间 
    	echo "执行时间 $time seconds";
    ?>

            大家可以通过此种方式对时间效率进行对比,通过执行所需的时间可以看出方法一和方法二的执行时间都差不多,方法四运行时间最短,而方法三的运行时间稍微长点。

    展开全文
  • 【PHP】浅谈生成随机密码的方法

    千次阅读 2017-02-08 15:14:16
    使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要...将 35 转换成对应的ASCII字符,如 35 对应 # 重复以上 1、2 步骤 n ,连接成 n 位的密码 说明: 该

    使用PHP开发应用程序,尤其是网站程序,常常需要生成随机密码,如用户注册生成随机密码,用户重置密码也需要生成一个随机的密码。随机密码也就是一串固定长度的字符串,这里我收集整理了几种生成随机字符串的方法,以供大家参考。

    方法一

    1. 在 33 – 126 中生成一个随机整数,如 35,
    2. 将 35 转换成对应的ASCII码字符,如 35 对应 #
    3. 重复以上 1、2 步骤 n 次,连接成 n 位的密码

    说明:

    该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 —— 122 位对应 a – z65 —— 90 对应A —— Z的英文字母,具体可参考ASCII 码表。

    <?php
    function create_password($pw_length = 8) {
        $randpwd = '';
        for ($i = 0; $i < $pw_length; $i++) 
        {
            $randpwd .= chr(mt_rand(33, 126));
        }
        return $randpwd;
    }
    
    // 调用该函数,传递长度参数$pw_length = 6
    echo create_password(6);

    方法二

    1. 预置一个的字符串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符
    2. $chars 字符串中随机取一个字符
    3. 重复第二步 n 次,可得长度为 n 的密码
    <?php
    function generate_password( $length = 8 ) {
        // 密码字符集,可任意添加你需要的字符
        $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_[]{}<>~`+=,.;:/?|';
    
        $password = '';
        for ( $i = 0; $i < $length; $i++ ) 
        {
            // 这里提供两种字符获取方式
            // 第一种是使用 substr 截取$chars中的任意一位字符;
            // 第二种是取字符数组 $chars 的任意元素
            // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
            $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
        }
    
        return $password;
    }
    echo generate_password(6);

    方法三

    1. 预置一个的字符数组 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符
    2. 通过array_rand()从数组 $chars 中随机选出 $length 个元素
    3. 根据已获取的键名数组 $keys,从数组 $chars 取出字符拼接字符串。该方法的缺点是相同的字符不会重复取。
    <?php
    function make_password( $length = 8 ) {
        // 密码字符集,可任意添加你需要的字符
        $chars = array('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', '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', '!', 
        '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', 
        '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', 
        '.', ';', ':', '/', '?', '|');
    
        // 在 $chars 中随机取 $length 个数组元素键名
        $keys = array_rand($chars, $length); 
    
        $password = '';
        for($i = 0; $i < $length; $i++)
        {
            // 将 $length 个数组元素连接成字符串
            $password .= $chars[$keys[$i]];
        }
    
        return $password;
    }
    
    echo make_password(6);

    方法四

    利用md5加密当前时间戳的方式,截取部分几位。生成的密码只包括字母和数字。

    1. time() 获取当前的 Unix 时间戳
    2. 将第一步获取的时间戳进行 md5() 加密
    3. 将第二步加密的结果,截取 n 位即得想要的密码
    <?php
    function get_password( $length = 8 )  {
        $str = substr(md5(time()), 0, $length);
        return $str;
    }
    
    echo get_password(6);

    方法五

    str_shuffle — 随机打乱一个字符串

    <?php
    function random_pass( $length = 8 ){
        $password = '';
        $chars = 'abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHIJKMNPQRSTUVWXYZ'; //去掉1跟字母l防混淆            
        if ($length > strlen($chars)) {//位数过长重复字符串一定次数
            $chars = str_repeat($chars, ceil($length / strlen($chars)));
        }
        $chars = str_shuffle($chars);
        $password = substr($chars, 0, $length);
        return $password;
    }
    
    echo random_pass(6);
    展开全文
  • 使用Java语言随机生成6位密码(包含大写字母、小写字母和数字),方便分配ACM竞赛的账号和密码,也适用于网站发送短信、防机刷的验证码,下面的演示代码生成了5个密码。   代码 public class RandomPwd { ...

    使用Java语言随机生成6位密码(包含大写字母、小写字母和数字),方便分配ACM竞赛的账号和密码,也适用于网站发送短信、防机刷的验证码,下面的演示代码生成了5个密码。

     

    代码

    public class RandomPwd {
    	public static void main(String[] args) {
    		for (int i = 0; i < 5; i++) {
    			for (int j = 0; j < 6; j++) {
    				double rand = Math.random();
    				double randTri = Math.random() * 3;
    				if (randTri >= 0 && randTri < 1) {
    					System.out.print((char) (rand * ('9' - '0') + '0'));
    				} else if (randTri >= 1 && randTri < 2) {
    					System.out.print((char) (rand * ('Z' - 'A') + 'A'));
    				} else {
    					System.out.print((char) (rand * ('z' - 'a') + 'a'));
    				}
    			}
    			System.out.println();
    		}
    	}
    }

     

    运行结果

    jWj6y1

    lKN0k5

    6O4EbW

    L2i7aq

    SXOEe8

     

    总结:使用两次random()可以提高密码的随机性,效果更理想!

    展开全文
  • Java生成随机不重复推广邀请

    万次阅读 热门讨论 2016-04-02 00:03:27
    最近接到一个需求,要批量生成推广码,...1:每次生成一个随机码后查数据库是否有相同的,有则重新生成(每次都要访问数据库,导致效率极低,不推荐)2:依据数据库的主键作为唯一键,进行打乱或插入操作,如主键为8000001
  • 某个笔试题:生成一个不少于6位的随机密码,要求含有大写字母、小写字母、数字、特殊字符中的三种。
  • PHP随机生成双色球

    千次阅读 2019-12-21 14:04:05
    一个双色球随机数的生成方法,比较近十期的中奖号码,排除多出现的号码 public function doubleBall(){ //数组 $ball['red'] = []; $ball['blue'] =[]; $count = 0; //随机去除最近十期的球数,此处可以用个...
  • *Wordpress注册时 取消邮件通知 并生成随机密码 的方法: *1、用系统自带的记事本 打开根目录的 wp-login.php 文件,另存为 utf-8 编码(默认是 ANSI)。 *2、打开新的wp-login.php文件,推荐用 notepad++软件 打开,...
  • # @Author: Gerry Zhao # @Date: 2019-01-23 18:56:47 # Last Modified by: Gerry Zhao # Last Modified time: 2019-01-23 18:56:47 import random #导入random库,生成...red_num_list = [] #定义个空列表,分...
  • 生成密码

    千次阅读 2017-05-09 09:08:52
    现在好多人不想在每个网站都使用相同密码,他们又无法记住所有网站的密码。 本文提供一个简单的方式让大家可以轻松记住一个账户和密码,来得到对每个不同的网站有一个对应的密码。
  • 大乐透号码随机生成与排序

    千次阅读 2019-09-29 14:14:33
    前面篇介绍了个非常简单的排序算法,本篇介绍排序算法的一个简单应用——对大乐透随机号码进行排序。 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局。...
  • Python生成随机验证码,大乐透号码

    千次阅读 2018-10-02 21:20:04
    实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # 保存验证码的变量 for i in range...
  • ...但如果你想要为多个用户或服务器生成密码,解决方案是什么呢? 是的,Linux 中有许多可用的...这些工具可以为你生成高强度随机密码。如果你想要为多个用户和服务器更新密码,请继续读下去。 这些工具易于使用,这...
  • python生成随机字符串We can generate a random string in Python using the random module. Sometimes we want to generate a random string for unique identifiers, session id or to suggest a password. 我们...
  • C++ 生成随机

    千次阅读 2012-01-19 09:50:02
    以及在Visual C++环境中产生伪随机数的个重要函数,rand和srand函数,正确地使用这个函数是产生性能良好的伪随机数的要害,最后介绍了利用伪随机生成技术在MFC中生成基于C/S模式应用程序的随机校验以及利用...
  • java生成随机字符串的种方法

    千次阅读 2018-07-12 09:43:54
    //由Random生成随机数 Random random= new Random() ; StringBuffer sb= new StringBuffer() ; //长度为几就循环几 for ( int i= 0 ; i ; ++i){ //产生0-61的数字 int number=random....
  • 介绍如何在 Oracle 数据库中使用系统程序包 DBMS_RANDOM 生成随机数据,包括随机数字、验证码、随机字符串以及随机日期和时间等,同时还介绍了如何从表中返回随机记录,以及如何生成 UUID。
  • python生成4位以上复杂密码

    千次阅读 2018-11-20 14:37:15
    要确保生成的密码中包含四种字符,直接从ASCII编码库中随机抽取字符是无法满足的,总有可能抽取到相同类型的字符。而且既要包含四种字符,还要确保密码的随机性。 假设我们要生成8位密码: 1. 第1位字符从数字0 ~ 9...
  • def makepasswd(a,b): #定义一个生成密码的函数,可先先看main()函数 frequency = 0 #用于计算生成密码的个数 Allpasswd = [] #用于存放生成的密码 while frequency < b: #用一个while循环控制生成的密码个数...
  • GPS伪随机码

    千次阅读 2020-02-12 10:37:22
    GPS导航通信系统采用的体制是码分多址(CDMA),即利用不同的码来区分不同的用户,这里的用户指的是卫星。一个码对应于一个卫星。这个码就是伪随机码。 ...
  • 使用java随机生成验证码

    千次阅读 2017-02-06 18:22:33
    生成验证码图片 验证码是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序,可以防止:恶意...
  • .NET(C#)生成随机姓名,随机汉字的产生随机汉字的产生 public static object[] CreateRegionCode(int strlength, bool isRandomCount = false) { if (isRandomCount) { Random random = new Random(); strlen
  • 再谈非重复随机序列号生成算法

    千次阅读 2017-08-16 11:51:23
    但其中存在个问题,这也是基本上非重复随机序列生成算法都要面对的问题 (1)是非重复性 (2)是效率我们原来的程序员开发的,是使用的最低效的方式,即随机生成后,遍历已经生成的所有随机序列号,如果重复则...
  • 邀请码生成

    千次阅读 2018-06-20 13:05:24
    1、唯一性,不能出现个场景下生成一样的邀请。 2、不规律性,至少在字面上不能猜出规律来。 3、高效性,生成邀请的算法不能太过复杂,或者太消耗性能。 思路: 理论上用时间戳生成的数字串基本上是唯一的...
  • 对伪随机码的梳理

    千次阅读 2019-05-15 21:32:15
    随机码 LFSR 在数字通信中,一般使用伪随机序列(Pseudo-Noise,PN)作为训练序列。PN 序列的特点是,尽管其序列产生器有确定的构造方法,但 PN 序列本身具有很多类似随机序列的性质。 最常见的二进制 PN 序列是...
  • 随机生成常用汉字

    千次阅读 2015-05-22 12:14:27
    个月前我写了一篇随笔“随机生成常用汉字”,生成汉字的来源是国标(GB2312)一级字(共3755字)。 昨天我写了一篇随笔“随机生成常用汉字(改进版)”,生成汉字的来源增加了现代汉语常用字(共3500字)。 园友评论说:...
  • 登录密码两次MD5加密设计

    千次阅读 2018-06-05 20:36:06
    现在存在的一些反查md5的软件,做两次为了更好的保密 整体流程如何实现 整体加密流程 MD5(MD5(pass明文+固定salt)+随机salt) 第一次固定salt写死在前端 第二次加密采用随机的salt 并将每次生成的salt保存在...
  • 随机数的生成

    千次阅读 2017-12-25 15:29:44
    随机数的生成 随机序列具有的性质: 等分布性,随机序列的分布特性是等概分布,或称为一致分布。即是说序列中每个元素出现的概率都是相等的。 独立性:随机序列的各个元素之间是相互独立的。 不可预测性:该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,129
精华内容 49,651
关键字:

两次生成相同的随机码