我做過的最酷的 Python 程式是 Python 密碼雜湊器。我們先來了解一下什麼是Python密碼雜湊。
Python 密碼雜湊是一種高級加密形式,可用於安全地在線上儲存密碼。在當今萬物互聯的世界中,使用者密碼是網路上最容易受到攻擊的敏感資訊之一。使用不同的雜湊演算法將密碼字串轉換為隨機字元字串,這些演算法已在我的程式中使用。系統會指示使用者輸入密碼字串,然後選擇要使用的適當的雜湊演算法。然後顯示輸出哈希,該哈希可以在線存儲。
為不同的雜湊方法建立函數
接受使用者輸入的密碼字串
接受使用者輸入以選擇雜湊方法
轉換字串並提供輸出
首先,我們建立不同的函數,將密碼字串作為參數並將其轉換為密文形式。密文實際上是資料經過雜湊處理後的形式。不同的函數包含不同的雜湊演算法。
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
下一步是從使用者那裡取得需要儲存的密碼的輸入。出於安全原因,必須對要儲存的密碼進行雜湊處理,並且在進行雜湊處理之前,必須對使用者輸入的密碼進行編碼,以確保其適合傳遞給雜湊函數。此編碼操作由encode()函數執行。
password=input("message").encode()
我們使用 input() 函數從使用者收到的密碼不能用於雜湊,因此它是使用encode() 函數進行編碼的。此處將這兩個步驟組合在一個命令中,以便於編碼和簡化。
第 1 步 - 使用 input() 函數接收使用者輸入
第 2 步- 將輸入轉換為編碼格式
password=input(“Enter the password for hashing: ”).encode()
Enter the password for hashing: Python
我們將向用戶提供選擇,以決定我們將使用哪種雜湊演算法來安全地對密碼進行雜湊處理。不同的方法有不同的優點和缺點,因此我們讓使用者選擇最適合特定密碼的方法。這裡我們使用一個簡單的 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中文網其他相關文章!