国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 17:40:38
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python隨機生成帶特殊字符的密碼的相關資料,需要的朋友可以參考下
 

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

#!/usr/bin/env pythonimport stringfrom itertools import chainfrom random import choice, sampledef mkpasswd(length=12, digits=4, upper=3, lower=3):lowercase = string.lowercaseuppercase = string.uppercasesalt = '!@#$%^&*()><?'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 pythonimport stringfrom itertools import chainfrom random import choice, sampledef mkpasswd(length=12, digits=4, upper=3, lower=3):lowercase = string.lowercaseuppercase = string.uppercasesalt = '!@#$%^&*()><?'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隨機生成帶特殊字符的密碼就給大家介紹到這里,希望對大家有所幫助


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭通市| 金溪县| 太湖县| 靖宇县| 伽师县| 上犹县| 祁门县| 汉阴县| 台山市| 额尔古纳市| 遂溪县| 濮阳市| 罗江县| 南召县| 永济市| 曲松县| 津市市| 芒康县| 九龙城区| 河北区| 邵阳县| 龙胜| 盐亭县| 和龙市| 密云县| 武安市| 武隆县| 临泽县| 成安县| 河西区| 嘉义市| 开平市| 唐海县| 宁明县| 保亭| 德化县| 定结县| 会泽县| 廊坊市| 汨罗市| 清流县|