1. 程式人生 > >生成8位隨機密碼腳本

生成8位隨機密碼腳本

ini ice linux中 pre -c inux python腳本 rst vim

這裏提供三個生成隨機密碼的腳本,兩個是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位隨機密碼腳本