shell之作为密码生成器

题目
密码生成器
介绍

实验楼为每位用户生成的环境中用户名都是 shiyanlou,但密码都是随机的。

请为我们实现一个满足要求的随机密码生成器:

生成的密码字符串长度为12位
密码中必须同时包含数字,大小写字母及至少1个特殊字符
只允许使用这些特殊字符:><+-{}:.&;

目标

请实现一个 bash 脚本,脚本的存放位置 /home/shiyanlou/genpass.sh
genpass.sh 脚本需要满足介绍中描述的三个条件,并且每次执行产生的密码都不相同
不要使用 mkpasswd 等 Linux 上现成的密码生成工具
密码生成脚本每次执行都返回一个满足需求的密码

$ cd /home/shiyanlou
$ ./genpass.sh
2Dsxw9+xS:27

知识点

Linux 随机数生成器
Bash 脚本编程基础

来源

实验楼研发团队

代码如下:

#!/bin/bash
s=('<' '>' '+' '.' '&' ';' ':' '{' '}' 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)
s_length=${#s[*]}
i=0
length=12
while [ $i -lt $length ]
do
        #$RANDOM生成0-32767之间的整数随机数,
        srand[$i]=${s[$((RANDOM%s_length))]}
        let i++
done

echo ${srand[*]}|sed 's/ //g' #去除空格

还有一些随机数,字母的生成方法

[root@localhost shell]# head /dev/urandom |tr -dc '0-9a-zA-Z'|cut -c -9
lvc043wB5

-d  表删除
-c  表补集
-dc 将指定字符串的补集删除
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cxs123678/article/details/79945959
文章标签: shell
个人分类: shell
上一篇shell 之统计网络数据包
下一篇shell之解决DOS攻击的方法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭