日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python密码传参有特殊字符如何解决_python生成带特殊字符的密码

發布時間:2025/3/20 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python密码传参有特殊字符如何解决_python生成带特殊字符的密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

#!/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()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#!/usr/bin/env python

importstring

fromitertoolsimportchain

fromrandomimportchoice,sample

defmkpasswd(length=12,digits=4,upper=3,lower=3):

lowercase=string.lowercase

uppercase=string.uppercase

salt='!@#$%^&*()>'

password=list(

chain(

(choice(uppercase)for_inrange(upper)),

(choice(lowercase)for_inrange(lower)),

(choice(string.digits)for_inrange(digits)),

(choice(salt)for_inrange((length-digits-upper-lower)))

)

)

return"".join(sample(password,len(password)))

if__name__=='__main__':

printmkpasswd()

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

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

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

總結

以上是生活随笔為你收集整理的python密码传参有特殊字符如何解决_python生成带特殊字符的密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。