码迷,mamicode.com
首页 > 其他好文 > 详细

生成8位随机密码脚本

时间:2018-01-15 20:35:44      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:第一个   one   大小   linu   字母   /usr   ring   命令   删除   

这里提供三个生成随机密码的脚本,两个是shell脚本,一个是python脚本。
先来看第一个shell脚本:
1 [root@sv7 ~]# vim suiji.sh
脚本内容:
#!/bin/bash
tr -dc ‘A-Za-z0-9‘ < /dev/urandom | head -c 8
echo //echo后不是没有内容,而是一个空格。目的是让随机密码和[root@sv7 ~]#折行。具体执行效果下面有演示。

    注释:/dev/urandom是linux内置的随机设备文件,文件内容太随机,而且包含很多特殊字符。 tr -dc ‘A-Za-z0-9‘ < /dev/urandom这个命令可以将随机文件中其它字符删除,只保留大小写字母和数字,这就定义了随机密码的取值范围。然后交给管道处理,在大量数据中只取前面8个字节。

[root@sv7 ~]# chmod +x suiji.sh //赋予执行权限
没有添加echo 的执行结果:
[root@sv7 ~]# ./suiji.sh
lqUYG3km[root@sv7 ~]#
完整的输出结果:
[root@sv7 ~]# ./suiji.sh
hoQfMCI6

2 传统类型shell 脚本
[root@sv7 ~]# vim suijimima.sh
脚本内容:
#!/bin/bash
x="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" //定义取值范围
pass=‘ ‘ //定义pass初始值为空
for i in {1..8}
do
n=$[RANDOM%62] //随机数取余,值<62,范围是(0-61)
y=${x:$n:1} //取62个数字中随机一位
pass=${pass}$y //取出的值排列在初始值为空的pass的后面
done
echo $pass
[root@sv7 ~]# chmod +x suijimima.sh //赋予执行权限
执行结果:
[root@sv7 ~]# ./suijimima.sh
0g0dkM3C

3python编写脚本
#!/usr/bin/python
#coding:utf-8
import string //引入模块,定义取值范围
import random //引入随机数模块,调用其中随机取值模块
passwd=‘‘
x=string.letters+string.digits //定义密码取值范围是字母+数字
for i in range(8):
tmp=random.choice(x)
passwd=passwd+tmp
print passwd
执行效果
/usr/bin/python2.7 /root/PycharmProjects/xxx/suijimima.py
7oa6Uhpw
Process finished with exit code 0

在这三个版中,还是比较喜欢第一个。在linux中要达到同样效果,命令(代码)越精简越好。

生成8位随机密码脚本

标签:第一个   one   大小   linu   字母   /usr   ring   命令   删除   

原文地址:http://blog.51cto.com/13450962/2061246

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!