您好,登錄后才能下訂單哦!
運維過程中經常需要用到隨機密碼,例如服務器、Mysql、Redis等密碼的設置,用隨機密碼會相對安全一點。這里使用Python來實現一個隨機密碼生成器
random模塊可以從多個字符中隨機先出一個字符,我們可以把所有數字放到一個字符串里,random.choice能夠從中隨機選出一個數字,如下
>>> import random
>>> random.choice('1234567890')
'9'
>>> random.choice('1234567890')
'2'
假如我們需要生成30位隨機密碼,包含數字、大小寫字母、特殊符號。我們可分為四種,然后隨機生成并且放到列表里,程序如下:
import random
result = []
for i in range(0, 20):
if i % 4 == 0:
result.append(random.choice('1234567890'))
if i % 4 == 1:
result.append(random.choice('abcdefghijklmnopqrstuvwxyz'))
if i % 4 == 2:
result.append(random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
if i % 4 == 3:
result.append(random.choice('!$%()+,-.:;>?@[]`{}'))
print("".join(result))
執行結果如下:
[root@devops root]# python /tmp/shijiange.py
0iQ+3eC]5oA}0aJ@2mJ:
[root@devops root]# python /tmp/shijiange.py
0qX>9cG-4pY`3tT.0gN`
[root@devops root]# python /tmp/shijiange.py
1xN%3rG{6aA]0cD.2nL-
[root@devops root]# python /tmp/shijiange.py
5jB]1xA]2yW,5vM:0bH%
由于循環生成的密碼,第一個是數字,第二個是小寫字母,第三個是大寫字母,第四個是字符。雖然比較復雜,但有點規律,我們可以把20個字母隨機打亂。
import random
result = []
for i in range(0, 20):
if i % 4 == 0:
result.append(random.choice('1234567890'))
if i % 4 == 1:
result.append(random.choice('abcdefghijklmnopqrstuvwxyz'))
if i % 4 == 2:
result.append(random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
if i % 4 == 3:
result.append(random.choice('!$%()+,-.:;>?@[]`{}'))
random.shuffle(result)
print("".join(result))
隨機生成密碼,運行結果如下,每次運行都生成隨機密碼:
[root@devops ~]# python /tmp/shijiange.py
h37;XMo$w;lpAQ7:J.08
[root@devops ~]# python /tmp/shijiange.py
1ptQ%8c:ED7C8[m$(7yD
[root@devops ~]# python /tmp/shijiange.py
`ri0+(CwP3Wd0P}-4Yj2
[root@devops ~]# python /tmp/shijiange.py
qLcJ-F2>)S0K11{fq$q8
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。