2025 最新 Python 程式教學:使用 PyCryptodome 加密模組來保護你的數據

學習如何使用PyCrypto加密模組來保護你的數據

目錄

使用 PyCryptodome 加密模組

PyCryptodome 是一個用於加密和解密的 Python 模組,作為 PyCrypto 的一個更新版本,它提供了最新的加密算法,可以用於保護你的數據。這篇文章將指導你如何使用 PyCryptodome 進行數據加密和解密,並展示一些最佳實踐。

安裝 PyCryptodome

首先,你需要安裝 PyCryptodome 模組。可以使用下面的命令來安裝:

pip install pycryptodome

基本用法示範

以下是一個使用 AES 算法進行加密和解密的簡單範例:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
import base64

# 生成隨機的密鑰
key = get_random_bytes(16)  # AES-128

# 加密函數
def encrypt(plain_text):
    cipher = AES.new(key, AES.MODE_EAX)
    ciphertext, tag = cipher.encrypt_and_digest(plain_text.encode())
    return base64.b64encode(cipher.nonce + tag + ciphertext).decode()

# 解密函數
def decrypt(encoded):
    data = base64.b64decode(encoded)
    nonce, tag, ciphertext = data[:16], data[16:32], data[32:]
    cipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
    return cipher.decrypt_and_verify(ciphertext, tag).decode()

# 範例
plain_text = "這是要加密的數據"
encrypted = encrypt(plain_text)
print("加密後:", encrypted)
print("解密後:", decrypt(encrypted))

錯誤排除

在使用 PyCryptodome 進行數據加密和解密時,可能會遇到一些常見的錯誤:

  • ValueError: 如果解密過程中傳入的數據不正確,會引發此錯誤。請確保傳入的數據是由加密函數生成的。
  • TypeError: 確保傳入的明文是字符串格式,並且在加密之前已經進行編碼。

延伸應用

除了基本的加密和解密,PyCryptodome 還支持多種加密模式和功能,如:

  • 數據簽名:使用 HMAC 進行數據完整性檢查。
  • 密鑰導入和導出:管理密鑰以便於存儲和重用。

結論

通過使用 PyCryptodome,你可以輕鬆地為你的 Python 應用程序添加強大的加密功能,確保數據的安全性和完整性。

Q&A(常見問題解答)

Q: PyCryptodome 和 PyCrypto 有什麼區別?

A: PyCryptodome 是 PyCrypto 的一個更新版本,提供了更多的功能和更好的安全性。強烈建議使用 PyCryptodome 來替代 PyCrypto。

Q: 如何選擇正確的加密算法?

A: 選擇加密算法時,應考慮數據的敏感性和性能需求。AES 是一種廣泛使用且被認為安全的選擇。

發佈留言