Erlang,Java,Groovy,javascript等语言生成随机密码,erlanggroovy,Erlang生成随机密码


Erlang生成随机密码

random_string(Len) ->    Chrs = list_to_tuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),    ChrsSize = size(Chrs),    F = fun(_, R) -> [element(random:uniform(ChrsSize), Chrs) | R] end,    lists:foldl(F, "", lists:seq(1, Len)).

Groovy生成随机密码

def pool = ['a'..'z','A'..'Z',0..9,'_'].flatten()Random rand = new Random(System.currentTimeMillis())def passChars = (0..10).collect { pool[rand.nextInt(pool.size())] }def password = passChars.join()

还有一种更简单的实现:

def password = org.apache.commons.lang.RandomStringUtils.randomAlphanumeric(length)

Java生成随机密码

SecureRandom random = new SecureRandom();    String str = new BigInteger(130, random).toString(32);

或者:

public class RandomString {          public static String randomstring(int lo, int hi){                  int n = rand(lo, hi);                  byte b[] = new byte[n];                  for (int i = 0; i < n; i++)                          b[i] = (byte)rand('a', 'z');                  return new String(b, 0);          }          private static int rand(int lo, int hi){                      java.util.Random rn = new java.util.Random();                  int n = hi - lo + 1;                  int i = rn.nextInt(n);                  if (i < 0)                          i = -i;                  return lo + i;          }          public static String randomstring(){                  return randomstring(5, 25);          }        /**         * @param args         */        public static void main(String[] args) {                System.out.println(randomstring());        }}

JavaScript生成随机密码

function makeid(){    var text = "";    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";    for( var i=0; i < 5; i++ )        text += possible.charAt(Math.floor(Math.random() * possible.length));    return text;}

参考:StackOverflow

OCaml

# let gen_passwd length =    let gen() = match Random.int(26+26+10) with        n when n < 26 -> int_of_char 'a' + n      | n when n < 26 + 26 -> int_of_char 'A' + n - 26      | n -> int_of_char '0' + n - 26 - 26 in    let gen _ = String.make 1 (char_of_int(gen())) in    String.concat "" (Array.to_list (Array.init length gen));;

用法:

# gen_passwd 16;;- : string = "6l2okhW7V1uq4wgu"

PHP生成随机密码

<?php /* Class MAKEpasswd: Make password from selected characters in a string. required arguments: length of a password and characters to use in a password. 1 = a - z 2 = A - Z 3 = a - z and A - Z 4 = a - z, A - Z and 0 - 9 5 = a - z, A - Z, 0 - 9 and chars !#$%&() usage: Make 10 passwords that is 8 characters long and includes characters a - z, A - Z, 0 - 9 and !#$%&() $numTimes = 0; $example = new MAKEpasswd(8,5); while($numTimes < 10) {        print($example->makePassword() . "<br>\n");        $numTimes++; } */ class MAKEpasswd {        var $intLength;        var $pool;        function MAKEpasswd($iLength, $iChars)        {                $this->intLength = $iLength;                $this->pool = $this->getPool($iChars);        }        function getPool($iChars)        {                switch($iChars)                {                        case 1: /* a - z */                                for($i = 0x61; $i <= 0x7A; $i++)                                {                                        $str .= chr($i);                                }                                return $str;                                break;                        case 2: /* A - Z */                                for($i = 0x41; $i <= 0x5A; $i++)                                {                                        $str .= chr($i);                                }                                return $str;                                break;                        case 3: /* a - z and A - Z */                                $str = $this->getPool(1);                                $str .= $this->getPool(2);                                return $str;                                break;                        case 4: /* 0 - 9, A - Z and a - z */                            $str = $this->getPool(3); // get chars a - z and A - Z first                                for($i = 0x30; $i <= 0x39; $i++)                                {                                        $str .= chr($i); // add chars 0 - 9;                                }                                return $str;                                break;                        case 5:                                /* This will add these chars into the string !#$%&() */                                $str = $this->getPool(4);                                for($i = 0x21; $i < 0x29; $i++)                                {                                        if($i == 0x22 || $i == 0x27) // Exclude characters " and '                                        {                                                continue;                                        }                                        $str .= chr($i);                                }                                return $str;                                break;                }        }        function makePassword()        {                srand ((double) microtime() * 1000000);                $str="";                while(strlen($str)< $this->intLength)                {                        $str.=$this->pool[rand()%strlen($this->pool)];                }                return $str ;        } } ?>

参考: PHPBuilder

Python 生成随机密码

import string,randomdef makePassword(minlength=5,maxlength=25):  length=random.randint(minlength,maxlength)  letters=string.ascii_letters+string.digits # alphanumeric, upper and lowercase  return ''.join([random.choice(letters) for _ in range(length)])

Ruby 生成随机密码

def generate_passwd(length=16)  chars = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ23456789'  Array.new(length) { chars[rand(chars.length)].chr }.joinend

评论关闭