20190110-生成密碼以及簡易密碼強度檢查

来源:https://www.cnblogs.com/hyj691001/archive/2019/01/10/10247856.html
-Advertisement-
Play Games

1.生成9位字母的密碼 使用random.choice函數,此函數需要一個序列,因此給定一個序列包含a-z,A-Z 2:生成9位數字和字母的密碼,密碼可能隨機出現數字和字母此題在上一題的基礎上先生成一個序列包含所有字母和數字,然後使用random.choice()函數 3.檢測密碼強度 c1 : 長 ...


1.生成9位字母的密碼

使用random.choice函數,此函數需要一個序列,因此給定一個序列包含a-z,A-Z

#step1:生成序列
import random
s1=''
for i in range(97,123):
    s1+=chr(i)+chr(i-32)  
#step2: 生成密碼
password=''
for i in range(9):
    password+=random.choice(s1)#從s1序列中隨機選取一個元素
print('9位數的密碼為:',password)

2:生成9位數字和字母的密碼,密碼可能隨機出現數字和字母
此題在上一題的基礎上先生成一個序列包含所有字母和數字,然後使用random.choice()函數

import random
s1=''
for i in range(97,123):
    s1+=chr(i)+chr(i-32)
s1+='0123456789'
print(s1)
#生成包含小寫字母和數字的序列
#另外一個寫法
import string
s1 = string.ascii_letters+string.digits
password=''
for i in range(9):
    password+=random.choice(s1)
print('隨機密碼為:',password)

3.檢測密碼強度

c1 : 長度>=8
c2: 包含數字和字母
c3: 其他可見的特殊字元
強密碼條件:滿足c1,c2,c3
中密碼條件: 只滿足任一2個條件
弱密碼條件:只滿足任一1個或0個條件

思路:先將c1,c2,c3三個條件寫成函數,以Ture和False返回,True為滿足,False為不滿足

step1.寫出3個條件函數

def check_len(password):
    if len(password)>=8:
        return True
#長度大於8則為True
    else:
        return False
def check_letter_type(password):
    import string
    result =False
    for i in string.ascii_letters:
#大小寫字母
        if i in password:
#密碼中包含字母
            for j in string.digits:
#數字
                if j in password:
#密碼中包含數字
                    result =True
    return result
def check_punctuation(password):
    import string
    result = False
    for i in string.punctuation:
        if i in password:
#密碼中包含特殊字元
            result =True
    return result

check_len檢查密碼長度,check_letter_type檢查密碼中是否包含字母和數字,check_punctuation檢查密碼中是否包含特殊字元

step2:檢查密碼滿足幾個條件

def pass_verify(password):
    count = 0 
#使用count來記錄password滿足幾個條件
    if check_len(password):
        count +=1
    if check_letter_type(password):
        count +=1
    if check_punctuation(password):
        count +=1
    if count==3:
        print("強密碼")
    elif count ==2:
        print('中密碼')
    else:
        print('弱密碼')
pass_verify(password)

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、RocketMQ消息隊列簡單介紹 這裡簡單介紹一下RocketMQ的消息隊列的模型 一個topic對應多個隊列如下圖: 生產者和消費者分別向隊列中發送和消費消息,生產者和消費者都可以是多個,通過組名進行群組約束。由於負載因素造成生產消息會生產到各個queue中。 消費群組進行queue消費時首先 ...
  • 什麼是工廠模式? 提到工廠,我們肯定首先想到的就是生產東西的地方,之所以叫做工廠模式也正是如此,工廠模式就是根據工廠類來調用自身靜態方法來生產不同對象實例。 工廠模式的應用場景還是挺多的,比如我們使用的各個框架(ThinkPHP,Laravel),為什麼我們定了各個控制器和方法後通過在瀏覽器通過輸入 ...
  • 單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中一個類只有一個實例。即一個類只有一個對象實例。 提示: 資料庫連接池的設計一般也是採用單例模式,因為資料庫連接是一種資料庫資源。資料庫軟體系統中使用資料庫連接池,主要是節省打開或者關閉資料庫連 ...
  • 按理說應該把書全都看完一遍,再開始寫博客比較科學,會有比較全面的認識。 但是既然都決定要按規律更新博客了,只能看完一個設計模式寫一篇了。 也算是逼自己思考了,不是看完就過,至少得把代碼自己都敲一遍。 剛開始可能寫的比較淺顯,更像是讀書筆記,只能未來回來完善了。 廢話啰嗦到這,開始正題。 文章是以一個 ...
  • 一、UML概述 UML(UnifiedModelingLanguage)統一建模語言,是面向對象軟體的標準化建模語言。由於面向對象軟體開發需要經過OOA(面向對象分析),OOD(面向對象設計),OOP(面向對象編程)三個階段,每個階段都需要統一的符號設計描述和交流,而UML就是這種統一的符號表示。 ...
  • import和liabrary指令可以幫助你創建模塊化,可復用的代碼。庫不僅僅提供API,也是一個私有化單元:庫中已下劃線(_)開頭的類都是對外不可訪問的。每個Dart的應用也是一個包,儘管它沒有使用包的聲明。 庫都採用包的形式發佈。具體看 "Pub Package and Asset Manage ...
  • 一、打碼的作用 在進行爬蟲過程中,部分網站的登錄驗證碼是比較簡單的,例如四個英文數字隨機組合而成的驗證碼,有的是全數字隨機組成的驗證碼,有的是全中文隨機組成的驗證碼。為了爬蟲進行自動化,需要解決自動登錄的問題,而驗證碼問題成了第一道坎。起初想到用百度AI的圖像識別技術進行識別,但識別結果卻很差,最後 ...
  • 1. CSDN學院課程數據 寫在前面 今天又要抓取一個網站了,選擇恐懼症使得我不知道該拿誰下手,找來找去,算了,還是抓取CSDN學院吧,CSDN學院的網站為 "https://edu.csdn.net/courses" 我看了一下這個網址,課程數量也不是很多,大概有 門課程,數據量不大,用單線程其實 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...