使用Python創(chuàng)建一個(gè)隨機(jī)密碼生成器
導(dǎo)言
在網(wǎng)絡(luò)環(huán)境中,密碼是保護(hù)個(gè)人賬戶和敏感信息的第一道防線。隨機(jī)密碼生成器是一個(gè)有力的工具,它可以創(chuàng)建強(qiáng)大且難以被破解的密碼。下面我們來一步步分解這個(gè)密碼生成器的代碼。
導(dǎo)入模塊和初始化變量
import random import math alpha = "abcdefghijklmnopqrstuvwxyz" # 字母表 num = "0123456789" # 數(shù)字 special = "@#$%&*" # 特殊字符 pass_len = int(input("輸入密碼長(zhǎng)度")) alpha_len = pass_len // 2 num_len = math.ceil(pass_len * 30 / 100) special_len = pass_len - (alpha_len + num_len) password = []
首先,我們導(dǎo)入了random
和math
模塊,并定義了包含字母、數(shù)字和特殊字符的字符串變量。接著,通過用戶輸入確定密碼的長(zhǎng)度,并根據(jù)一定規(guī)則計(jì)算出字母、數(shù)字和特殊字符的長(zhǎng)度。
生成密碼的函數(shù)和密碼長(zhǎng)度計(jì)算
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)
這段代碼定義了一個(gè)函數(shù) generate_pass()
,用于生成密碼。根據(jù)傳入的長(zhǎng)度和字符集,它會(huì)循環(huán)生成符合要求的密碼。參數(shù) is_alpha
控制是否生成字母的大寫形式。
生成密碼的不同部分
# 字母密碼 generate_pass(alpha_len, alpha, True) # 數(shù)字密碼 generate_pass(num_len, num) # 特殊字符密碼 generate_pass(special_len, special)
在這里,我們分別調(diào)用 generate_pass()
函數(shù)來生成字母、數(shù)字和特殊字符組成的密碼。字母密碼使用 alpha
變量并指定了需要大寫形式,而數(shù)字密碼和特殊字符密碼使用相應(yīng)的字符集。
打亂并輸出密碼
random.shuffle(password) gen_password = "" for i in password: gen_password = gen_password + str(i) print(gen_password)
最后,我們使用 random.shuffle() 函數(shù)來打亂密碼列表的順序,以增加密碼的隨機(jī)性。然后將列表轉(zhuǎn)換為字符串,最終輸出生成的隨機(jī)密碼。
這些步驟結(jié)合起來,構(gòu)成了一個(gè)簡(jiǎn)單但功能強(qiáng)大的密碼生成器。
GitHub 地址:https://github.com/wanghao221/python-mini-projects/
總結(jié)
通過這個(gè)簡(jiǎn)單的Python代碼示例,我們創(chuàng)建了一個(gè)基于用戶輸入長(zhǎng)度的隨機(jī)密碼生成器。密碼生成器利用了Python的隨機(jī)化功能和字符串處理能力,按照一定規(guī)則生成包含字母、數(shù)字和特殊字符的密碼,以增強(qiáng)密碼的復(fù)雜性和安全性。
以上就是使用Python創(chuàng)建一個(gè)隨機(jī)密碼生成器的詳細(xì)內(nèi)容,更多關(guān)于Python隨機(jī)密碼生成器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺析python標(biāo)準(zhǔn)庫(kù)中的glob
glob 文件名模式匹配,不用遍歷整個(gè)目錄判斷每個(gè)文件是不是符合。這篇文章主要介紹了python標(biāo)準(zhǔn)庫(kù)中的glob的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-03-03解決python3 整數(shù)數(shù)組轉(zhuǎn)bytes的效率問題
這篇文章主要介紹了解決python3 整數(shù)數(shù)組轉(zhuǎn)bytes的效率問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python實(shí)現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖
這篇文章主要為大家詳細(xì)介紹了如何基于Python中g(shù)dal模塊,實(shí)現(xiàn)對(duì)大量柵格圖像批量繪制直方圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02Django實(shí)戰(zhàn)之用戶認(rèn)證(用戶登錄與注銷)
這篇文章主要介紹了Django實(shí)戰(zhàn)之用戶認(rèn)證(用戶登錄與注銷),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07Tensorflow 實(shí)現(xiàn)線性回歸模型的示例代碼
這篇文章主要介紹了Tensorflow 實(shí)現(xiàn)線性回歸模型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05關(guān)于PyTorch環(huán)境配置及安裝教程(Windows10)
這篇文章主要介紹了關(guān)于PyTorch環(huán)境配置及安裝教程(Windows10),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python網(wǎng)絡(luò)編程中urllib2模塊的用法總結(jié)
使用urllib2模塊進(jìn)行基于url的HTTP請(qǐng)求等操作大家也許都比較熟悉,這里我們?cè)偕钊雭砹私庖幌聈rllib2針對(duì)HTTP的異常處理相關(guān)功能,一起來看一下Python網(wǎng)絡(luò)編程中urllib2模塊的用法總結(jié):2016-07-07Pytorch+PyG實(shí)現(xiàn)EdgeCNN過程示例詳解
這篇文章主要為大家介紹了Pytorch+PyG實(shí)現(xiàn)EdgeCNN過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python3 ffmpeg視頻轉(zhuǎn)換工具使用方法解析
這篇文章主要介紹了Python3 ffmpeg視頻轉(zhuǎn)換工具使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08