使用 Python 建立檔案加密程式的完整指南(2025 最新版本)

在數位化的時代,檔案安全性變得越來越重要。如果你想要保護你的檔案不被未經授權的訪問,使用 Python 建立一個檔案加密程式是個不錯的選擇。本文將逐步引導你如何使用 Python 來實現檔案的加密和解密,並提供最佳實踐與實作範例。

第一步:安裝 Python

首先,你需要安裝 Python。請前往 [Python 官方網站](https://www.python.org/downloads/) 下載 2025 年最新版本的 Python,並按照指示安裝。安裝完成後,建議在終端機中輸入以下命令來確認安裝成功:

“`bash
python –version
“`

第二步:建立檔案加密程式

接下來,我們將建立一個檔案加密程式。這裡將使用 `cryptography` 函式庫,這是 Python 中一個非常受歡迎的加密庫,能夠提供強大的加密功能。請先安裝該庫:

“`bash
pip install cryptography
“`

然後,使用以下程式碼建立檔案加密和解密的功能:

“`python
from cryptography.fernet import Fernet
import os

# 生成金鑰
def generate_key():
key = Fernet.generate_key()
with open(“secret.key”, “wb”) as key_file:
key_file.write(key)

# 載入金鑰
def load_key():
return open(“secret.key”, “rb”).read()

# 加密檔案
def encrypt_file(filename):
key = load_key()
fernet = Fernet(key)

with open(filename, ‘rb’) as file:
original = file.read()

encrypted = fernet.encrypt(original)

with open(filename, ‘wb’) as encrypted_file:
encrypted_file.write(encrypted)

# 解密檔案
def decrypt_file(filename):
key = load_key()
fernet = Fernet(key)

with open(filename, ‘rb’) as encrypted_file:
encrypted = encrypted_file.read()

decrypted = fernet.decrypt(encrypted)

with open(filename, ‘wb’) as decrypted_file:
decrypted_file.write(decrypted)
“`

這段程式碼中,我們使用 `cryptography` 庫來生成金鑰、加密和解密檔案。確保在執行之前先生成金鑰:

“`python
generate_key()
“`

第三步:執行檔案加密程式

現在你可以使用以下命令來加密或解密檔案。請確保將 `yourfile.txt` 替換為你實際要加密或解密的檔案名稱。

“`bash
# 加密檔案
python encrypt_file.py yourfile.txt

# 解密檔案
python decrypt_file.py yourfile.txt
“`

錯誤排除

– **金鑰未找到錯誤**:請確保 `secret.key` 文件存在於相同的目錄中,否則將無法解密檔案。
– **檔案格式錯誤**:該程式僅適用於二進位檔案,請確保加密的檔案不是空的。

延伸應用

除了基本的檔案加密與解密,你還可以將這些功能擴展到更複雜的應用中,例如:
– 為不同的檔案使用獨特的金鑰。
– 整合使用者介面來簡化操作流程。
– 將加密檔案上傳至雲端儲存服務。

在本文中,我們介紹了如何使用 Python 建立一個檔案加密程式,讓你可以有效保護你的檔案。隨著科技的不斷進步,建議你定期更新和優化你的加密程式,以確保檔案安全。

如需更深入的 Python 教學與資源,請參考 [我的 Vocus 教學文](https://vocus.cc)。

Q&A(常見問題解答)

**Q: 為什麼需要使用加密來保護檔案?**
A: 加密可以防止未經授權的使用者訪問你的敏感資料,保障資訊的安全性。

**Q: 如何確保我的金鑰安全?**
A: 請將金鑰儲存在安全的位置,並避免將其與加密檔案放在一起。

**Q: 可以使用哪些其他函式庫來加密檔案?**
A: 除了 `cryptography`,你還可以考慮使用 `PyCrypto` 或 `PyCryptodome` 等庫來實現加密功能。

Categorized in:

Tagged in: