一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python隨機生成帶特殊字符的密碼

Python隨機生成帶特殊字符的密碼

2020-08-14 11:39mindg Python

這篇文章主要介紹了Python隨機生成帶特殊字符的密碼的相關資料,需要的朋友可以參考下

在日常運維中,如果涉及到用戶管理,就一定會用到給用戶設置密碼的工作,其實吧,平時腦子里覺得設置個密碼沒什么,但要真讓你隨手敲一個12位帶特殊字符的隨機密碼,也是很痛苦的事,如果讓你敲10個這樣的隨機密碼,我估計要人要瘋了,所以這事不適合人干,但機器最做這個最拿手,今天我們就來學習一段python腳本,可以直接生成自己需要的密碼,且密碼長度,數字,字符個數隨意你指定,廢話不多說了,我們直接看代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()
#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()

腳本逐行解釋,最開始幾行導入了需要的模塊,接下來定義一個mkpasswd的函數,函數的參數可以設置密碼長度,數字、大寫和小寫字符的個數,接下來是函數主題部分:

利用string模塊的屬性生成大小寫字符串,salt是特殊字符集(支持自己添加),我們重點說password的生成,它首先是一個列表,因為調用了list()工廠函數,chain()函數的功能是將一組迭代器對象連接起來,chain()里有三個生成器表達式,每個表達式調用for循環,然后隨機選擇指定個數的字符,可能大家有看到for循環中有一個_(下劃線),這個下劃線有什么作用呢?我就不賣關子了,其實它啥作用也沒有,我自己理解為用不到的變量,這種寫法大家以后也可以用,比如你在循環的時候用不到這個變量,就可用用_(下劃線)來表示。

函數最后是return連接后的字符串,sample()函數是從隨機樣本中取出自己指定的樣本個數,需要兩個參數,一個是樣本,一個是取多少,取的過程是隨機的,其實在這個腳本中這個函數沒有發揮它完全的功能,因為生成的password就是12位的,然后在取出12位,不存在從大樣本中取出小樣本的工作,但起到了隨機的功能,所以生成的密碼是字符都是隨機的。

關于Python隨機生成帶特殊字符的密碼就給大家介紹到這里,希望對大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 丰满艳妇亲伦视频 | 国产精品探花一区在线观看 | 青苹果乐园影院在线播放 | 爽好紧别夹宝贝叫大声点护士 | 日本大片网 | 欧美专区综合 | 暖暖 免费 高清 日本 在线1 | 99久久精品免费看国产四区 | 欧美另类xxx精品人妖 | 色狠狠色狠狠综合天天 | 亚洲视频在线观看免费 | 日本不卡高清免费v日本 | 果冻传媒新在线观看免费 | 波多野结衣在线中文字幕 | 久久久久久久尹人综合网亚洲 | 色噜噜狠狠狠综合曰曰曰88av | 日本老妇人乱视频 | 九九大香尹人视频免费 | 免费视频精品一区二区三区 | 99网站在线观看 | 国内精品自产拍在线观看91 | 国内精品久久久久影院男同志 | 亚洲黄色高清 | 国产美女做爰免费视频网址 | 天作谜案免费完整版在线观看 | 免费尤物视频 | 欧美日韩一本 | 小sao货ji巴cao死你视频 | 精品一区二区三区视频日产 | 咪咪爱小说| 亚洲成年 | 欧美极品brazzers 高清 | 12一14性水蜜桃 | 天堂日韩| 欧美精品日韩一区二区三区 | 四虎影视国产精品婷婷 | 亚州中文字幕 | 欧美女孩videos | chinese壮直男gay老年人 | 国产亚洲综合精品一区二区三区 | 大胆暴露亚洲美女xxxx |