随机生成指定位数密码包括大小写数字特殊符号


分别用python和bash实现

python1

import string
from random import choice
for i in range(10):
    print(''.join([choice(string.ascii_letters + string.digits + string.punctuation) for i in range(12)]))

python2

In [1]: import random
In [2]: def password(length):
   ...:     pw = str()
   ...:     characters = "qwertyuiopasdfghjklzxcvbnm" + "1234567890"+"!@#$%^&*,."
   ...:     for i in range(length):
   ...:         pw = pw +  random.choice(characters)
   ...:     return pw
   ...:
   ...:
In [3]: password(8)
Out[3]: '#!c6!gcd'

bash

#!/bin/bash

for (( i=1;i<=10;i++))
do
  mkpasswd -l 12 -d 1 -c 1 -C 1 -s 1

done

------------------------------------------------------------------

bash

mkpasswd 的使用 常用的选项, -l 指定 长度

-d 指定 数字的个数


-c 指定 小写字符个数 -C 指定大写字符个数


-s 指定特殊字符个数


usage: mkpasswd [args] [user]


where arguments are:


-l (length of password, default = 7)


指定密码的长度,默认是7位数


-d (min # of digits, default = 2)


指定密码中数字最少位数,默认是2位


-c (min # of lowercase chars, default = 2)


指定密码中小写字母最少位数,默认是2位


-C (min # of uppercase chars, default = 2)


指定密码中大写字母最少位数,默认是2位


-s (min # of special chars, default = 1)


指定密码中特殊字符最少位数,默认是1位


-v (verbose, show passwd interaction)

这个参数在实验的时候报错,具体不知道。