Python隨機(jī)生成8位密碼的示例詳解
代碼示例1(8位)
import random import string total = string.ascii_letters + string.digits + string.punctuation length = 8 password = "".join(random.sample(total, length)) print(password)
代碼示例2(任意)
import random
import math
alpha = "abcdefghijklmnopqrstuvwxyz"
num = "0123456789"
special = "@#$%&*"
# 輸入密碼長(zhǎng)度
pass_len = int(input("輸入密碼長(zhǎng)度"))
# 設(shè)置密碼長(zhǎng)度組成格式,字母數(shù)字和特殊符號(hào)占比,以下示例50-30-20比例分配
alpha_len = pass_len//2
num_len = math.ceil(pass_len*30/100)
special_len = pass_len-(alpha_len+num_len)
password = []
def generate_pass(length, array, is_alpha=False):
for i in range(length):
index = random.randint(0, len(array) - 1)
character = array[index]
if is_alpha:
case = random.randint(0, 1)
if case == 1:
character = character.upper()
password.append(character)
# 字符
generate_pass(alpha_len, alpha, True)
# 數(shù)字
generate_pass(num_len, num)
# 特殊符號(hào)
generate_pass(special_len, special)
# 打亂順序
random.shuffle(password)
# 轉(zhuǎn)列表到字符串
gen_password = ""
for i in password:
gen_password = gen_password + str(i)
print(gen_password)
知識(shí)補(bǔ)充
除了上面的兩個(gè)示例代碼,小編還為大家整理了一些Python實(shí)現(xiàn)生成隨機(jī)密碼的方法,希望對(duì)大家有所幫助
python實(shí)現(xiàn)生成隨機(jī) 字母 + 數(shù)字密碼
#coding:utf-8 import random,string def GetPassword(length): # 隨機(jī)生成數(shù)字個(gè)數(shù) Ofnum=random.randint(1,length) Ofletter=length-Ofnum # 選中ofnum個(gè)數(shù)字 slcNum=[random.choice(string.digits) for i in range(Ofnum)] # 選中ofletter個(gè)字母 slcLetter=[random.choice(string.ascii_letters) for i in range(Ofletter)] # 打亂組合 slcChar=slcLetter+slcNum random.shuffle(slcChar) # 生成隨機(jī)密碼 getPwd=''.join([i for i in slcChar]) return getPwd if __name__=='__main__': print( GetPassword(6)) #GetPassword()自定義隨機(jī)密碼長(zhǎng)度
Python隨機(jī)生成帶特殊字符的密碼
#!/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()
到此這篇關(guān)于Python隨機(jī)生成8位密碼的示例詳解的文章就介紹到這了,更多相關(guān)Python隨機(jī)生成密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)連點(diǎn)器的示例代碼
這篇文章主要介紹了Python實(shí)現(xiàn)連點(diǎn)器,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Python文件操作之with語(yǔ)句深度實(shí)戰(zhàn)指南
在Python編程中,文件操作是日常開發(fā)的高頻場(chǎng)景,傳統(tǒng)文件操作模式中,開發(fā)者需要手動(dòng)調(diào)用close()方法,而with語(yǔ)句的出現(xiàn),為文件操作構(gòu)建了一道安全防線,如同為代碼裝上了“保險(xiǎn)箱”,所以本文給大家詳細(xì)介紹了with語(yǔ)句深度實(shí)戰(zhàn)指南,需要的朋友可以參考下2025-06-06
Python中使用Matplotlib進(jìn)行多圖繪制的詳細(xì)教程
Matplotlib是Python中強(qiáng)大的數(shù)據(jù)可視化工具,支持繪制多圖,這篇文章主要介紹了Python中使用Matplotlib進(jìn)行多圖繪制的相關(guān)資料,包括使用subplot、subplots和GridSpec進(jìn)行布局,并提供了調(diào)整圖表樣式和布局的方法,需要的朋友可以參考下2024-11-11
使用Python的開發(fā)框架Brownie部署以太坊智能合約
在本文中,我們將使用Python部署智能合約。這篇文章可能是您走向智能合約和區(qū)塊鏈開發(fā)的橋梁!2021-05-05
IntelliJ IDEA安裝運(yùn)行python插件方法
在本篇文章里我們給大家分享關(guān)于IntelliJ IDEA安裝運(yùn)行python插件方法,對(duì)此有需求的讀者們可以跟著步驟學(xué)習(xí)下2018-12-12

