我做過的最酷的 Python 程式是 Python 密碼雜湊器。我們先來了解一下什麼是Python密碼雜湊。
什麼是密碼雜湊?
Python 密碼雜湊是一種高級加密形式,可用於安全地在線上儲存密碼。在當今萬物互聯的世界中,使用者密碼是網路上最容易受到攻擊的敏感資訊之一。使用不同的雜湊演算法將密碼字串轉換為隨機字元字串,這些演算法已在我的程式中使用。系統會指示使用者輸入密碼字串,然後選擇要使用的適當的雜湊演算法。然後顯示輸出哈希,該哈希可以在線存儲。
使用的步驟
為不同的雜湊方法建立函數
接受使用者輸入的密碼字串
接受使用者輸入以選擇雜湊方法
轉換字串並提供輸出
#第 1 步:為不同的雜湊方法建立函數
首先,我們建立不同的函數,將密碼字串作為參數並將其轉換為密文形式。密文實際上是資料經過雜湊處理後的形式。不同的函數包含不同的雜湊演算法。
文法
def hash_with_MD5(message): print ("MD5:", hashlib.md5(message).hexdigest())
這裡函數將訊息作為參數,並使用 MD5 雜湊演算法將其轉換為密文。然後為用戶列印哈希摘要。如果不使用MD5,而是使用其他雜湊演算法,則語法是相同的,只是雜湊函數的呼叫會改變。
演算法
第 1 步 - 為不同的雜湊演算法定義不同的函數
第 2 步 - 將使用者輸入的字串作為函數的參數
第 3 步 - 在函數主體中,列印雜湊密碼的十六進位摘要
範例
def hash_with_MD5(message): encoded=message.encode() print ("Hashed with MD5:", hashlib.md5(encoded).hexdigest()) def hash_with_SHA(message): encoded=message.encode() print ("Hashed with SHA:", hashlib.sha256(encoded).hexdigest()) def hash_with_blake(message): encoded=message.encode() print ("Hashed with blake2b:", hashlib.blake2b(encoded).hexdigest()) message='tutorialspoint' hash_with_MD5(message) hash_with_SHA(message) hash_with_blake(message)
輸出
Hashed with MD5: 6c60b3cfe5124f982eb629e00a98f01f Hashed with SHA: 15e6e9ddbe43d9fe5745a1348bf1535b0456956d18473f5a3d14d6ab06737770 Hashed with blake2b: 109f6f017d7a77bcf57e4b48e9c744280ae7f836477c16464b27a3fe62e1353c70ec4c7f938080 60ee7c311094eede0235a43151c3d2b7401a3cb5a8f8ab3fbb
第 2 步:取得使用者輸入的密碼字串
下一步是從使用者那裡取得需要儲存的密碼的輸入。出於安全原因,必須對要儲存的密碼進行雜湊處理,並且在進行雜湊處理之前,必須對使用者輸入的密碼進行編碼,以確保其適合傳遞給雜湊函數。此編碼操作由encode()函數執行。
文法
password=input("message").encode()
我們使用 input() 函數從使用者收到的密碼不能用於雜湊,因此它是使用encode() 函數進行編碼的。此處將這兩個步驟組合在一個命令中,以便於編碼和簡化。
演算法
第 1 步 - 使用 input() 函數接收使用者輸入
第 2 步- 將輸入轉換為編碼格式
範例
password=input(“Enter the password for hashing: ”).encode()
輸出
Enter the password for hashing: Python
第 3 步:接受使用者輸入以選擇雜湊方法
我們將向用戶提供選擇,以決定我們將使用哪種雜湊演算法來安全地對密碼進行雜湊處理。不同的方法有不同的優點和缺點,因此我們讓使用者選擇最適合特定密碼的方法。這裡我們使用一個簡單的 If-else 結構來決定使用者輸入的選擇。
文法
while True: choice = input("Enter choice(1/2/3): ") if choice in ('1', '2', '3'): try: …………………
在這裡,我們詢問用戶他們執行的哈希類型以及選項清單。然後在有效的輸入清單中檢查輸入,如果為真,則執行所要求的操作。否則,程式控制將跳出循環。
演算法
第 1 步 − 要求使用者輸入
第 2 步- 檢查使用者輸入是否有效
#第 3 步 - 執行所選操作
#第 4 步 - 詢問是否要執行更多操作
範例
import hashlib def hash_with_MD5(password): #encoded=password.encode() print ("Hashed with MD5:", hashlib.md5(password).hexdigest()) def hash_with_SHA(password): #encoded=password.encode() print ("Hashed with SHA:", hashlib.sha256(password).hexdigest()) def hash_with_blake(password): #encoded=password.encode() print ("Hashed with blake2b:", hashlib.blake2b(password).hexdigest()) print("Select hashing operation.") print("1.MD5") print("2.SHA") print("3.blake") while True: # take input from the user choice = input("Enter choice(1/2/3): ") # check if choice is one of the four options if choice in ('1', '2', '3'): try: password=input('Enter the password for hashing: ').encode() except ValueError: print("Invalid input. Please enter a string.") continue if choice == '1': hash_with_MD5(password) elif choice == '2': hash_with_SHA(password) elif choice == '3': hash_with_blake(password) # checking if user wants another calculation # break the while loop if answer is no next_calculation = input("Let's do next calculation? (yes/no): ") if next_calculation == "no": break else: print("Invalid Input")
輸出
Select hashing operation. 1.MD5 2.SHA 3.blake Enter choice(1/2/3): 2 Enter the password for hashing:Python Hashed with SHA: 18885f27b5af9012df19e496460f9294d5ab76128824c6f993787004f6d9a7db Let's do next calculation? (yes/no): yes Enter choice(1/2/3): 1 Enter the password for hashing:Tutorialspoint Hashed with MD5: da653faa9f00528be9a57f3474f0e437 Let's do next calculation? (yes/no): no
結論
因此,我們在這裡建立了用於散列使用者密碼並返回以進行安全儲存的程式。程式成功運行並解決了一個重要的目的。還可以進行進一步的修改以實現更新的功能,我們將在稍後進行。
以上是你在Python中做過最酷的程式是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具