美文网首页
Bash命令行生成随机密码

Bash命令行生成随机密码

作者: 陈忠俊 | 来源:发表于2021-04-18 15:50 被阅读0次
  1. 利用/dev/urandom生产随机字符
# fold -w 数字, 定义数据长度
# head -数字,定义生产数据的个数
# tr -dc,定义生产数据使用字符集的范围,`-d`是删除数据集,`-c`是指删除了数据集之后的补集。
# 比如:完整的数据集包含All:1234ABCDabcd,tr -d '1-4',
# 剩下的是Part:ABCDabcd,再加上`-c`,求的就是全集去掉补集All - Part = 1234

# 纯数字
root@ubuntu:/# cat /dev/urandom | tr -dc '0-9' | fold -w 12 | head -1
605559033071

# 纯大写字母
root@ubuntu:/# cat /dev/urandom | tr -dc 'A-Z' | fold -w 8 | head -1
GVQOITNX

# 纯小写字母
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-z' | fold -w 8 | head -1
gwqbldjb

# 大小写字母组合
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 8 | head -1
CbgJRyUU

# 大小写字母数字组合
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -1
C0Hh9CfRgsZL2d4V

# 添加特殊字符
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-zA-Z0-9#$%?' | fold -w 16 | head -1
aHJFdkwTvTWLJt5X
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-zA-Z0-9#$%?' | fold -w 16 | head -1
fgT$K0f#kKvR2anQ

# 一次生产两组
root@ubuntu:/# cat /dev/urandom | tr -dc 'a-zA-Z0-9#$%?' | fold -w 16 | head -2
?1ceAk4ZG13hMhy0
8UqFy$ZBxuhgPTxg
  1. 利用openssl生产随机字符
# 
root@ubuntu:/# openssl rand -base64 8
5xHq5zTNNz8=
root@ubuntu:/# openssl rand -base64 8 | md5sum
39d12d8dda49ee214fcaa80eb682a08b  -

# -base64 8,长度是8位
# cut -c,用于截取字符串,md5sum计算上一个输出,长度是32位,这里截取1到8位
root@ubuntu:/# openssl rand -base64 8 | md5sum | cut -c 1-8
9bdc75e7

# 输出纯数字
# 其中,cksum命令是检查文件的CRC是否正确。数字长度随输入而改变。
root@ubuntu:/# openssl rand -base64 8 | cksum | cut -c 1-8
14305243

相关文章

网友评论

      本文标题:Bash命令行生成随机密码

      本文链接:https://www.haomeiwen.com/subject/mzcvlltx.html