生成8位随机密码脚本

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

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

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

2 传统类型shell 脚本
[[email protected] ~]# 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
[[email protected] ~]# chmod +x suijimima.sh //赋予执行权限
执行结果:
[[email protected] ~]# ./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中要达到同样效果,命令(代码)越精简越好。

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

时间: 2024-10-09 22:30:20

生成8位随机密码脚本的相关文章

Python生成8位随机密码

#!/usr/bin/env python # -*- coding: utf-8 -*- import random import string #第一种方法 seed = "[email protected]#$%^&*()_+=-" sa = [] for i in range(8): sa.append(random.choice(seed)) salt = ''.join(sa) print salt #第二种方法 salt = ''.join(random.samp

生成两位随机数

编写脚本生成2位的随机数,要求个位和十位数不能相同,如果遇到个位和十位相同的就退出脚本,注意十位数不能为0 count=0while truedo    num=$((RANDOM%100))    if ((((num/10))==0))    then        continue    else        if ((((num%10))==((num/10))))        then            break        else            echo num

生成6位的随机验证码

要求:生成6位的字母和数字组成的随机验证码. 实例1: 1 import random 2 identify_code='' 3 for i in range(1): 4 for j in range(6): 5 if i==j: 6 code=chr(random.randint(65,90)) 7 else: 8 code=random.randint(0,9) 9 identify_code+=str(code) 10 11 print(identify_code) 实例2: 1 impo

随机生成4位验证码,由用户输入并验证是否输入正确,如果输入错误就生成新的验证码让用户重新输入,最多输入5次

1 //四位随机验证码 2 Random ran=new Random(); 3 String str1 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXUZ"; 4 char [] a=new char[4]; 5 for(int i=0;i<4;i++) 6 { 7 a[i]=str1.charAt(ran.nextInt(62)); 8 } 9 10 StringBuilder rzm1= new

js随机生成4位验证码

方法一: /*随机生成4位验证码*/ /*step1:将所有字母,数字装入一个数组备用*/ var codes=[]; //数字:48-57;unicode编码 for(var i=48;i<57;codes.push(i),i++); /*console.log(codes);*/ //大写字母:65-90;unicode编码 for(var i=60;i<90;codes.push(i),i++); //小写字母:97-122;unicode编码 for(var i=97;i<122

利用random生成6位随机验证码

使用random生成6位随机验证码 #!/usr/bin/env python # _*_ coding:utf-8 _*_ import random code = [] for i in range(6):     #可在此处改变条件表达式来调整生成数字的机率     if i == random.randint(0,5):         # 如果随机数与0-5中的随机数相等,生成数字验证码        code.append(str(random.randint(0,9)))     

在线生成32位和16位大小写MD5密文

MD5是一种不可逆的加密算法,全称是Message-Digest Algorithm 5(信息-摘要算法).是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一. MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改.比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d

php生成16位只有数字随机数

php生成16位只有数字随机数 分享一个php生成16位随机数的代码,php生成随机数的二种方法.方法1, <?php $a = mt_rand(10000000,99999999); $b = mt_rand(10000000,99999999); echo $a.$b; 方法2: <?php $a = range(0,9); for($i=0;$i<16;$i++){ $b[] = array_rand($a); } // www.yuju100.com var_dump(join(

QTP生成18位的身份证,生日为当前年月日-old年,后面4位随机

Function GetNewIDCard(byval old) '--输入参数-- 'old in int, --生成的2位数年龄,不传值默认19岁 '--输出参数-- 'GetNewIDCard -- 18位的随机身份证,生日为当前年月日-old年,后面4位随机 '--------------------------------------------------------------- '-- 模块名称: GetNewIDCard '-- 描 述: 生成18位的随机身份证,生日为当前年月